source: OGRE/trunk/include/OgreVisibilityDotSceneManager.h @ 59

Revision 59, 1.6 KB checked in by mattausch, 20 years ago (diff)

completely changed file structure plus software design

Line 
1#ifndef _VisibilityDotSceneManager_H__
2#define _VisibilityDotSceneManager_H__
3
4#include <OgreSceneNode.h>
5#include <DotSceneManager.h>
6#include <OgrePrerequisites.h>
7#include "VisibilityManager.h"
8#include "OgreSceneNodeHierarchyInterface.h"
9
10namespace Ogre {
11
12/**
13        This class extends the dot scene manager, using occlusion queries for
14        visibility culling.
15        @remark the scene manager can operate on Ogre scene descriptions in
16        XML defined by the ".scene" format
17*/
18class VisibilityDotSceneManager: public DotSceneManager
19{
20public:
21        VisibilityDotSceneManager(GtpVisibility::VisibilityManager *visManager);
22        ~VisibilityDotSceneManager();
23
24        void _renderVisibleObjects();
25        void _findVisibleObjects(Camera* cam, bool onlyShadowCasters);
26        void _updateSceneGraph(Camera* cam);
27
28        /** Sets the given option for the SceneManager
29                @remarks
30                Options are:
31                "Algorithm", int *;                     
32        */
33        virtual bool setOption(const String &, const void *);
34        /** Gets the given option for the Scene VisibilityManager.
35            @remarks
36                See setOption
37        */
38        virtual bool getOption(const String &, void *);
39
40        bool getOptionValues(const String & key, StringVector &refValueList);
41        bool getOptionKeys(StringVector &refKeys);
42
43        /** Sets the visibility manager.
44                @param visManager the visibility manager
45        */
46        void setVisibilityManager(GtpVisibility::VisibilityManager *visManager);
47        /** See set.
48        */
49        GtpVisibility::VisibilityManager *getVisibilityManager();
50
51protected:
52
53        Ogre::SceneNodeHierarchyInterface *mHierarchyInterface;
54        GtpVisibility::VisibilityManager *mVisibilityManager;
55};
56} // namespace Ogre
57
58#endif // VisibilityDotSceneManager_H
Note: See TracBrowser for help on using the repository browser.