#ifndef _VisibilityDotSceneManager_H__ #define _VisibilityDotSceneManager_H__ #include #include #include #include "VisibilityManager.h" #include "OgreSceneNodeHierarchyInterface.h" namespace Ogre { /** This class extends the dot scene manager, using occlusion queries for visibility culling. @remark the scene manager can operate on Ogre scene descriptions in XML defined by the ".scene" format */ class VisibilityDotSceneManager: public DotSceneManager { public: VisibilityDotSceneManager(GtpVisibility::VisibilityManager *visManager); ~VisibilityDotSceneManager(); void _renderVisibleObjects(); 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(); protected: Ogre::SceneNodeHierarchyInterface *mHierarchyInterface; GtpVisibility::VisibilityManager *mVisibilityManager; }; } // namespace Ogre #endif // VisibilityDotSceneManager_H