source: trunk/VUT/Ogre/include/OgreVisibilitySceneManager.h @ 115

Revision 115, 1.8 KB checked in by mattausch, 20 years ago (diff)

added depth pass algorithm + delayed transparent object rendering (so depth ordering is right)

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