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 00023 template<class MData, class VData, class EData, class FData, bool RW> 00024 class TemplateSimplifiedMeshScene 00025 { 00026 public: 00028 TemplateSimplifiedMeshScene(); 00030 ~TemplateSimplifiedMeshScene(); 00031 00034 void load(const char *file); 00035 00037 inline MESH::TemplateMesh<MData, VData, EData, FData, RW> *getMesh() const {return mesh;}; 00038 00040 inline const SFVec3f &getBBoxMin() const {return min;}; 00042 inline const SFVec3f &getBBoxMax() const {return max;}; 00043 00044 protected: 00045 X3D::Loader *loader; 00046 X3D::BBoxUpdater *bboxupdater; 00047 X3D::WorldCoordTranslator *translator; 00048 X3D::TemplateMeshBuilder<MData, VData, EData, FData, RW> *meshbuilder; 00049 MESH::TemplateNormalsUpdater<MData, VData, EData, FData, RW> *normalsupdater; 00050 MESH::TemplateMeshSimplifier<MData, VData, EData, FData, RW> *meshsimplifier; 00051 MemReleaser *releaser; 00052 MESH::TemplateMesh<MData, VData, EData, FData, RW> *mesh; 00053 SFVec3f min; 00054 SFVec3f max; 00055 }; 00056 00057 typedef TemplateSimplifiedMeshScene<MESH::MeshData, MESH::VertexData, MESH::EdgeData, MESH::FaceData, true> SimplifiedMeshScene; 00058 00059 } 00060 00061 #include "SimplifiedMeshScene.inl" 00062 00063 #endif