Changeset 2895 for GTP/trunk/App/Demos/Vis/FriendlyCulling/src/Bvh.h
- Timestamp:
- 09/02/08 15:29:20 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/Bvh.h
r2894 r2895 12 12 namespace CHCDemoEngine 13 13 { 14 15 // the number of visibility states 16 #define NUM_STATES 2 14 17 15 18 //////// … … 149 152 inline int CountPrimitives() const; 150 153 154 static void SetCurrentState(int _state) { sCurrentState = _state; } 155 151 156 152 157 protected: 153 158 154 /////////////155 156 159 /// the depth of this node 157 160 unsigned char mDepth; … … 160 163 /// the parent node 161 164 BvhNode *mParent; 162 /// stores the visibility related info 163 VisibilityInfo mVisibility; 165 166 167 ////////////// 168 //-- these members define the current state 169 170 /// stores the visibility related info 171 VisibilityInfo mVisibility[NUM_STATES]; 164 172 165 173 ///////// 166 174 //-- used for view frustum culling 167 175 168 int mPlaneMask; 169 int mPreferredPlane; 176 int mPlaneMask[NUM_STATES]; 177 int mPreferredPlane[NUM_STATES]; 178 179 // the current state 180 static int sCurrentState; 181 182 183 //////////////////// 170 184 171 185 … … 221 235 int BvhNode::GetLastVisitedFrame() const 222 236 { 223 return mVisibility .mLastVisitedFrame;237 return mVisibility[sCurrentState].mLastVisitedFrame; 224 238 } 225 239 … … 227 241 void BvhNode::SetLastVisitedFrame(const int lastVisited) 228 242 { 229 mVisibility .mLastVisitedFrame = lastVisited;243 mVisibility[sCurrentState].mLastVisitedFrame = lastVisited; 230 244 } 231 245 … … 233 247 bool BvhNode::IsVisible() const 234 248 { 235 return mVisibility .mIsVisible;249 return mVisibility[sCurrentState].mIsVisible; 236 250 } 237 251 … … 239 253 void BvhNode::SetVisible(bool visible) 240 254 { 241 mVisibility .mIsVisible = visible;255 mVisibility[sCurrentState].mIsVisible = visible; 242 256 } 243 257 … … 245 259 void BvhNode::IncTimesTestedInvisible() 246 260 { 247 ++ mVisibility .mTimesInvisible;261 ++ mVisibility[sCurrentState].mTimesInvisible; 248 262 } 249 263 … … 251 265 int BvhNode::GetTimesTestedInvisible() const 252 266 { 253 return mVisibility .mTimesInvisible;267 return mVisibility[sCurrentState].mTimesInvisible; 254 268 } 255 269 … … 257 271 void BvhNode::SetTimesTestedInvisible(int t) 258 272 { 259 mVisibility .mTimesInvisible = t;273 mVisibility[sCurrentState].mTimesInvisible = t; 260 274 } 261 275 … … 263 277 bool BvhNode::IsViewFrustumCulled() const 264 278 { 265 return mVisibility .mIsFrustumCulled;279 return mVisibility[sCurrentState].mIsFrustumCulled; 266 280 } 267 281 … … 269 283 void BvhNode::SetViewFrustumCulled(bool frustumCulled) 270 284 { 271 mVisibility .mIsFrustumCulled = frustumCulled;285 mVisibility[sCurrentState].mIsFrustumCulled = frustumCulled; 272 286 } 273 287 … … 275 289 bool BvhNode::IsNew() const 276 290 { 277 return mVisibility .mIsNew;291 return mVisibility[sCurrentState].mIsNew; 278 292 } 279 293 … … 281 295 void BvhNode::SetIsNew(bool isNew) 282 296 { 283 mVisibility.mIsNew = isNew; 284 } 285 297 mVisibility[sCurrentState].mIsNew = isNew; 298 } 299 300 301 void BvhNode::SetAssumedVisibleFrameId(int t) 302 { 303 mVisibility[sCurrentState].mAssumedVisibleFrameId = t; 304 } 305 306 307 int BvhNode::GetAssumedVisibleFrameId() const 308 { 309 return mVisibility[sCurrentState].mAssumedVisibleFrameId; 310 } 311 312 313 int BvhNode::GetLastQueriedFrame() const 314 { 315 return mVisibility[sCurrentState].mLastQueriedFrame; 316 } 317 318 319 void BvhNode::SetLastQueriedFrame(int lastTested) 320 { 321 mVisibility[sCurrentState].mLastQueriedFrame = lastTested; 322 } 286 323 287 324 int BvhNode::GetLastRenderedFrame() const … … 309 346 310 347 311 void BvhNode::SetAssumedVisibleFrameId(int t)312 {313 mVisibility.mAssumedVisibleFrameId = t;314 }315 316 317 int BvhNode::GetAssumedVisibleFrameId() const318 {319 return mVisibility.mAssumedVisibleFrameId;320 }321 322 323 int BvhNode::GetLastQueriedFrame() const324 {325 return mVisibility.mLastQueriedFrame;326 }327 328 329 void BvhNode::SetLastQueriedFrame(int lastTested)330 {331 mVisibility.mLastQueriedFrame = lastTested;332 }333 348 334 349
Note: See TracChangeset
for help on using the changeset viewer.