source: trunk/VUT/GtpVisibility/include/VisibilityManager.h @ 65

Revision 65, 1.7 KB checked in by bittner, 19 years ago (diff)

Merged headers and sources for dummy modules. Added GtpVisibilityPreprocessor?

Line 
1#ifndef _Manager_H__
2#define _Manager_H__
3
4#include "CullingManager.h"
5#include "VisibilityEnvironment.h"
6
7
8/** This namespace includes all classes which are created by the VUT (Vienna University
9        of Technology for the Visibility module of the GTP (GameTools Project) (www.gametools.org),
10        and are not directly derived from an Ogre class.
11*/
12
13namespace GtpVisibility {
14
15  class QueryManager;
16  class PreprocessingManager;
17 
18/** This class manages all forms of visibility. It is the main
19        class of our visibility module and manages online occlusion culling,
20        offline culling, and visibility queries.
21*/
22class VisibilityManager
23{
24public:
25        /** Constructor taking the visibility environment object as parameter
26                @param visEnvironment the visibility environment
27        */
28        VisibilityManager(VisibilityEnvironment *visEnvironment);
29       
30        ~VisibilityManager();
31        /** Sets the current online occlusion culling manager, e.g.,
32                the stop and wait algorithm or coherent hierarchical culling.
33                @param ocmType the online occlusion culling manager type
34        */
35        void SetCullingManager(VisibilityEnvironment::CullingManagerType ocmType);
36        /** Returns the current online occlusion culling manager. See set
37        */
38        CullingManager *GetCullingManager();
39
40        /** Applies the online visibility culling algorithm on a scene.
41                @remark the algorithm depends on the current culling manager.
42        */
43        void ApplyVisibilityCulling();
44
45protected:
46       
47  CullingManager *mCullingManager;
48  QueryManager *mQueryManager;
49  PreprocessingManager *mPreprocessingManager;
50  VisibilityEnvironment *mVisibilityEnvironment;
51  VisibilityEnvironment::CullingManagerType mCullingManagerType;
52};
53} // namespace GtpVisibility
54#endif // VisibilityManager
Note: See TracBrowser for help on using the repository browser.