Ignore:
Timestamp:
04/05/05 17:39:03 (19 years ago)
Author:
mattausch
Message:
 
Location:
trunk/VUT/OcclusionCullingSceneManager/include
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/OcclusionCullingSceneManager/include/OgreOcclusionCullingSceneTraverser.h

    r36 r39  
    3030        }; 
    3131 
    32         typedef pair<SceneNode *, HardwareOcclusionQuery *> query_pair; 
     32        typedef pair<SceneNode *, HardwareOcclusionQuery *> QueryPair; 
    3333        typedef priority_queue<SceneNode *, vector<SceneNode *>, myless<vector<SceneNode *>::value_type> > PriorityQueue; 
    34         typedef queue<query_pair> QueryQueue; 
     34        typedef queue<QueryPair> QueryQueue; 
    3535        /** 
    3636                Class which implements a scene mangager which uses occlusion queries for culling occluded objects 
     
    100100                //HACK 
    101101                //unsigned int countSceneNodes(SceneNode *node); 
    102                 virtual void traverseNode( Camera *cam, SceneNode *node ); 
     102                void traverseNode( Camera *cam, SceneNode *node ); 
    103103                /** Renders current scene node  
    104104                @param cam current camera 
  • trunk/VUT/OcclusionCullingSceneManager/include/OgreOcclusionCullingTerrainSceneManager.h

    r34 r39  
    1616 
    1717namespace Ogre { 
    18          
     18        template <typename T> class octreeless 
     19        { 
     20        public: 
     21                myless(Camera *cam) { mCamera = cam; } 
     22                //bool operator() (HierarchyNode *v1, HierarchyNode *v2) const 
     23                bool operator() (T v1, T v2) const 
     24                { 
     25                        v1->getCullBounds(&mAabb); 
     26                        return mAabb->getSquaredViewDepth(mCamera) > v2->getSquaredViewDepth(mCamera); 
     27                } 
     28 
     29        private: 
     30                Camera *mCamera; 
     31                AxisAlignedBox mAabb; 
     32        }; 
     33 
    1934        /** 
    2035                Class which implements a scene mangager which uses occlusion queries for culling occluded objects 
  • trunk/VUT/OcclusionCullingSceneManager/include/OgreOcclusionCullingTerrainSceneTraverser.h

    r36 r39  
    22#define _OcclusionCullingTerrainSceneTraverser_H__ 
    33 
     4#include "OgreOctree.h" 
    45#include "OgreOcclusionCullingSceneTraverser.h" 
    56 
     
    78 
    89namespace Ogre { 
     10void Octree::_getCullBounds( AxisAlignedBox *b ) 
     11        typedef pair<Octree *, HardwareOcclusionQuery *> OctreeQueryPair; 
     12        typedef priority_queue<Octree *, vector<Octree *>, myless<vector<Octree *>::value_type> > OctreePriorityQueue; 
     13        //typedef queue<QueryPair> QueryQueue; 
    914 
    1015        class OcclusionCullingTerrainSceneTraverser: OcclusionCullingSceneTraverser 
    1116        { 
    12                 void traverseNode( Camera *cam, SceneNode *node ); 
     17                void renderScene( Camera *cam, Octree *root ); 
     18                void renderCullFrustum( Camera *cam ); 
     19                void pullUpVisibility( Octree *node ); 
     20                void traverseNode( Camera *cam, Octree *node ); 
     21 
     22        protected: 
     23                OctreePriorityQueue *mDistanceQueue; 
    1324        }; 
    1425 
Note: See TracChangeset for help on using the changeset viewer.