source: GTP/trunk/App/Demos/Vis/CHC_revisited/FrustumCullingTraverser.cpp @ 2763

Revision 2763, 1014 bytes checked in by mattausch, 16 years ago (diff)
Line 
1#include "FrustumCullingTraverser.h"
2#include "SceneEntity.h"
3
4using namespace std;
5
6
7namespace CHCDemo
8{
9
10FrustumCullingTraverser::FrustumCullingTraverser(): RenderTraverser()
11{
12}
13
14
15void FrustumCullingTraverser::Render()
16{
17        mRenderState->mTexturesEnabled = false;
18        mDistanceQueue.push(mBvh->GetRoot());
19
20
21        int traversed = 0;
22        while (!mDistanceQueue.empty())
23        {
24                BvhNode *node = mDistanceQueue.top();
25                mDistanceQueue.pop();
26       
27                // interesting for the visualization, so rest and set
28                node->SetVisible(false);
29                //mNumTraversedNodes ++;
30
31                if (mBvh->IsWithinViewFrustum(node))
32                {
33                        // update node's visited flag => needed for rendering
34                        // so set it also here
35                        //node->SetLastVisited(mFrameID);
36                        //node->SetVisible(true);
37                        ++ traversed;
38                        TraverseNode(node);
39                }
40                else
41                {
42                        //mNumFrustumCulledNodes ++;
43                }
44                //cout << "intersect: " << intersect << " bx " << node->GetBox() << endl;
45        }
46       
47        //std::cout << "traversed: " << traversed << std::endl;
48}
49
50}
Note: See TracBrowser for help on using the repository browser.