Changeset 1233 for GTP/trunk/Lib/Vis/Preprocessing/src/VspBspTree.cpp
- Timestamp:
- 08/20/06 22:48:01 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/Preprocessing/src/VspBspTree.cpp
r1201 r1233 196 196 197 197 198 mLocalS plitCandidates = new vector<SortableEntry>;198 mLocalSubdivisionCandidates = new vector<SortableEntry>; 199 199 200 200 Debug << endl; … … 230 230 { 231 231 DEL_PTR(mRoot); 232 DEL_PTR(mLocalS plitCandidates);232 DEL_PTR(mLocalSubdivisionCandidates); 233 233 } 234 234 … … 639 639 640 640 // compute first split candidate 641 VspBspS plitCandidate splitCandidate;641 VspBspSubdivisionCandidate splitCandidate; 642 642 splitCandidate.mParentData = tData; 643 643 644 EvalS plitCandidate(splitCandidate);644 EvalSubdivisionCandidate(splitCandidate); 645 645 646 646 tQueue.push(splitCandidate); … … 742 742 << "#ViewCells\n" << viewCells << endl 743 743 << "#RenderCostDecrease\n" << renderCostDecr << endl 744 << "#S plitCandidateCost\n" << splitCandidateCost << endl744 << "#SubdivisionCandidateCost\n" << splitCandidateCost << endl 745 745 << "#TotalRenderCost\n" << totalRenderCost << endl 746 746 << "#AvgRenderCost\n" << avgRenderCost << endl; … … 895 895 // subdivide node using a split plane queue 896 896 BspNode *VspBspTree::Subdivide(VspBspSplitQueue &tQueue, 897 VspBspS plitCandidate &splitCandidate)897 VspBspSubdivisionCandidate &splitCandidate) 898 898 { 899 899 VspBspTraversalData &tData = splitCandidate.mParentData; … … 953 953 954 954 //-- push the new split candidates on the stack 955 VspBspS plitCandidate frontCandidate;955 VspBspSubdivisionCandidate frontCandidate; 956 956 frontCandidate.mParentData = tFrontData; 957 957 958 VspBspS plitCandidate backCandidate;958 VspBspSubdivisionCandidate backCandidate; 959 959 backCandidate.mParentData = tBackData; 960 960 961 EvalS plitCandidate(frontCandidate);962 EvalS plitCandidate(backCandidate);961 EvalSubdivisionCandidate(frontCandidate); 962 EvalSubdivisionCandidate(backCandidate); 963 963 964 964 tQueue.push(frontCandidate); … … 1042 1042 1043 1043 /* 1044 void VspBspTree::EvalS plitCandidate(VspBspTraversalData &tData,1045 VspBspS plitCandidate &splitData)1044 void VspBspTree::EvalSubdivisionCandidate(VspBspTraversalData &tData, 1045 VspBspSubdivisionCandidate &splitData) 1046 1046 { 1047 1047 VspBspTraversalData frontData; … … 1065 1065 */ 1066 1066 1067 void VspBspTree::EvalS plitCandidate(VspBspSplitCandidate &splitCandidate)1067 void VspBspTree::EvalSubdivisionCandidate(VspBspSubdivisionCandidate &splitCandidate) 1068 1068 { 1069 1069 VspBspTraversalData frontData; … … 1306 1306 1307 1307 1308 void VspBspTree::SortS plitCandidates(const RayInfoContainer &rays,1308 void VspBspTree::SortSubdivisionCandidates(const RayInfoContainer &rays, 1309 1309 const int axis, 1310 1310 float minBand, 1311 1311 float maxBand) 1312 1312 { 1313 mLocalS plitCandidates->clear();1313 mLocalSubdivisionCandidates->clear(); 1314 1314 1315 1315 int requestedSize = 2 * (int)(rays.size()); 1316 1316 // creates a sorted split candidates array 1317 if (mLocalS plitCandidates->capacity() > 500000 &&1318 requestedSize < (int)(mLocalS plitCandidates->capacity() / 10) )1319 { 1320 delete mLocalS plitCandidates;1321 mLocalS plitCandidates = new vector<SortableEntry>;1322 } 1323 1324 mLocalS plitCandidates->reserve(requestedSize);1317 if (mLocalSubdivisionCandidates->capacity() > 500000 && 1318 requestedSize < (int)(mLocalSubdivisionCandidates->capacity() / 10) ) 1319 { 1320 delete mLocalSubdivisionCandidates; 1321 mLocalSubdivisionCandidates = new vector<SortableEntry>; 1322 } 1323 1324 mLocalSubdivisionCandidates->reserve(requestedSize); 1325 1325 1326 1326 if (0) … … 1339 1339 if (0) ClipValue(pos, minBand, maxBand); 1340 1340 1341 mLocalS plitCandidates->push_back(SortableEntry(positive ? SortableEntry::ERayMin : SortableEntry::ERayMax,1341 mLocalSubdivisionCandidates->push_back(SortableEntry(positive ? SortableEntry::ERayMin : SortableEntry::ERayMax, 1342 1342 pos, (*ri).mRay)); 1343 1343 … … 1347 1347 if (0) ClipValue(pos, minBand, maxBand); 1348 1348 1349 mLocalS plitCandidates->push_back(SortableEntry(positive ? SortableEntry::ERayMax : SortableEntry::ERayMin,1349 mLocalSubdivisionCandidates->push_back(SortableEntry(positive ? SortableEntry::ERayMax : SortableEntry::ERayMin, 1350 1350 pos, (*ri).mRay)); 1351 1351 } 1352 1352 1353 stable_sort(mLocalS plitCandidates->begin(), mLocalSplitCandidates->end());1353 stable_sort(mLocalSubdivisionCandidates->begin(), mLocalSubdivisionCandidates->end()); 1354 1354 } 1355 1355 … … 1380 1380 const float maxBand = minBox + mMaxBand * sizeBox; 1381 1381 1382 SortS plitCandidates(usedRays, axis, minBand, maxBand);1382 SortSubdivisionCandidates(usedRays, axis, minBand, maxBand); 1383 1383 1384 1384 // go through the lists, count the number of objects left and right … … 1442 1442 Intersectable::NewMail(); 1443 1443 1444 vector<SortableEntry>::const_iterator ci, ci_end = mLocalS plitCandidates->end();1445 1446 for (ci = mLocalS plitCandidates->begin(); ci != ci_end; ++ ci)1444 vector<SortableEntry>::const_iterator ci, ci_end = mLocalSubdivisionCandidates->end(); 1445 1446 for (ci = mLocalSubdivisionCandidates->begin(); ci != ci_end; ++ ci) 1447 1447 { 1448 1448 VssRay *ray;
Note: See TracChangeset
for help on using the changeset viewer.