#ifndef _VisibilityTerrainSceneManager_H__ #define _VisibilityTerrainSceneManager_H__ #include #include #include #include #include #include #include #include "OgreOctreeHierarchyInterface.h" #include "VisibilityManager.h" namespace Ogre { /** This class extends the terrain scene manager, using occlusion queries for visibility culling. */ class VisibilityTerrainSceneManager: public TerrainSceneManager { public: VisibilityTerrainSceneManager(GtpVisibility::VisibilityManager *visManager); ~VisibilityTerrainSceneManager(); void _renderVisibleObjects(void); void _findVisibleObjects(Camera* cam, bool onlyShadowCasters); void _updateSceneGraph(Camera* cam); /** Sets the given option for the SceneManager @remarks Options are: "Algorithm", int *; */ virtual bool setOption( const String &, const void * ); /** Gets the given option for the Scene VisibilityManager. @remarks See setOption */ virtual bool getOption( const String &, void * ); bool getOptionValues( const String & key, StringVector &refValueList ); bool getOptionKeys( StringVector &refKeys ); /** Sets the visibility manager. @param visManager the visibility manager */ void setVisibilityManager(GtpVisibility::VisibilityManager *visManager); /** See set. */ GtpVisibility::VisibilityManager *getVisibilityManager(); //writes out stats into the Ogre log file void WriteLog(); void SetShowVisualization(bool showViz); /* void SetSkyBoxEnabled(bool enabled); void SetSkyPlaneEnabled(bool enabled); void SetSkyDomeEnabled(bool enabled);*/ protected: OctreeHierarchyInterface *mHierarchyInterface; GtpVisibility::VisibilityManager *mVisibilityManager; bool mUseVisibilityCulling; bool mShowVisualization; }; } // namespace Ogre #endif // CullingTerrainSceneManager_H