source: trunk/VUT/GtpVisibility/include/CullingManager.h @ 114

Revision 114, 2.0 KB checked in by mattausch, 20 years ago (diff)
RevLine 
[59]1#ifndef _CullingManager_H__
2#define _CullingManager_H__
3
4#include "HierarchyInterface.h"
5
6namespace GtpVisibility {
7
8/** This abstract class implements an interface for a specific culling
9        algorithm. The algorithm is either used to render a scene or to make a visibility query.
10*/
11class CullingManager
12{
13public:
[74]14        /** Default constructor.
15                @remark an appropriate hierarchy interface must be provided for the algorithms to
16                work on specific hierarchy
[59]17        */
[74]18        CullingManager();
[59]19        /** Renders the scene using a specific occlusion culling algorithm, e.g., coherent
20                hierarchical culling or stop and wait.
21        */
22        virtual void RenderScene() = 0;
23        /** Sets the hierarchy interface.
24                @param hierarchyInterface
25                @remark the hierarchy interface encapsulates the hierarchy we are working on
26        */
27        void SetHierarchyInterface(HierarchyInterface *hierarchyInterface);
[74]28        /** Sets the threshold for the visibiliy culling algorithm.
29                @param visibilityThreshold number of visible pixels where an object
30                is still considered invisible.
31        */
32        void SetVisibilityThreshold(unsigned int visibilityThreshold);
[59]33
[74]34        /** Returns number of frustum culled nodes.
35        */
36        unsigned int GetNumFrustumCulledNodes();
37        /** Returns number of occlusion query culled nodes.
38        */
39        unsigned int GetNumQueryCulledNodes();
[87]40        /** Returns number of issued occlusion queries.
41        */
42        unsigned int GetNumQueriesIssued();
43        /** basic initializations on beginning of each frame, e.g.,
44                resets statistics.
45        */
[112]46        void InitFrame(bool visualizeCulledNodes);
[74]47
[112]48        /** Some visualization of culled nodes are shown, depending
49        on the type of hierarchy.
50        @param showVisualization if true, culled nodes are visualized
51        */
52        void SetVisualizeCulledNodes(bool visualizeCulledNodes);
53
[59]54protected:
[87]55       
[59]56        unsigned int mNumQueryCulledNodes;
57        unsigned int mNumFrustumCulledNodes;
[74]58        unsigned int mVisibilityThreshold;
[87]59        unsigned int mNumQueriesIssued;
[59]60
61        HierarchyInterface *mHierarchyInterface;
[112]62        bool mVisualizeCulledNodes;
[59]63};
64} // namespace GtpVisibility
65#endif // CullingManager
Note: See TracBrowser for help on using the repository browser.