- Timestamp:
- 08/03/06 17:25:01 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/OgreKdTree.cpp
r1177 r1182 332 332 { 333 333 #ifdef KDTREE_DEBUG 334 try 334 MaterialPtr mp = MaterialManager::getSingleton().getByName("aabbHiLite"); 335 if (mp.isNull()) 335 336 { 336 337 ColourValue cv(0.0, 1.0, 0.0); … … 339 340 mp->setDiffuse(cv); 340 341 } 341 catch (Ogre::Exception&) 342 { 343 // SO FUCKING DON'T CARE !!! 344 } 342 //try 343 //{ 344 // ColourValue cv(0.0, 1.0, 0.0); 345 // MaterialPtr mp = MaterialManager::getSingleton().create("aabbHiLite","General"); 346 // mp->setSelfIllumination(cv); 347 // mp->setDiffuse(cv); 348 //} 349 //catch (Ogre::Exception&) 350 //{ 351 // // SO FUCKING DON'T CARE !!! 352 //} 345 353 #endif 346 354 try … … 645 653 unsigned long t1, t2, t3, t4; 646 654 //AxisAlignedBox aabb; 655 656 mStats.clear(); 647 657 648 658 // data we want to collect … … 657 667 t3 = timer->getMicroseconds(); // DEBUG 658 668 669 mStats.mNumSceneNodes = nObjects; 659 670 // <DEBUG> 660 671 //lm->logMessage("# of perfect splits " + StringConverter::toString(events.size())); … … 685 696 t4 = timer->getMicroseconds(); // DEBUG 686 697 698 String method = "Invalid"; 699 if (mBuildMethod == KDBM_RECURSIVE) 700 method = "Recursive"; 701 else if (mBuildMethod == KDBM_PRIORITYQUEUE) 702 method = "Priority Queue"; 703 687 704 mBuildLog->logMessage("######## SAH Statistics ########"); 705 mBuildLog->logMessage("Build Method: " + method); 688 706 mBuildLog->logMessage("Time for events build: " + StringConverter::toString(t2 - t1) + "µs"); 689 707 mBuildLog->logMessage("Time for events sort: " + StringConverter::toString(t3 - t2) + "µs"); 690 708 mBuildLog->logMessage("Time for tree build: " + StringConverter::toString(t4 - t3) + "µs"); 691 709 mBuildLog->logMessage("Total time: " + StringConverter::toString(t4 - t1) + "µs"); 692 mBuildLog->logMessage("######## SAH Statistics ########"); 693 calcCost(); 710 mBuildLog->logMessage("Number of Objects: " + StringConverter::toString(mStats.mNumSceneNodes)); 711 mBuildLog->logMessage("Number of Leaves: " + StringConverter::toString(mStats.mNumLeaves)); 712 mBuildLog->logMessage("Number of Nodes: " + StringConverter::toString(mStats.mNumNodes)); 713 mBuildLog->logMessage("Total cost: " + StringConverter::toString(calcCost())); 714 mBuildLog->logMessage("################################"); 694 715 } 695 716 … … 847 868 it++; 848 869 } 870 // update stats 871 ++ mStats.mNumNodes; 872 ++ mStats.mNumLeaves; 849 873 return leaf; 850 874 } … … 930 954 branch->mRight = recBuild(eventsRight, nBothS + nRightS, best.bright, branch); 931 955 } 956 957 // update stats 958 ++ mStats.mNumNodes; 932 959 933 960 //assert(branch->mRight || branch->mLeft); … … 1008 1035 if (!topNode) 1009 1036 topNode = leaf; 1037 // update stats 1038 ++ mStats.mNumNodes; 1039 ++ mStats.mNumLeaves; 1010 1040 } 1011 1041 … … 1172 1202 #endif 1173 1203 } 1204 // cleanup 1205 else 1206 { 1207 delete eventsLeft; 1208 } 1174 1209 if (eventsRight->size() > 0) 1175 1210 { … … 1193 1228 #endif 1194 1229 } 1230 // cleanup 1231 else 1232 { 1233 delete eventsRight; 1234 } 1195 1235 1196 1236 newNode = branch; 1197 1237 if (!topNode) 1198 1238 topNode = branch; 1239 1240 1241 // update stats 1242 ++ mStats.mNumNodes; 1199 1243 } 1200 1244 … … 1385 1429 } 1386 1430 1387 void KdTree::calcCost() 1388 { 1389 Real cost = 0; 1431 Real KdTree::calcCost() 1432 { 1390 1433 if (mKdRoot) 1391 cost = calcCost(mKdRoot, PlaneEvent::surfaceArea(mKdRoot->mAABB)); 1392 1393 //LogManager::getSingleton().logMessage("#@#@#@ One KdTree: " + StringConverter::toString(cost)); 1394 mBuildLog->logMessage("#@#@#@ One KdTree: " + StringConverter::toString(cost)); 1434 return calcCost(mKdRoot, PlaneEvent::surfaceArea(mKdRoot->mAABB)); 1435 else 1436 return 0; 1395 1437 } 1396 1438
Note: See TracChangeset
for help on using the changeset viewer.