00001 #ifndef X3DTK_X3D_MESHBUILDERGROUPINGVISITOR_H 00002 #define X3DTK_X3D_MESHBUILDERGROUPINGVISITOR_H 00003 00004 #include "X3D_GroupingVisitor.h" 00005 #include "X3D_MeshBuilderStateVariables.h" 00006 #include "X3D_X3DGroupingNode.h" 00007 #include "X3D_StaticGroup.h" 00008 #include "X3D_Transform.h" 00009 #include "X3D_Switch.h" 00010 #include "MESH_Transform.h" 00011 #include "MESH_Switch.h" 00012 00013 namespace X3DTK { 00014 namespace X3D { 00015 00016 class X3DChildNode; 00017 class X3DGroupingNode; 00018 class StaticGroup; 00019 class Transform; 00020 class Switch; 00021 00028 template<class MData, class VData, class EData, class FData, bool RW> 00029 class TemplateMeshBuilderGroupingVisitor : public GroupingVisitor 00030 { 00031 public: 00033 TemplateMeshBuilderGroupingVisitor(); 00034 00036 static void enterX3DChildNode(X3DChildNode *N); 00038 static void enterX3DGroupingNode(X3DGroupingNode *N); 00040 static void enterStaticGroup(StaticGroup *S); 00042 static void enterTransform(Transform *T); 00044 static void enterSwitch(Switch *S); 00046 static void leaveX3DChildNode(X3DChildNode *N); 00048 static void leaveX3DGroupingNode(X3DGroupingNode *N); 00049 }; 00050 00051 } 00052 } 00053 00054 #include "X3D_MeshBuilderGroupingVisitor.inl" 00055 00056 #endif