00001 #ifndef _VisibilitySceneManager_H__ 00002 #define _VisibilitySceneManager_H__ 00003 00004 #include "OgreSceneNodeHierarchyInterface.h" 00005 #include "VisibilityManager.h" 00006 00007 #include <OgreSceneNode.h> 00008 #include <OgreSceneManager.h> 00009 #include <OgrePrerequisites.h> 00010 00011 namespace Ogre { 00012 00017 class VisibilitySceneManager : public SceneManager 00018 { 00019 public: 00020 VisibilitySceneManager(GtpVisibility::VisibilityManager *visManager); 00021 ~VisibilitySceneManager(); 00022 00027 void _renderVisibleObjects(); 00028 void _findVisibleObjects(Camera* cam, bool onlyShadowCasters); 00029 void _updateSceneGraph(Camera* cam); 00030 00036 virtual bool setOption(const String &, const void *); 00041 virtual bool getOption(const String &, void *); 00042 00043 bool getOptionValues(const String & key, StringVector &refValueList); 00044 bool getOptionKeys( StringVector &refKeys ); 00045 00049 void setVisibilityManager(GtpVisibility::VisibilityManager *visManager); 00052 GtpVisibility::VisibilityManager *getVisibilityManager(); 00053 00054 protected: 00055 00056 SceneNodeHierarchyInterface *mHierarchyInterface; 00057 GtpVisibility::VisibilityManager *mVisibilityManager; 00058 }; 00059 } // namespace Ogre 00060 #endif // VisibilitySceneManager_H