00001 #ifndef X3DTK_SIMPLEMESHLOADER_H 00002 #define X3DTK_SIMPLEMESHLOADER_H 00003 00004 #include "X3D_Loader.h" 00005 #include "MESH_Scene.h" 00006 #include "MESH_Mesh.h" 00007 #include "MESH_MeshData.h" 00008 #include "X3D_Scene.h" 00009 #include "X3D_BBoxUpdater.h" 00010 #include "X3D_WorldCoordTranslator.h" 00011 #include "X3D_MeshBuilder.h" 00012 #include "MESH_NormalsUpdater.h" 00013 #include "MESH_MeshSimplifier.h" 00014 #include "MemReleaser.h" 00015 00016 namespace X3DTK { 00017 00024 template<class MData, class VData, class EData, class FData, bool RW> 00025 class TemplateSimplifiedMeshScene 00026 { 00027 public: 00029 TemplateSimplifiedMeshScene(); 00031 ~TemplateSimplifiedMeshScene(); 00032 00036 void load(const char *file); 00037 00039 inline MESH::TemplateMesh<MData, VData, EData, FData, RW> *getMesh() const {return mesh;}; 00040 00042 inline const SFVec3f &getBBoxMin() const {return min;}; 00044 inline const SFVec3f &getBBoxMax() const {return max;}; 00045 00046 protected: 00047 X3D::Loader *loader; 00048 X3D::BBoxUpdater *bboxupdater; 00049 X3D::WorldCoordTranslator *translator; 00050 X3D::TemplateMeshBuilder<MData, VData, EData, FData, RW> *meshbuilder; 00051 MESH::TemplateNormalsUpdater<MData, VData, EData, FData, RW> *normalsupdater; 00052 MESH::TemplateMeshSimplifier<MData, VData, EData, FData, RW> *meshsimplifier; 00053 MemReleaser *releaser; 00054 MESH::TemplateMesh<MData, VData, EData, FData, RW> *mesh; 00055 SFVec3f min; 00056 SFVec3f max; 00057 }; 00058 00059 typedef TemplateSimplifiedMeshScene<MESH::MeshData, MESH::VertexData, MESH::EdgeData, MESH::FaceData, true> SimplifiedMeshScene; 00060 00061 } 00062 00063 #include "SimplifiedMeshScene.inl" 00064 00065 #endif