00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00027
00029 #ifndef __POINTSET_H__
00030 #define __POINTSET_H__
00031
00032 #include "X3DGeometryNode.h"
00033 #include "DependentNodeFields.h"
00034 #include "X3DCoordinateNode.h"
00035 #include "X3DColorNode.h"
00036 #include "CoordBoundField.h"
00037
00038 namespace H3D {
00039
00065 class H3DAPI_API PointSet : public X3DGeometryNode {
00066 public:
00067
00070 H3D_VALUE_EXCEPTION( unsigned int, NotEnoughColors );
00071
00074 typedef DependentSFNode< X3DCoordinateNode,
00075 FieldRef< X3DGeometricPropertyNode,
00076 Field,
00077 &X3DCoordinateNode::propertyChanged > >
00078 SFCoordinateNode;
00079
00082 typedef DependentSFNode< X3DColorNode,
00083 FieldRef< X3DGeometricPropertyNode,
00084 Field,
00085 &X3DColorNode::propertyChanged > >
00086 SFColorNode;
00087
00089 typedef CoordBoundField SFBound;
00090
00092 PointSet( Inst< SFNode > _metadata = 0,
00093 Inst< SFBound > _bound = 0,
00094 Inst< DisplayList > _displayList = 0,
00095 Inst< SFColorNode > _color = 0,
00096 Inst< SFCoordinateNode > _coord = 0 );
00097
00098 #ifdef USE_HAPTICS
00101 virtual void traverseSG( TraverseInfo &ti );
00102 #endif
00103
00105 virtual void render();
00106
00117 auto_ptr< SFColorNode > color;
00118
00126 auto_ptr< SFCoordinateNode > coord;
00127
00129 static H3DNodeDatabase database;
00130 };
00131 }
00132
00133 #endif