00001 #ifndef X3DTK_MESH_X3DBUILDERVISITOR_H 00002 #define X3DTK_MESH_X3DBUILDERVISITOR_H 00003 00004 #include "MESH_CoreVisitor.h" 00005 #include "MESH_Mesh.h" 00006 #include "MESH_Vertex.h" 00007 #include "MESH_X3DBuilderStateVariables.h" 00008 #include "MESH_Scene.h" 00009 #include "MESH_Shape.h" 00010 #include "MESH_Transform.h" 00011 #include "MESH_Switch.h" 00012 #include "X3D_Scene.h" 00013 #include "X3D_Transform.h" 00014 #include "X3D_Switch.h" 00015 #include "X3D_Shape.h" 00016 #include "X3D_IndexedFaceSet.h" 00017 #include "X3D_Coordinate.h" 00018 #include "X3D_X3DAppearanceNode.h" 00019 #include "X3D_Normal.h" 00020 #include "X3D_ColorRGBA.h" 00021 #include "X3D_TextureCoordinate.h" 00022 00023 namespace X3DTK { 00024 namespace MESH { 00025 00032 template<class MData, class VData, class EData, class FData, bool readOnly> 00033 class X3DBuilderCoreVisitor : public CoreVisitor 00034 { 00035 public: 00037 X3DBuilderCoreVisitor(); 00038 00040 virtual void enterScene(Scene *S) const; 00042 virtual void enterTransform(Transform *T) const; 00044 virtual void enterSwitch(Switch *S) const; 00046 virtual void enterShape(Shape *S) const; 00048 virtual void enterMesh(Mesh<MData, VData, EData, FData, readOnly> *M) const; 00050 virtual void enterVertex(Vertex<VData, EData, FData, readOnly> *V) const; 00052 virtual void leaveX3DNode(X3DNode *) const; 00053 00054 protected: 00055 X3DBuilderStateVariables<MData, VData, EData, FData, readOnly> *stateVariables; 00056 }; 00057 00058 } 00059 } 00060 00061 #include "MESH_X3DBuilderCoreVisitor.inl" 00062 00063 #endif