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 __LINESET_H__
00030 #define __LINESET_H__
00031
00032 #include "X3DGeometryNode.h"
00033 #include "DependentNodeFields.h"
00034 #include "X3DCoordinateNode.h"
00035 #include "X3DColorNode.h"
00036 #include "CoordBoundField.h"
00037 #include "MFInt32.h"
00038
00039 namespace H3D {
00040
00066 class H3DAPI_API LineSet : public X3DGeometryNode {
00067 public:
00069 H3D_VALUE_EXCEPTION( int, InvalidVertexCountValue );
00070
00073 typedef DependentSFNode< X3DCoordinateNode,
00074 FieldRef< X3DGeometricPropertyNode,
00075 Field,
00076 &X3DCoordinateNode::propertyChanged > >
00077 SFCoordinateNode;
00078
00081 typedef DependentSFNode< X3DColorNode,
00082 FieldRef< X3DGeometricPropertyNode,
00083 Field,
00084 &X3DColorNode::propertyChanged > >
00085 SFColorNode;
00086
00088 typedef CoordBoundField SFBound;
00089
00091 LineSet( Inst< SFNode > _metadata = 0,
00092 Inst< SFBound > _bound = 0,
00093 Inst< DisplayList > _displayList = 0,
00094 Inst< SFColorNode > _color = 0,
00095 Inst< SFCoordinateNode > _coord = 0,
00096 Inst< MFInt32 > _vertexCount = 0 );
00097
00098 #ifdef USE_HAPTICS
00101 virtual void traverseSG( TraverseInfo &ti );
00102 #endif
00103
00105 virtual void render();
00106
00115 auto_ptr< SFColorNode > color;
00122 auto_ptr< SFCoordinateNode > coord;
00123
00133 auto_ptr< MFInt32 > vertexCount;
00134
00136 static H3DNodeDatabase database;
00137 };
00138 }
00139
00140 #endif