00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef COIN_SOSCENEMANAGER_H
00021 #define COIN_SOSCENEMANAGER_H
00022
00023 #include <Inventor/SbColor.h>
00024 #include <Inventor/SbVec2s.h>
00025
00026 class SbViewportRegion;
00027 class SoEvent;
00028 class SoGLRenderAction;
00029 class SoHandleEventAction;
00030 class SoNode;
00031 class SoNodeSensor;
00032 class SoOneShotSensor;
00033 class SoSensor;
00034
00035 class SoSceneManager;
00036 typedef void SoSceneManagerRenderCB(void * userdata, SoSceneManager * mgr);
00037
00038
00039 class COIN_DLL_API SoSceneManager {
00040 public:
00041 SoSceneManager(void);
00042 virtual ~SoSceneManager();
00043 virtual void render(const SbBool clearwindow = TRUE,
00044 const SbBool clearzbuffer = TRUE);
00045 virtual SbBool processEvent(const SoEvent * const event);
00046 void reinitialize(void);
00047 void scheduleRedraw(void);
00048 virtual void setSceneGraph(SoNode * const sceneroot);
00049 virtual SoNode * getSceneGraph(void) const;
00050 void setWindowSize(const SbVec2s & newsize);
00051 const SbVec2s & getWindowSize(void) const;
00052 void setSize(const SbVec2s & newsize);
00053 const SbVec2s & getSize(void) const;
00054 void setOrigin(const SbVec2s & newOrigin);
00055 const SbVec2s & getOrigin(void) const;
00056 void setViewportRegion(const SbViewportRegion & newRegion);
00057 const SbViewportRegion & getViewportRegion(void) const;
00058 void setBackgroundColor(const SbColor & color);
00059 const SbColor & getBackgroundColor(void) const;
00060 void setBackgroundIndex(const int index);
00061 int getBackgroundIndex(void) const;
00062 void setRGBMode(const SbBool onOrOff);
00063 SbBool isRGBMode(void) const;
00064 virtual void activate(void);
00065 virtual void deactivate(void);
00066 void setRenderCallback(SoSceneManagerRenderCB * f,
00067 void * const userData = NULL);
00068 SbBool isAutoRedraw(void) const;
00069 void setRedrawPriority(const uint32_t priority);
00070 uint32_t getRedrawPriority(void) const;
00071 void setAntialiasing(const SbBool smoothing, const int numPasses);
00072 void getAntialiasing(SbBool & smoothing, int & numPasses) const;
00073 void setGLRenderAction(SoGLRenderAction * const action);
00074 SoGLRenderAction * getGLRenderAction(void) const;
00075 void setHandleEventAction(SoHandleEventAction * hea);
00076 SoHandleEventAction * getHandleEventAction(void) const;
00077
00078 static uint32_t getDefaultRedrawPriority(void);
00079 static void enableRealTimeUpdate(const SbBool flag);
00080 static SbBool isRealTimeUpdateEnabled(void);
00081
00082 protected:
00083 int isActive(void) const;
00084 void redraw(void);
00085
00086 private:
00087 class SoSceneManagerP * pimpl;
00088 friend class SoSceneManagerP;
00089 };
00090
00091 #endif // !COIN_SOSCENEMANAGER_H