Ignore:
Timestamp:
03/30/05 11:36:07 (19 years ago)
Author:
Mattausch
Message:
 
Location:
trunk/VUT/OcclusionCullingSceneManager/src
Files:
2 added
1 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/OcclusionCullingSceneManager/src/OgreOcclusionCullingSceneManager.cpp

    r32 r33  
    1515        OcclusionCullingSceneManager::OcclusionCullingSceneManager() 
    1616        { 
     17                mOcclusionCullingSceneTraverser = new OcclusionCullingSceneTraverser(this, mDestRenderSystem); 
     18        } 
     19        //----------------------------------------------------------------------- 
     20        OcclusionCullingSceneManager::~OcclusionCullingSceneManager() 
     21        { 
     22                delete mOcclusionCullingSceneTraverser; 
    1723        } 
    1824        //----------------------------------------------------------------------- 
     
    2430        void OcclusionCullingSceneManager::_renderVisibleObjects( void ) 
    2531        { 
    26                 mSceneTraverser.renderScene(mCameraInProgress, mSceneRoot); 
     32                mOcclusionCullingSceneTraverser->renderScene(mCameraInProgress, mSceneRoot); 
    2733        } 
    2834        //----------------------------------------------------------------------- 
     
    3440        void OcclusionCullingSceneManager::_updateSceneGraph( Camera* cam ) 
    3541        { 
    36                 mSceneTraverser.preprocess(); 
     42                mOcclusionCullingSceneTraverser->setNumSceneNodes(mSceneNodes.size()); 
     43                mOcclusionCullingSceneTraverser->preprocess(); 
    3744                 
    3845                SceneManager::_updateSceneGraph(cam); 
     
    4148        bool OcclusionCullingSceneManager::setOption( const String & key, const void * val ) 
    4249        { 
    43                 mSceneTraverser.setOption(key, val); 
     50                mOcclusionCullingSceneTraverser->setOption(key, val); 
    4451                         
    4552                return SceneManager::setOption( key, val ); 
     
    4855        bool OcclusionCullingSceneManager::getOption( const String & key, void *val ) 
    4956        { 
    50                 mSceneTraverser.getOption(key, val); 
     57                mOcclusionCullingSceneTraverser->getOption(key, val); 
    5158                 
    5259                return SceneManager::getOption( key, val ); 
     
    6269                SceneManager::getOptionKeys( refKeys ); 
    6370 
    64                 refKeys.push_back( "Algorithm" ); 
    65                 refKeys.push_back( "Threshold" ); 
    66                 refKeys.push_back( "NumSceneNodes" ); 
    67                 refKeys.push_back( "NumTraversedNodes" ); 
    68                 refKeys.push_back( "NumQueryCulledNodes" ); 
    69                 refKeys.push_back( "NumFrustumCulledNodes" ); 
    70                 //refKeys.push_back( "mNumRenderedGeometry" ); 
     71                mOcclusionCullingSceneTraverser->getOptionKeys( refKeys ); 
     72 
    7173                return true; 
    7274        } 
  • trunk/VUT/OcclusionCullingSceneManager/src/OgreOcclusionCullingSceneManagerDll.cpp

    r32 r33  
    2424*/ 
    2525 
    26 //#include "OgreOcclusionCullingSceneManager.h" 
    27 //#include "OgreTerrainOcclusionCullingSceneManager.h" 
    28 #include <OgreOctreeSceneManager.h> 
    29 #include <OgreTerrainSceneManager.h> 
     26#include "OgreOcclusionCullingTerrainSceneManager.h" 
     27#include "OgreOcclusionCullingSceneManager.h" 
     28#include "OgreOcclusionCullingDotSceneManager.h" 
    3029#include <OgreRoot.h> 
    31 #include "OgreHeightmapTerrainPageSource.h" 
     30 
     31//#include "OgreHeightmapTerrainPageSource.h" 
    3232//#include <windows.h> 
    3333 
    3434namespace Ogre { 
    3535 
    36     //OcclusionCullingSceneManager *occlusionPlugin; 
    37         //TerrainOcclusionCullingSceneManager *terrainOcclusionPlugin; 
    38         OctreeSceneManager *ocPlugin; 
    39  
     36    OcclusionCullingSceneManager *occlusionPlugin; 
     37        OcclusionCullingTerrainSceneManager *occlusionTerrainPlugin; 
     38         
    4039    //----------------------------------------------------------------------- 
    4140    extern "C" void dllStartPlugin(void) 
    4241    { 
    4342                // Create new scene manager 
    44         //      occlusionPlugin = new OcclusionCullingSceneManager(); 
    45                 ocPlugin = new OctreeSceneManager(); 
     43                occlusionPlugin = new OcclusionCullingSceneManager(); 
     44                occlusionTerrainPlugin = new OcclusionCullingTerrainSceneManager(); 
    4645     
    4746            // Register 
    48                 //Root::getSingleton().setSceneManager( ST_GENERIC, occlusionPlugin ); 
    49 //              Root::getSingleton().setSceneManager( ST_EXTERIOR_CLOSE, terrainOcclusionPlugin ); 
    50                 Root::getSingleton().setSceneManager( ST_EXTERIOR_CLOSE, ocPlugin ); 
    51  
    52                 //MessageBox( NULL, "myplugin registered", "this is my plugin", MB_OK | MB_ICONERROR | MB_TASKMODAL); 
     47                Root::getSingleton().setSceneManager( ST_GENERIC, occlusionPlugin ); 
     48                Root::getSingleton().setSceneManager( ST_EXTERIOR_CLOSE, occlusionTerrainPlugin ); 
     49                 
     50                // MessageBox( NULL, "myplugin registered", "this is my plugin", MB_OK | MB_ICONERROR | MB_TASKMODAL); 
    5351    } 
    5452    extern "C" void dllStopPlugin(void) 
    5553    { 
    56       //  delete occlusionPlugin; 
    57                 delete ocPlugin; 
    58                 //delete terrainOcclusionPlugin; 
     54        delete occlusionPlugin; 
     55                delete occlusionTerrainPlugin; 
    5956    } 
    6057} 
  • trunk/VUT/OcclusionCullingSceneManager/src/OgreOcclusionCullingSceneTraverser.cpp

    r32 r33  
    77#include "OgreSolidHalfBoundingBox.h" 
    88 
     9 
    910#include <windows.h> 
    1011 
     
    1213         
    1314        //----------------------------------------------------------------------- 
    14         OcclusionCullingSceneTraverser::OcclusionCullingSceneTraverser():  
     15        OcclusionCullingSceneTraverser::OcclusionCullingSceneTraverser(SceneManager *sm, RenderSystem *rsys):  
    1516        mFrameId(1), mDistanceQueue(NULL), mVisibilityThreshold(0), mCurrentTestIdx(0), 
    1617        mQueryMode(MODE_RENDER), mNumSceneNodes(0), mCurrentAlgorithm(RENDER_COHERENT), 
    1718        mNumTraversedNodes(0), mNumQueryCulledNodes(0), mNumFrustumCulledNodes(0),  
    18         mNumRenderedGeometry(0), mSceneManager(0), mRenderSystem(0) 
     19        mNumRenderedGeometry(0), mSceneManager(sm), mRenderSystem(rsys) 
    1920        {                
    2021                mHalfBoundingBox[0] = mHalfBoundingBox[1] = 0; 
     
    257258                //-- initialise occlusion queries. 
    258259                deleteQueries(); 
    259                          
     260                 
    260261                for(unsigned int i=0; i < mNumSceneNodes; i++) 
    261262                { 
     
    389390                return false; 
    390391        } 
     392        //----------------------------------------------------------------------- 
     393        bool OcclusionCullingSceneTraverser::getOptionKeys( StringVector & refKeys ) 
     394        { 
     395                refKeys.push_back( "Algorithm" ); 
     396                refKeys.push_back( "Threshold" ); 
     397                refKeys.push_back( "NumSceneNodes" ); 
     398                refKeys.push_back( "NumTraversedNodes" ); 
     399                refKeys.push_back( "NumQueryCulledNodes" ); 
     400                refKeys.push_back( "NumFrustumCulledNodes" ); 
     401                //refKeys.push_back( "mNumRenderedGeometry" ); 
     402 
     403                return true; 
     404        } 
     405        //----------------------------------------------------------------------- 
     406        void OcclusionCullingSceneTraverser::setNumSceneNodes(int num) 
     407        { 
     408                mNumSceneNodes = num; 
     409        } 
    391410}        
Note: See TracChangeset for help on using the changeset viewer.