SimpleMeshGLScene.h

Go to the documentation of this file.
00001 #ifndef SIMPLEMESHGLSCENE_H
00002 #define SIMPLEMESHGLSCENE_H
00003 
00004 #include "MESH_Drawer.h"
00005 
00006 #include <X3DTK/kernel.h>
00007 #include <X3DTK/X3D/meshbuilder.h>
00008 #include <X3DTK/MESH/normalsupdater.h>
00009 
00010 namespace X3DTK {
00011 
00012 class MemReleaser;
00013 
00014 namespace X3D {
00015 
00016 class Scene;
00017 class Loader;
00018 class BBoxUpdater;
00019 
00020 }
00021 
00022 namespace MESH {
00023 
00024 class Scene;
00025 class Drawer;
00026 
00027 }
00028 
00029 // Class defining a facade to allow an easy load and display of an X3D scene.
00030 
00031 class SimpleMeshGLScene
00032 {
00033 public:
00034   SimpleMeshGLScene();
00035   virtual ~SimpleMeshGLScene();
00036   
00037   virtual void load(const char *file);
00038   virtual void drawMesh(bool selection = false);
00039   virtual void drawSelected();
00040   inline SFVec3f getBBoxMin() const {return min;};
00041   inline SFVec3f getBBoxMax() const {return max;};
00042   void release();
00043   
00044   inline void changeDrawPoints() {_drawer->changeDrawPoints();};
00045   inline void changeDrawEdges() {_drawer->changeDrawEdges();};
00046   inline void changeDrawFaces() {_drawer->changeDrawFaces();}; 
00047   inline void changeOneColorPerMesh() {_drawer->changeOneColorPerMesh();}; 
00048   inline void setSelectedType(SelectedType selectedType) {_drawer->setSelectedType(selectedType);};
00049   inline void setSelectedMesh(int selectedMesh) {_drawer->setSelectedMesh(selectedMesh);};
00050   inline void setSelectedId(int selectedId) {_drawer->setSelectedId(selectedId);};
00051   
00052   inline SelectedType getSelectedType() const {return _drawer->getSelectedType();};
00053   inline int getSelectedMesh() const {return _drawer->getSelectedMesh();};
00054   inline int getSelectedId() const {return _drawer->getSelectedId();};
00055   
00056 protected:
00057   X3D::Scene *scene;
00058   MESH::Scene *meshScene;
00059   
00060   SFVec3f min;
00061   SFVec3f max;
00062   
00063   void loadFile(const char *file);
00064   void computeBBox();
00065   void buildMeshScene();
00066 
00067 private:
00068   X3D::Loader *_loader;
00069   X3D::BBoxUpdater *_bboxupdater;
00070   X3D::MeshBuilder *_builder;
00071   MESH::NormalsUpdater *_normalUpdater;
00072   MESH::Drawer *_drawer;
00073   MemReleaser *_releaser;
00074 };
00075 
00076 }
00077 
00078 #endif

Generated on Mon Jul 12 09:40:00 2004 for X3DToolKit by doxygen 1.3.6