Changeset 1667 for GTP/trunk/Lib/Vis/Preprocessing/src/BvHierarchy.h
- Timestamp:
- 10/23/06 20:24:14 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/Preprocessing/src/BvHierarchy.h
r1666 r1667 13 13 #include "AxisAlignedBox3.h" 14 14 #include "IntersectableWrapper.h" 15 15 #include "HierarchyManager.h" 16 16 17 17 … … 408 408 int Type() const { return OBJECT_SPACE; } 409 409 410 void Eval Priority(bool computeSplitplane = true)410 void EvalCandidate(bool computeSplitplane = true) 411 411 { 412 if (computeSplitplane) 413 { 414 sBvHierarchy->EvalSubdivisionCandidate(*this); 415 } 416 else 417 { 418 mPvsEntriesIncr = sBvHierarchy->EvalPvsEntriesIncr(*this); 419 mPriority = sBvHierarchy->EvalPriority(*this); 420 } 412 sBvHierarchy->EvalSubdivisionCandidate(*this, computeSplitplane); 421 413 } 422 414 423 415 bool Apply(SplitQueue &splitQueue, bool terminationCriteriaMet) 424 416 { 425 BvhNode *n = 426 sBvHierarchy->Subdivide(splitQueue, this, terminationCriteriaMet); 417 BvhNode *n = sBvHierarchy->Subdivide(splitQueue, this, terminationCriteriaMet); 418 427 419 // local or global termination criteria failed 428 420 return !n->IsLeaf(); … … 440 432 } 441 433 442 BvhSubdivisionCandidate( 443 const ObjectContainer &frontObjects, 444 const ObjectContainer &backObjects, 445 const BvhTraversalData &tData): 434 BvhSubdivisionCandidate(const ObjectContainer &frontObjects, 435 const ObjectContainer &backObjects, 436 const BvhTraversalData &tData): 446 437 mFrontObjects(frontObjects), mBackObjects(backObjects), mParentData(tData) 447 438 {} 439 440 float GetPriority() const 441 { 442 HierarchyManager *hm = sBvHierarchy->mHierarchyManager; 443 if (hm->ConsiderMemory()) 444 { 445 const float rc = hm->GetHierarchyStats().mTotalCost - mRenderCostDecrease; 446 const float mc = hm->GetHierarchyStats().mMemory + 447 (float)mPvsEntriesIncr * ObjectPvs::GetEntrySizeByte(); 448 //cout << "x"; 449 return - (rc * mc) / float(1024 * 1024); 450 } 451 else 452 { 453 return mPriority; 454 } 455 } 456 448 457 449 458 /// pointer to parent tree. … … 494 503 /** Evaluates candidate for splitting. 495 504 */ 496 void EvalSubdivisionCandidate(BvhSubdivisionCandidate &splitData );505 void EvalSubdivisionCandidate(BvhSubdivisionCandidate &splitData, bool computeSplitPlane = true); 497 506 498 507 /** Returns list of leaves with pvs smaller than … … 726 735 @returns priority 727 736 */ 728 float EvalPriority(const BvhSubdivisionCandidate &splitCandidate) const;737 //float EvalPriority(const BvhSubdivisionCandidate &splitCandidate) const; 729 738 730 739 ////////////////////////////////////////////////
Note: See TracChangeset
for help on using the changeset viewer.