- Timestamp:
- 02/27/07 10:25:01 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/OgrePlatformQueryManager.cpp
r2066 r2171 27 27 } 28 28 //----------------------------------------------------------------------- 29 void PlatformQueryManager::ComputeFromPointVisibility(const Vector3 &point, 30 GtpVisibility::NodeInfoContainer *visibleNodes, 31 GtpVisibility::MeshInfoContainer *visibleGeometry, 32 GtpVisibility::PatchInfoContainer *visiblePatches, 33 bool relativeVisibility) 34 { 35 SceneManager *sm = //static_cast<PlatformHierarchyInterface *> 29 void PlatformQueryManager::ComputeFromPointVisibility( 30 const Vector3 &point, 31 GtpVisibility::NodeInfoContainer *visibleNodes, 32 GtpVisibility::MeshInfoContainer *visibleGeometry, 33 GtpVisibility::PatchInfoContainer *visiblePatches, 34 bool relativeVisibility) 35 { 36 SceneManager *sm = 36 37 static_cast<PlatformHierarchyInterface *> 37 (mHierarchyInterface)->GetSceneManager();38 (mHierarchyInterface)->GetSceneManager(); 38 39 39 40 // create a camera for the point query … … 43 44 Camera *savedCam = mViewport->getCamera(); 44 45 45 // --- initialise new camera 46 47 ////////////// 48 //-- initialise new camera 49 46 50 mViewport->setCamera(cam); 47 51 cam->setPosition(point); … … 56 60 int sign = -1; 57 61 58 // ---- capture visibility from all 6 directions 62 /////////////// 63 //-- capture visibility from all 6 directions 64 59 65 for (int dir=0; dir < 6; dir++) 60 66 { … … 62 68 63 69 // Print camera details 64 std::stringstream d; 65 d << "Point query camera: " + StringConverter::toString(cam->getDerivedPosition()) + 66 " " + "O: " + StringConverter::toString(cam->getDerivedOrientation()); 67 LogManager::getSingleton().logMessage(d.str()); 70 if (0) 71 { 72 std::stringstream d; 73 d << "Point query camera: " + StringConverter::toString(cam->getDerivedPosition()) + 74 " " + "O: " + StringConverter::toString(cam->getDerivedOrientation()); 75 LogManager::getSingleton().logMessage(d.str()); 76 } 68 77 69 78 // prevent from initialising geometry / node array again … … 73 82 } 74 83 75 ComputeCameraVisibility(*cam, visibleNodes, visibleGeometry, visiblePatches, 84 ComputeCameraVisibility(*cam, 85 visibleNodes, 86 visibleGeometry, 87 visiblePatches, 76 88 relativeVisibility); 77 89 //mViewport->getTarget()->update(); for(int j=0; j<10000000; j++) printf("wait"); … … 79 91 // permute directions 80 92 Vector3 direction(0,0,0); 81 direction[dir /2] = sign;93 direction[dir / 2] = sign; 82 94 83 95 cam->setDirection(direction); … … 88 100 } 89 101 //----------------------------------------------------------------------- 90 void PlatformQueryManager::ComputeCameraVisibility(const Camera &camera, 91 GtpVisibility::NodeInfoContainer *visibleNodes, 92 GtpVisibility::MeshInfoContainer *visibleGeometry, 93 GtpVisibility::PatchInfoContainer *visiblePatches, 94 bool relativeVisibility) 102 void PlatformQueryManager::ComputeCameraVisibility( 103 const Camera &camera, 104 GtpVisibility::NodeInfoContainer *visibleNodes, 105 GtpVisibility::MeshInfoContainer *visibleGeometry, 106 GtpVisibility::PatchInfoContainer *visiblePatches, 107 bool relativeVisibility) 95 108 { 96 109 // we need access to the scene manager and the rendersystem 97 110 PlatformHierarchyInterface *pfHierarchyInterface = 98 //static_cast<PlatformHierarchyInterface *>(mHierarchyInterface);99 111 static_cast<PlatformHierarchyInterface *>(mHierarchyInterface); 100 112 … … 113 125 mViewport->setBackgroundColour(ColourValue(0, 0, 0, 0)); 114 126 //pfHierarchyInterface->GetRenderSystem()->clearFrameBuffer(FBT_COLOUR | FBT_DEPTH); 127 115 128 #ifdef ITEM_BUFFER 116 129 // initialise item buffer (if not already initialised) 117 130 InitItemBuffer(visibleGeometry, visiblePatches); 118 131 132 ////////// 119 133 //-- render scene with item buffer (i.e., objects with their id as color codes) 120 134 … … 127 141 128 142 #ifdef ITEM_BUFFER 143 ///////// 129 144 //-- collect results 130 145 CollectItemBufferResults(visibleGeometry, visiblePatches); 131 146 132 // -- reset options133 147 ///////// 148 //-- reset state 134 149 useItemBuffer = false; // don't need item buffer anymore 135 150 sm->setOption("UseItemBuffer", &useItemBuffer);
Note: See TracChangeset
for help on using the changeset viewer.