Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

SimpleX3DGLScene.h

Go to the documentation of this file.
00001 
00002 //                            SimpleX3DGLScene.h                              //
00004 
00005 #ifndef SIMPLEX3DGLSCENE_H
00006 #define SIMPLEX3DGLSCENE_H
00007 
00008 #include "X3DTypes.h"
00009 #include "BBox.h"
00010 #include "X3D_Scene.h"
00011 
00012 namespace X3DTK {
00013 
00014 class X3DMemReleaser;
00015 
00016 namespace X3D {
00017 
00018 class Loader;
00019 class X3DBBoxUpdater;
00020 class X3DGLBuilder;
00021 class X3DFileValidator;
00022 
00023 }
00024 
00025 namespace GL {
00026 
00027 class Scene;
00028 class X3DRenderer;
00029 
00030 }
00031 
00033 
00034 class SimpleX3DGLScene
00035 {
00036 public:
00038   SimpleX3DGLScene();
00040   virtual ~SimpleX3DGLScene();
00041   
00043   virtual void load(const char *file, bool fileValidation = true);
00045   virtual void draw();
00047   virtual void select(double x, double y);
00049   inline SFVec3f getBBoxMin() const {return min;};
00051   inline SFVec3f getBBoxMax() const {return max;};
00053   void release();
00054 
00056   void setLoader(X3D::Loader *loader);
00058   void setBBoxUpdater(X3D::X3DBBoxUpdater *bboxUpdater);  
00060   void setGLBuilder(X3D::X3DGLBuilder *builder);  
00062   void setGLRenderer(GL::X3DRenderer *renderer);  
00064   void setMemReleaser(X3DMemReleaser *memReleaser);  
00066   void setFileValidator(X3D::X3DFileValidator *fileValidator);  
00067   
00069   inline X3D::Loader *getLoader() const {return _loader;};
00071   inline X3D::X3DBBoxUpdater *getBBoxUpdater() const {return _bboxupdater;};  
00073   inline X3D::X3DGLBuilder *getGLBuilder() const {return _builder;};  
00075   inline GL::X3DRenderer *getGLRenderer() const {return _renderer;};  
00077   inline X3DMemReleaser *getMemReleaser() const {return _releaser;};  
00078 
00079 protected:
00080   X3D::Scene *scene;
00081   GL::Scene *glscene;
00082   
00083   SFVec3f min;
00084   SFVec3f max;
00085   
00086   void loadFile(const char *file, bool fileValidation);
00087   void computeBBox();
00088   void buildGLScene();
00089 
00090 private:
00091   X3D::Loader *_loader;
00092   X3D::X3DBBoxUpdater *_bboxupdater;
00093   X3D::X3DGLBuilder *_builder;
00094   GL::X3DRenderer *_renderer;
00095   X3DMemReleaser *_releaser;
00096 };
00097 
00098 }
00099 
00100 #endif

Generated on Mon Jan 19 10:32:05 2004 for X3DToolKit by doxygen1.2.18