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 __TRIANGLESET2D_H__
00030 #define __TRIANGLESET2D_H__
00031
00032 #include "X3DGeometryNode.h"
00033 #include "MFVec2f.h"
00034
00035 namespace H3D {
00036
00052
00053 class H3DAPI_API TriangleSet2D :
00054 public X3DGeometryNode {
00055 public:
00056
00062 class SFBound: public TypedField< X3DGeometryNode::SFBound,
00063 MFVec2f > {
00065 virtual void update() {
00066 const vector< Vec2f > &points =
00067 static_cast< MFVec2f * >( routes_in[0] )->getValue();
00068 BoxBound *bound = new BoxBound();
00069 bound->fitAround2DPoints( points.begin(), points.end() );
00070 value = bound;
00071 }
00072 };
00073
00075 TriangleSet2D( Inst< SFNode > _metadata = 0,
00076 Inst< SFBound > _bound = 0,
00077 Inst< DisplayList > _displayList = 0,
00078 Inst< MFBool > _isTouched = 0,
00079 Inst< MFVec3f > _force = 0,
00080 Inst< MFVec3f > _contactPoint = 0,
00081 Inst< MFVec3f > _contactNormal = 0,
00082 Inst< MFVec2f > _vertices = 0,
00083 Inst< SFBool > _solid = 0 );
00084
00086 virtual void render();
00087
00088 #ifdef USE_HAPTICS
00091 virtual void traverseSG( TraverseInfo &ti );
00092 #endif
00093
00101 auto_ptr< MFVec2f > vertices;
00102
00110 auto_ptr< SFBool > solid;
00111
00113 static H3DNodeDatabase database;
00114 };
00115 }
00116
00117 #endif