00001 00002 // SimpleX3DGLScene.h // 00004 00005 #ifndef SIMPLEX3DGLSCENE_H 00006 #define SIMPLEX3DGLSCENE_H 00007 00008 #include "X3DTypes.h" 00009 #include "Bbox.h" 00010 00011 namespace X3DTK { 00012 00013 class X3DLoader; 00014 class X3DBboxUpdater; 00015 class GLConverter; 00016 class X3DGLCreator; 00017 class X3DGLUpdater; 00018 class X3DGLRenderer; 00019 class X3DMemReleaser; 00020 class Scene; 00021 class GLScene; 00022 00024 00025 class SimpleX3DGLScene 00026 { 00027 public: 00029 SimpleX3DGLScene(); 00031 virtual ~SimpleX3DGLScene(); 00032 00034 void load(const char *file); 00036 virtual void draw(); 00038 inline SFVec3f getBboxMin() const {return min;}; 00040 inline SFVec3f getBboxMax() const {return max;}; 00042 void release(); 00043 00045 void setLoader(X3DLoader *loader); 00047 void setBboxUpdater(X3DBboxUpdater *bboxUpdater); 00049 void setGLCreator(X3DGLCreator *creator); 00051 void setGLUpdater(X3DGLUpdater *glupdater); 00053 void setGLRenderer(X3DGLRenderer *renderer); 00055 void setMemReleaser(X3DMemReleaser *memReleaser); 00056 00057 protected: 00058 X3DLoader *_loader; 00059 X3DBboxUpdater *_bboxupdater; 00060 GLConverter *_converter; 00061 X3DGLRenderer *_renderer; 00062 X3DMemReleaser *_releaser; 00063 Scene *s; 00064 GLScene *gs; 00065 SFVec3f min; 00066 SFVec3f max; 00067 }; 00068 00069 } 00070 00071 #endif