00001 #ifndef X3DTK_X3D_MESHBUILDER_H 00002 #define X3DTK_X3D_MESHBUILDER_H 00003 00004 #include "X3DOnePassProcessor.h" 00005 #include "X3D_MeshBuilderStateVariables.h" 00006 #include "DFSGraphTraversal.h" 00007 #include "X3D_MeshBuilderCoreVisitor.h" 00008 #include "X3D_MeshBuilderGeometry3DVisitor.h" 00009 #include "X3D_MeshBuilderGroupingVisitor.h" 00010 #include "X3D_MeshBuilderShapeVisitor.h" 00011 #include "X3D_MeshBuilderRenderingVisitor.h" 00012 #include "X3D_Scene.h" 00013 #include "MESH_Scene.h" 00014 #include "MESH_MeshData.h" 00015 00016 namespace X3DTK { 00017 namespace X3D { 00018 00025 template<class MData, class VData, class EData, class FData, bool RW> 00026 class TemplateMeshBuilder : public X3DOnePassProcessor 00027 { 00028 public: 00030 TemplateMeshBuilder(); 00032 virtual ~TemplateMeshBuilder(); 00033 00035 virtual MESH::SFNode build(SFNode N); 00036 00038 MESH::Scene *build(Scene *S); 00039 00040 private: 00041 TemplateMeshBuilderStateVariables<MData, VData, EData, FData, RW> *stateVariables; 00042 }; 00043 00044 typedef TemplateMeshBuilder<MESH::MeshData, MESH::VertexData, MESH::EdgeData, MESH::FaceData, true> MeshBuilder; 00045 00046 } 00047 } 00048 00049 #include "X3D_MeshBuilder.inl" 00050 00051 #endif