00001 #ifndef _VisibilityTerrainSceneManager_H__ 00002 #define _VisibilityTerrainSceneManager_H__ 00003 00004 #include <OgreSceneNode.h> 00005 #include <OgreOctreeSceneManager.h> 00006 #include <OgreTerrainSceneManager.h> 00007 #include <OgreOctreeSceneQuery.h> 00008 #include <OgreOctreeNode.h> 00009 #include <OgreOctreeCamera.h> 00010 #include <OgrePrerequisites.h> 00011 00012 #include "OgreOctreeHierarchyInterface.h" 00013 #include "VisibilityManager.h" 00014 00015 namespace Ogre { 00016 00021 class VisibilityTerrainSceneManager: public TerrainSceneManager 00022 { 00023 public: 00024 VisibilityTerrainSceneManager(GtpVisibility::VisibilityManager *visManager); 00025 ~VisibilityTerrainSceneManager(); 00026 00027 void _renderVisibleObjects(void); 00028 void _findVisibleObjects(Camera* cam, bool onlyShadowCasters); 00029 void _updateSceneGraph(Camera* cam); 00030 00037 virtual bool setOption( const String &, const void * ); 00042 virtual bool getOption( const String &, void * ); 00043 00044 bool getOptionValues( const String & key, StringVector &refValueList ); 00045 bool getOptionKeys( StringVector &refKeys ); 00046 00050 void setVisibilityManager(GtpVisibility::VisibilityManager *visManager); 00053 GtpVisibility::VisibilityManager *getVisibilityManager(); 00054 00055 protected: 00056 00057 OctreeHierarchyInterface *mHierarchyInterface; 00058 GtpVisibility::VisibilityManager *mVisibilityManager; 00059 }; 00060 00061 //} // namespace GtpVisibility 00062 } // namespace Ogre 00063 00064 #endif // CullingTerrainSceneManager_H