00001
00002
00004
00005 #ifndef MESHX3DBUILDERVISITOR_H
00006 #define MESHX3DBUILDERVISITOR_H
00007
00008 #include "MESH_CoreVisitor.h"
00009 #include "MESH_Mesh.h"
00010 #include "MESH_VertexSet.h"
00011 #include "MESH_MeshX3DBuilderStateVariables.h"
00012 #include "MESH_Scene.h"
00013 #include "MESH_Transform.h"
00014 #include "MESH_Switch.h"
00015 #include "X3D_Scene.h"
00016 #include "X3D_Transform.h"
00017 #include "X3D_Switch.h"
00018 #include "X3D_Shape.h"
00019 #include "X3D_IndexedFaceSet.h"
00020 #include "X3D_Coordinate.h"
00021 #include "X3D_X3DAppearanceNode.h"
00022 #include "X3D_Normal.h"
00023 #include "X3D_ColorRGBA.h"
00024 #include "X3D_TextureCoordinate.h"
00025
00026 namespace X3DTK {
00027 namespace MESH {
00028
00029 template<class MData, class VData, class EData, class FData>
00030 class MeshX3DBuilderCoreVisitor : public CoreVisitor
00031 {
00032 public:
00034 MeshX3DBuilderCoreVisitor();
00035
00037 virtual void enterScene(Scene *S) const;
00039 virtual void enterTransform(Transform *T) const;
00041 virtual void enterSwitch(Switch *S) const;
00043 virtual void enterMesh(Mesh<MData, VData, EData, FData> *M) const;
00045 virtual void enterVertexSet(VertexSet<VData, EData, FData> *V) const;
00047 virtual void leaveX3DNode(X3DNode *) const;
00049 virtual void leaveMesh(Mesh<MData, VData, EData, FData> *) const;
00050
00051 protected:
00052 MeshX3DBuilderStateVariables<MData, VData, EData, FData> *stateVariables;
00053 };
00054
00055 }
00056 }
00057
00058 #include "MESH_MeshX3DBuilderCoreVisitor.inl"
00059
00060 #endif