00001 #ifndef _VisibilityOctreeSceneManager_H__ 00002 #define _VisibilityOctreeSceneManager_H__ 00003 00004 #include <OgreSceneNode.h> 00005 #include <OgreOctreeSceneManager.h> 00006 #include <OgreOctreeNode.h> 00007 #include <OgreOctreeCamera.h> 00008 #include <OgrePrerequisites.h> 00009 00010 #include "OgreOctreeHierarchyInterface.h" 00011 #include "VisibilityManager.h" 00012 00013 namespace Ogre { 00014 00019 class VisibilityOctreeSceneManager: public OctreeSceneManager 00020 { 00021 public: 00022 VisibilityOctreeSceneManager(GtpVisibility::VisibilityManager *visManager); 00023 ~VisibilityOctreeSceneManager(); 00024 00025 void _renderVisibleObjects(); 00026 void _findVisibleObjects(Camera* cam, bool onlyShadowCasters); 00027 void _updateSceneGraph(Camera* cam ); 00028 00035 virtual bool setOption(const String &, const void *); 00040 virtual bool getOption(const String &, void *); 00041 00042 bool getOptionValues(const String & key, StringVector &refValueList); 00043 bool getOptionKeys(StringVector &refKeys); 00044 00048 void setVisibilityManager(GtpVisibility::VisibilityManager *visManager); 00051 GtpVisibility::VisibilityManager *getVisibilityManager( void ); 00052 00053 protected: 00054 00055 OctreeHierarchyInterface *mHierarchyInterface; 00056 GtpVisibility::VisibilityManager *mVisibilityManager; 00057 }; 00058 00059 } // namespace Ogre 00060 00061 #endif // VisibilityOctreeSceneManager_H