source: GTP/trunk/Lib/Vis/OnlineCullingCHC/include/VisibilityManager.h @ 925

Revision 925, 2.8 KB checked in by mattausch, 18 years ago (diff)

update for ogre 1.2
OcclusionCullingSceneManager? is the only scenemanager in the solution now

Line 
1#ifndef _VisibilityManager_H__
2#define _VisibilityManager_H__
3
4#include "CullingManager.h"
5#include "VisibilityEnvironment.h"
6
7/** This namespace includes all classes which are created by the VUT (Vienna University
8        of Technology for the Visibility module of the GTP (GameTools Project) (www.gametools.org),
9        and are not directly derived from an Ogre class.
10*/
11namespace GtpVisibility {
12
13  class QueryManager;
14  class PreprocessingManager;
15 
16/** This class manages all forms of visibility. It is the main
17        class of our visibility module and manages online occlusion culling,
18        offline culling, and visibility queries.
19*/
20class VisibilityManager
21{
22public:
23        /** Constructor taking the visibility environment object as parameter
24                @param visEnvironment the visibility environment
25        */
26        VisibilityManager(VisibilityEnvironment *visEnvironment);
27       
28        ~VisibilityManager();
29        /** Sets the current online occlusion culling manager, e.g.,
30                the stop and wait algorithm or coherent hierarchical culling.
31                @param ocmType the online occlusion culling manager type
32        */
33        void SetCullingManager(VisibilityEnvironment::CullingManagerType ocmType);
34        /** Returns the current online occlusion culling manager.
35        */
36        CullingManager *GetCullingManager();
37        /** Returns the current online occlusion culling manager type. See set
38        */
39        VisibilityEnvironment::CullingManagerType GetCullingManagerType();
40
41        /** Applies the online visibility culling algorithm on a scene.
42                @remark the algorithm depends on the current culling manager.
43        */
44        void ApplyVisibilityCulling();
45
46        /** Sets the threshold for the visibiliy culling algorithm.
47                @param threshold number of visible pixels where an object
48                is still considered invisible.
49                @remark automatically sets the threshold of the current and of
50                new culling managers to this value.
51        */
52        void SetVisibilityCullingThreshold(unsigned int threshold);
53
54        /** Indicates for how long a frame is considered to be visible.
55                @param assumedVisibility estimation for how long visibility is assumed to be valid.
56                @remark this option is only valid for the coherent hierarchical culling algorithm
57        */
58        void SetAssumedVisibilityForChc(unsigned int assumedVisibility);
59       
60        /** Sets pointer to a query manager.
61        */
62        void SetQueryManager(QueryManager *queryManager);
63        /** see set
64        */
65        QueryManager *GetQueryManager();
66
67        VisibilityEnvironment *GetVisibilityEnvironment();
68
69protected:
70       
71        CullingManager *mCullingManager;
72        QueryManager *mQueryManager;
73        PreprocessingManager *mPreprocessingManager;
74        VisibilityEnvironment *mVisibilityEnvironment;
75        VisibilityEnvironment::CullingManagerType mCullingManagerType;
76
77        unsigned int mVisibilityThreshold;
78        unsigned int mAssumedVisibilityForChc;
79};
80} // namespace GtpVisibility
81
82#endif // VisibilityManager
Note: See TracBrowser for help on using the repository browser.