- Timestamp:
- 03/22/07 18:24:13 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/OgreOcclusionQueriesQueryManager.cpp
r2255 r2280 1 #include "OgreOcclusionQueriesQueryManager.h"2 1 #include <OgreLogManager.h> 3 2 #include <OgreStringConverter.h> 4 3 #include <vector> 5 4 #include <OgreSubEntity.h> 6 #include "OgrePlatformHierarchyInterface.h" 5 6 #include "OgreOcclusionQueriesQueryManager.h" 7 //#include "OgrePlatformHierarchyInterface.h" 7 8 #include "OgreOcclusionCullingSceneManager.h" 8 9 #include "VisibilityEnvironment.h" … … 13 14 14 15 //----------------------------------------------------------------------- 15 OcclusionQueriesQueryManager::OcclusionQueriesQueryManager(16 GtpVisibility::HierarchyInterface *hierarchyInterface,16 /*OcclusionQueriesQueryManager::OcclusionQueriesQueryManager( 17 PlatformHierarchyInterface *hierarchyInterface, 17 18 Viewport *vp, 18 19 int queryModes, 19 int itemBufferMode) :20 PlatformQueryManager(hierarchyInterface, vp, queryModes),20 int itemBufferMode) 21 :PlatformQueryManager(hierarchyInterface, vp, queryModes), 21 22 mItemBufferMode(itemBufferMode) 22 23 { 23 } 24 }*/ 24 25 //----------------------------------------------------------------------- 25 26 void OcclusionQueriesQueryManager::ComputeCameraVisibility( 26 27 const Camera &camera, 27 GtpVisibility::NodeInfoContainer *visibleNodes,28 GtpVisibility::MeshInfoContainer *visibleGeometry,29 GtpVisibility::PatchInfoContainer *visiblePatches,28 NodeInfoContainer *visibleNodes, 29 MeshInfoContainer *visibleGeometry, 30 PatchInfoContainer *visiblePatches, 30 31 const bool relativeVisibility, 31 32 const bool approximateVisibility) … … 119 120 120 121 // vector for storing entities of meshes 121 G tpVisibility::GeometryVector geometryList;122 GeometryVector geometryList; 122 123 123 124 // store geometry of the hierarchy nodes in a geometry list … … 131 132 132 133 // geometry list iterator 133 G tpVisibility::GeometryVector::iterator geometryIt, geometryIt_end = geometryList.end();134 GeometryVector::iterator geometryIt, geometryIt_end = geometryList.end(); 134 135 135 136 // vector for storing subentities of meshes 136 GtpVisibility::PatchVector patchList;137 PatchVector patchList; 137 138 138 139 // store patchges of the geometries in a patch list … … 145 146 } 146 147 147 GtpVisibility::PatchVector::iterator patchIt, patchIt_end = patchList.end();148 PatchVector::iterator patchIt, patchIt_end = patchList.end(); 148 149 149 150 // to obtain the correct number of projected pixels, depth write must be disabled … … 183 184 const int projPixels = 1; 184 185 185 visibleNodes->push_back( GtpVisibility::NodeInfo(*nodeIt, visPixels, projPixels));186 visibleNodes->push_back(NodeInfo(*nodeIt, visPixels, projPixels)); 186 187 queryList[i].push_back(NULL); 187 188 } … … 207 208 const int projPixels = 1; 208 209 209 visibleGeometry->push_back( GtpVisibility::MeshInfo(*geometryIt, visPixels, projPixels));210 visibleGeometry->push_back(MeshInfo(*geometryIt, visPixels, projPixels)); 210 211 } 211 212 else … … 229 230 const int projPixels = 1; 230 231 231 visiblePatches->push_back( GtpVisibility::PatchInfo(*patchIt, visPixels, projPixels));232 visiblePatches->push_back(PatchInfo(*patchIt, visPixels, projPixels)); 232 233 } 233 234 else … … 304 305 void OcclusionQueriesQueryManager::ComputeFromPointVisibility( 305 306 const Vector3 &point, 306 GtpVisibility::NodeInfoContainer *visibleNodes,307 GtpVisibility::MeshInfoContainer *visibleGeometry,308 GtpVisibility::PatchInfoContainer *visiblePatches,307 NodeInfoContainer *visibleNodes, 308 MeshInfoContainer *visibleGeometry, 309 PatchInfoContainer *visiblePatches, 309 310 const bool relativeVisibility, 310 311 const bool approximateVisibility) … … 336 337 GtpVisibility::QueryList::iterator &projQueryIt, 337 338 GtpVisibility::NodeVector *nodeList, 338 GtpVisibility::NodeInfoContainer *visibleNodes,339 NodeInfoContainer *visibleNodes, 339 340 bool relativeVisibility) 340 341 { … … 368 369 if (visiblePixels > 0) 369 370 { 370 visibleNodes->push_back( 371 GtpVisibility::NodeInfo(*nodeIt, visiblePixels, projectedPixels)); 371 visibleNodes->push_back(NodeInfo(*nodeIt, visiblePixels, projectedPixels)); 372 372 } 373 373 } … … 376 376 void OcclusionQueriesQueryManager::CollectRelativeGeometryVisibilityForItemBuffer( 377 377 GtpVisibility::QueryList::iterator &projQueryIt, 378 G tpVisibility::GeometryVector *geometryList,379 GtpVisibility::MeshInfoContainer *visibleGeometry)380 { 381 G tpVisibility::GeometryVector::iterator geometryIt;378 GeometryVector *geometryList, 379 MeshInfoContainer *visibleGeometry) 380 { 381 GeometryVector::iterator geometryIt; 382 382 383 383 //-- queries for geometry … … 400 400 void OcclusionQueriesQueryManager::CollectRelativePatchVisibilityForItemBuffer( 401 401 GtpVisibility::QueryList::iterator &projQueryIt, 402 GtpVisibility::PatchVector *patchList,403 GtpVisibility::PatchInfoContainer *visiblePatches)404 { 405 GtpVisibility::PatchVector::iterator patchIt;402 PatchVector *patchList, 403 PatchInfoContainer *visiblePatches) 404 { 405 PatchVector::iterator patchIt; 406 406 407 407 //-- queries for geometry … … 425 425 GtpVisibility::QueryList::iterator &visQueryIt, 426 426 GtpVisibility::QueryList::iterator &projQueryIt, 427 G tpVisibility::GeometryVector *geometryList,428 GtpVisibility::MeshInfoContainer *visibleGeometry,427 GeometryVector *geometryList, 428 MeshInfoContainer *visibleGeometry, 429 429 bool relativeVisibility) 430 430 { 431 G tpVisibility::GeometryVector::iterator geometryIt;431 GeometryVector::iterator geometryIt; 432 432 433 433 //-- queries for geometry … … 451 451 if (visiblePixels > 0) 452 452 { 453 visibleGeometry->push_back(GtpVisibility::MeshInfo(*geometryIt, visiblePixels, 454 projectedPixels)); 453 visibleGeometry->push_back(MeshInfo(*geometryIt, visiblePixels, projectedPixels)); 455 454 } 456 455 } … … 460 459 GtpVisibility::QueryList::iterator &visQueryIt, 461 460 GtpVisibility::QueryList::iterator &projQueryIt, 462 GtpVisibility::PatchVector *patchList,463 GtpVisibility::PatchInfoContainer *visiblePatches,461 PatchVector *patchList, 462 PatchInfoContainer *visiblePatches, 464 463 bool relativeVisibility) 465 464 { 466 GtpVisibility::PatchVector::iterator patchIt;465 PatchVector::iterator patchIt; 467 466 468 467 //-- queries for patch … … 486 485 if (visiblePixels > 0) 487 486 { 488 visiblePatches->push_back( GtpVisibility::PatchInfo(*patchIt, visiblePixels,489 projectedPixels));487 visiblePatches->push_back( 488 PatchInfo(*patchIt, visiblePixels, projectedPixels)); 490 489 } 491 490 } … … 493 492 //----------------------------------------------------------------------- 494 493 void OcclusionQueriesQueryManager::RemoveDuplicateNodes( 495 GtpVisibility::NodeInfoContainer *visibleNodes)494 NodeInfoContainer *visibleNodes) 496 495 { 497 496 sort(visibleNodes->begin(), visibleNodes->end()); 498 497 499 GtpVisibility::NodeInfoContainer::iterator visibleNodesIt,498 NodeInfoContainer::iterator visibleNodesIt, 500 499 visibleNodesIt_end = visibleNodes->end(); 501 500 502 GtpVisibility::NodeInfo *nodeInfo = NULL;501 NodeInfo *nodeInfo = NULL; 503 502 504 503 for (visibleNodesIt = visibleNodes->begin(); visibleNodesIt != visibleNodesIt_end; … … 521 520 //----------------------------------------------------------------------- 522 521 void OcclusionQueriesQueryManager::RemoveDuplicateGeometry( 523 GtpVisibility::MeshInfoContainer *visibleGeometry)522 MeshInfoContainer *visibleGeometry) 524 523 { 525 524 sort(visibleGeometry->begin(), visibleGeometry->end()); 526 525 527 GtpVisibility::MeshInfoContainer::iterator visibleGeomIt,526 MeshInfoContainer::iterator visibleGeomIt, 528 527 visibleGeomIt_end = visibleGeometry->end(); 529 528 530 GtpVisibility::MeshInfo *geomInfo = NULL;529 MeshInfo *geomInfo = NULL; 531 530 532 531 for (visibleGeomIt = visibleGeometry->begin(); visibleGeomIt != visibleGeomIt_end; … … 549 548 //----------------------------------------------------------------------- 550 549 void OcclusionQueriesQueryManager::RemoveDuplicatePatches( 551 GtpVisibility::PatchInfoContainer *visiblePatches)550 PatchInfoContainer *visiblePatches) 552 551 { 553 552 sort(visiblePatches->begin(), visiblePatches->end()); 554 553 555 GtpVisibility::PatchInfoContainer::iterator visiblePatchIt,554 PatchInfoContainer::iterator visiblePatchIt, 556 555 visiblePatchIt_end = visiblePatches->end(); 557 556 558 GtpVisibility::PatchInfo *patchInfo = NULL;557 PatchInfo *patchInfo = NULL; 559 558 560 559 for (visiblePatchIt = visiblePatches->begin(); visiblePatchIt != visiblePatchIt_end; … … 577 576 //----------------------------------------------------------------------- 578 577 void OcclusionQueriesQueryManager::GetNodePatchList(GtpVisibility::HierarchyNode *node, 579 GtpVisibility::PatchVector *patchList)580 { 581 G tpVisibility::GeometryVector geomList;578 PatchVector *patchList) 579 { 580 GeometryVector geomList; 582 581 mHierarchyInterface->GetNodeGeometryList(node, &geomList, false); 583 582 584 583 // geometry list iterator 585 G tpVisibility::GeometryVector::iterator geomIt, geomIt_end = geomList.end();584 GeometryVector::iterator geomIt, geomIt_end = geomList.end(); 586 585 587 586 for (geomIt = geomList.begin(); geomIt != geomIt_end; ++geomIt)
Note: See TracChangeset
for help on using the changeset viewer.