Ignore:
Timestamp:
06/14/07 17:24:08 (17 years ago)
Author:
mattausch
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Vis/OnlineCullingCHC/src/VisibilityManager.cpp

    r2289 r2455  
    4545                // delete old culling manager 
    4646                if (mCullingManager) 
    47                 { 
    4847                        delete mCullingManager; 
    49                 } 
    5048 
    5149                mCullingManagerType = ocmType; 
     
    5452                { 
    5553                case VisibilityEnvironment::COHERENT_HIERARCHICAL_CULLING: 
    56                         mCullingManager = new CoherentHierarchicalCullingManager(mAssumedVisibilityForChc); 
     54                        { 
     55                                CoherentHierarchicalCullingManager *chcm = new CoherentHierarchicalCullingManager(mAssumedVisibilityForChc); 
     56                                chcm->SetTestGeometryForVisibleLeaves(mTestGeometryForVisibleLeaves); 
     57                                mCullingManager = chcm; 
     58                        } 
    5759                        break; 
    58  
    5960                case VisibilityEnvironment::FRUSTUM_CULLING: 
    6061                        mCullingManager = new FrustumCullingManager(); 
    6162                        break; 
    62  
    6363                case VisibilityEnvironment::RANDOM_UPDATE_CULLING: 
    64                         mCullingManager = new RandomUpdateCullingManager();      
     64                        { 
     65                                RandomUpdateCullingManager *rum = new RandomUpdateCullingManager(mRandomCandidatesForRuc); 
     66                                rum->SetTestGeometryForVisibleLeaves(mTestGeometryForVisibleLeaves); 
     67                                mCullingManager = rum; 
     68                        } 
    6569                        break; 
    66  
    6770                case VisibilityEnvironment::STOP_AND_WAIT_CULLING: 
    6871                        mCullingManager = new StopAndWaitCullingManager(); 
    69                         //mCullingManager = new RandomUpdateCullingManager(); 
    7072                        break; 
    71  
    7273                default: 
    7374                        mCullingManager = new CoherentHierarchicalCullingManager(mAssumedVisibilityForChc); 
    7475                        break; 
    75  
    7676                } 
    7777 
    7878                ///////// 
    7979                //-- set threshold 
     80 
    8081                mCullingManager->SetVisibilityThreshold(mVisibilityThreshold);   
    8182        } 
     
    113114} 
    114115//----------------------------------------------------------------------- 
    115 void VisibilityManager::SetAssumedVisibilityForChc(unsigned int assumedVisibility)  
    116                                                                           
     116void VisibilityManager::SetAssumedVisibilityForChc(unsigned int assumedVisibility)                                                                        
    117117{ 
    118118        mAssumedVisibilityForChc = assumedVisibility; 
    119119 
    120         // in case we currently use chc 
    121         if (VisibilityManager::GetCullingManagerType() ==  
    122                 VisibilityEnvironment::COHERENT_HIERARCHICAL_CULLING) 
     120        if (mCullingManagerType == VisibilityEnvironment::COHERENT_HIERARCHICAL_CULLING) 
    123121        { 
    124122                static_cast<CoherentHierarchicalCullingManager *>(mCullingManager)-> 
    125                                 SetAssumedVisibility(assumedVisibility); 
     123                                SetAssumedVisibility(mAssumedVisibilityForChc); 
     124        } 
     125} 
     126//----------------------------------------------------------------------- 
     127void VisibilityManager::SetRandomUpdateCandidatesForRuc(unsigned int randomCandidates)                                                                    
     128{ 
     129        mRandomCandidatesForRuc = randomCandidates; 
     130 
     131        if (mCullingManagerType == VisibilityEnvironment::RANDOM_UPDATE_CULLING) 
     132        { 
     133                static_cast<RandomUpdateCullingManager *>(mCullingManager)-> 
     134                                SetRandomCandidates(mRandomCandidatesForRuc); 
    126135        } 
    127136} 
     
    131140        return mVisibilityEnvironment; 
    132141} 
     142//----------------------------------------------------------------------- 
     143unsigned int VisibilityManager::GetAssumedVisibilityForChc() 
     144{ 
     145        return mAssumedVisibilityForChc; 
     146} 
     147//----------------------------------------------------------------------- 
     148unsigned int VisibilityManager::GetRandomUpdateCandidatesForRuc() 
     149{ 
     150        return mRandomCandidatesForRuc; 
     151} 
     152//----------------------------------------------------------------------- 
     153void VisibilityManager::SetTestGeometryForVisibleLeaves(bool testGeometryForVisibleLeaves) 
     154{ 
     155        mTestGeometryForVisibleLeaves = testGeometryForVisibleLeaves; 
     156 
     157        if (mCullingManagerType == VisibilityEnvironment::COHERENT_HIERARCHICAL_CULLING) 
     158        { 
     159                static_cast<CoherentHierarchicalCullingManager *>(mCullingManager)-> 
     160                                SetTestGeometryForVisibleLeaves(mTestGeometryForVisibleLeaves); 
     161        } 
     162        else if (mCullingManagerType == VisibilityEnvironment::RANDOM_UPDATE_CULLING) 
     163        { 
     164                static_cast<RandomUpdateCullingManager *>(mCullingManager)-> 
     165                                SetTestGeometryForVisibleLeaves(mTestGeometryForVisibleLeaves); 
     166        } 
     167} 
     168//----------------------------------------------------------------------- 
     169bool VisibilityManager::GetTestGeometryForVisibleLeaves() 
     170{ 
     171        return mTestGeometryForVisibleLeaves; 
     172} 
    133173 
    134174} // namespace GtpVisibility 
Note: See TracChangeset for help on using the changeset viewer.