00001 #ifndef _VisibilityBspSceneManager_H__ 00002 #define _VisibilityBspSceneManager_H__ 00003 00004 #include <OgreSceneNode.h> 00005 #include <OgreBspSceneManager.h> 00006 #include <OgreOctreeNode.h> 00007 #include <OgreOctreeCamera.h> 00008 #include <OgrePrerequisites.h> 00009 00010 #include "OgreBspHierarchyInterface.h" 00011 #include "GtpVisibility/Manager.h" 00012 00013 namespace Ogre { 00014 00019 class VisibilityBspSceneManager: public BspSceneManager 00020 { 00021 public: 00022 VisibilityBspSceneManager(GtpVisibility::Manager *visManager); 00023 ~VisibilityBspSceneManager(); 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::Manager *visManager); 00051 GtpVisibility::Manager *getVisibilityManager( void ); 00052 00053 protected: 00054 00055 BspHierarchyInterface *mHierarchyInterface; 00056 GtpVisibility::Manager *mVisibilityManager; 00057 }; 00058 00059 } // namespace Ogre 00060 00061 #endif // VisibilityBspSceneManager_H