- Timestamp:
- 06/14/07 17:24:08 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/OnlineCullingCHC/src/VisibilityManager.cpp
r2289 r2455 45 45 // delete old culling manager 46 46 if (mCullingManager) 47 {48 47 delete mCullingManager; 49 }50 48 51 49 mCullingManagerType = ocmType; … … 54 52 { 55 53 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 } 57 59 break; 58 59 60 case VisibilityEnvironment::FRUSTUM_CULLING: 60 61 mCullingManager = new FrustumCullingManager(); 61 62 break; 62 63 63 case VisibilityEnvironment::RANDOM_UPDATE_CULLING: 64 mCullingManager = new RandomUpdateCullingManager(); 64 { 65 RandomUpdateCullingManager *rum = new RandomUpdateCullingManager(mRandomCandidatesForRuc); 66 rum->SetTestGeometryForVisibleLeaves(mTestGeometryForVisibleLeaves); 67 mCullingManager = rum; 68 } 65 69 break; 66 67 70 case VisibilityEnvironment::STOP_AND_WAIT_CULLING: 68 71 mCullingManager = new StopAndWaitCullingManager(); 69 //mCullingManager = new RandomUpdateCullingManager();70 72 break; 71 72 73 default: 73 74 mCullingManager = new CoherentHierarchicalCullingManager(mAssumedVisibilityForChc); 74 75 break; 75 76 76 } 77 77 78 78 ///////// 79 79 //-- set threshold 80 80 81 mCullingManager->SetVisibilityThreshold(mVisibilityThreshold); 81 82 } … … 113 114 } 114 115 //----------------------------------------------------------------------- 115 void VisibilityManager::SetAssumedVisibilityForChc(unsigned int assumedVisibility) 116 116 void VisibilityManager::SetAssumedVisibilityForChc(unsigned int assumedVisibility) 117 117 { 118 118 mAssumedVisibilityForChc = assumedVisibility; 119 119 120 // in case we currently use chc 121 if (VisibilityManager::GetCullingManagerType() == 122 VisibilityEnvironment::COHERENT_HIERARCHICAL_CULLING) 120 if (mCullingManagerType == VisibilityEnvironment::COHERENT_HIERARCHICAL_CULLING) 123 121 { 124 122 static_cast<CoherentHierarchicalCullingManager *>(mCullingManager)-> 125 SetAssumedVisibility(assumedVisibility); 123 SetAssumedVisibility(mAssumedVisibilityForChc); 124 } 125 } 126 //----------------------------------------------------------------------- 127 void 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); 126 135 } 127 136 } … … 131 140 return mVisibilityEnvironment; 132 141 } 142 //----------------------------------------------------------------------- 143 unsigned int VisibilityManager::GetAssumedVisibilityForChc() 144 { 145 return mAssumedVisibilityForChc; 146 } 147 //----------------------------------------------------------------------- 148 unsigned int VisibilityManager::GetRandomUpdateCandidatesForRuc() 149 { 150 return mRandomCandidatesForRuc; 151 } 152 //----------------------------------------------------------------------- 153 void 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 //----------------------------------------------------------------------- 169 bool VisibilityManager::GetTestGeometryForVisibleLeaves() 170 { 171 return mTestGeometryForVisibleLeaves; 172 } 133 173 134 174 } // namespace GtpVisibility
Note: See TracChangeset
for help on using the changeset viewer.