Main Page | Modules | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

SimpleX3DGLScene.h

Go to the documentation of this file.
00001 #ifndef SIMPLEX3DGLSCENE_H
00002 #define SIMPLEX3DGLSCENE_H
00003 
00004 #include "X3DTypes.h"
00005 #include "BBox.h"
00006 #include "X3D_Scene.h"
00007 
00008 namespace X3DTK {
00009 
00010 class X3DMemReleaser;
00011 
00012 namespace X3D {
00013 
00014 class Loader;
00015 class X3DBBoxUpdater;
00016 class X3DGLBuilder;
00017 class X3DFileValidator;
00018 
00019 }
00020 
00021 namespace GL {
00022 
00023 class Scene;
00024 class X3DRenderer;
00025 
00026 }
00027 
00052 class SimpleX3DGLScene
00053 {
00054 public:
00056   SimpleX3DGLScene();
00058   virtual ~SimpleX3DGLScene();
00059   
00061   virtual void load(const char *file, bool fileValidation = true);
00063   virtual void draw();
00065   virtual void select(double x, double y);
00067   inline SFVec3f getBBoxMin() const {return min;};
00069   inline SFVec3f getBBoxMax() const {return max;};
00071   void release();
00072 
00074   void setLoader(X3D::Loader *loader);
00076   void setBBoxUpdater(X3D::X3DBBoxUpdater *bboxUpdater);  
00078   void setGLBuilder(X3D::X3DGLBuilder *builder);  
00080   void setGLRenderer(GL::X3DRenderer *renderer);  
00082   void setMemReleaser(X3DMemReleaser *memReleaser);  
00084   void setFileValidator(X3D::X3DFileValidator *fileValidator);  
00085   
00087   inline X3D::Loader *getLoader() const {return _loader;};
00089   inline X3D::X3DBBoxUpdater *getBBoxUpdater() const {return _bboxupdater;};  
00091   inline X3D::X3DGLBuilder *getGLBuilder() const {return _builder;};  
00093   inline GL::X3DRenderer *getGLRenderer() const {return _renderer;};  
00095   inline X3DMemReleaser *getMemReleaser() const {return _releaser;};  
00096 
00097 protected:
00098   X3D::Scene *scene;
00099   GL::Scene *glscene;
00100   
00101   SFVec3f min;
00102   SFVec3f max;
00103   
00105   void loadFile(const char *file, bool fileValidation);
00108   void computeBBox();
00110   void buildGLScene();
00111 
00112 private:
00113   X3D::Loader *_loader;
00114   X3D::X3DBBoxUpdater *_bboxupdater;
00115   X3D::X3DGLBuilder *_builder;
00116   GL::X3DRenderer *_renderer;
00117   X3DMemReleaser *_releaser;
00118 };
00119 
00120 }
00121 
00122 #endif

Generated on Thu Jun 3 10:12:09 2004 for X3DToolKit by doxygen 1.3.6