source: trunk/VUT/GtpVisibility/include/CoherentHierarchicalCullingManager.h @ 345

Revision 345, 1.5 KB checked in by mattausch, 19 years ago (diff)

fixed bug in chc when traversing node two times because of priority queue. left debug info in there

Line 
1#ifndef _CoherentHierarchicalCullingManager_H__
2#define _CoherentHierarchicalCullingManager_H__
3
4#include "CullingManager.h"
5#include "HierarchyInterface.h"
6
7
8namespace GtpVisibility
9{
10
11/** Renders the scene with the coherent hierarchical culling algorithm.
12*/
13class CoherentHierarchicalCullingManager : public CullingManager
14{
15public:
16        CoherentHierarchicalCullingManager();
17        /** Constructor taking the assumed visibility into account, i.e., the estimation
18                for how many frames the current visibility is considered to be valid
19        */
20        CoherentHierarchicalCullingManager(const unsigned int assumedVisibility);
21
22        void RenderScene();
23        /** Sets assumed visibility (i.e., an estimation for
24                how many frames the visibility is considered to be valid).
25                @param assumedVisibility indicates for how many frames the
26                same visibility is be assumed.
27                if 0, the visibility is tested deterministically for each frame.
28        */
29        void SetAssumedVisibility(const unsigned int assumedVisibility);
30
31protected:
32        /** Decides if node is considered to be visible depeding on the
33                assumed visibility factor.
34                @returns if node is considered to be visible
35        */
36        bool DecideVisible(HierarchyNode *node) const;
37
38        unsigned int mAssumedVisibility;
39       
40        /** Skip query for this node.
41        */
42        void SkipQuery(HierarchyNode *node) const;
43
44
45        /** Threshold for rand function to return positive result with respect to
46                mAssumedVisibility.
47        */
48        int mThreshold;
49};
50
51} // namespace GtpVisibility
52
53#endif // CoherentHierarchicalCullingManager_H
Note: See TracBrowser for help on using the repository browser.