00001 #ifndef X3DTK_X3D_MESHBUILDERSHAPEVISITOR_H 00002 #define X3DTK_X3D_MESHBUILDERSHAPEVISITOR_H 00003 00004 #include "X3D_ShapeVisitor.h" 00005 #include "X3D_MeshBuilderStateVariables.h" 00006 #include "X3D_Appearance.h" 00007 #include "X3D_IndexedFaceSet.h" 00008 #include "X3D_FillProperties.h" 00009 #include "X3D_LineProperties.h" 00010 #include "X3D_Material.h" 00011 #include "X3D_Shape.h" 00012 #include "X3D_X3DGeometryNode.h" 00013 #include "MESH_X3DGroupingNode.h" 00014 #include "MESH_Shape.h" 00015 00016 namespace X3DTK { 00017 namespace X3D { 00018 00019 class Shape; 00020 class X3DAppearanceNode; 00021 00028 template<class MData, class VData, class EData, class FData, bool RW> 00029 class TemplateMeshBuilderShapeVisitor : public ShapeVisitor 00030 { 00031 public: 00033 TemplateMeshBuilderShapeVisitor(); 00034 00036 static void enterShape(Shape *S); 00038 static void enterX3DAppearanceNode(X3DAppearanceNode *N); 00040 static bool walkOnX3DAppearanceNode(X3DAppearanceNode *N, SFNode child); 00042 static void leaveShape(Shape *S); 00044 static void leaveX3DAppearanceNode(X3DAppearanceNode *N); 00045 }; 00046 00047 } 00048 } 00049 00050 #include "X3D_MeshBuilderShapeVisitor.inl" 00051 00052 #endif