diff --git a/source/PolyVoxSceneManager.cpp b/source/PolyVoxSceneManager.cpp index f972389e..5259bf1f 100644 --- a/source/PolyVoxSceneManager.cpp +++ b/source/PolyVoxSceneManager.cpp @@ -110,140 +110,6 @@ namespace Ogre return true; } - -#ifdef BLAH - void PolyVoxSceneManager::_findVisibleObjects(Camera* cam, VisibleObjectsBoundsInfo * visibleBounds, bool onlyShadowCasters) - { - if(!volumeData.isNull()) - { - std::list listChangedRegionGeometry = getChangedRegionGeometry(); - - for(std::list::iterator iterRegionGeometry = listChangedRegionGeometry.begin(); iterRegionGeometry != listChangedRegionGeometry.end(); iterRegionGeometry++) - { - //Generate some strings used to name the scene nodes and renderables. - std::stringstream ssPosition; - ssPosition << "(" << iterRegionGeometry->m_v3dRegionPosition.x << "," << iterRegionGeometry->m_v3dRegionPosition.y << "," << iterRegionGeometry->m_v3dRegionPosition.z << ")"; - const std::string strPosition = ssPosition.str(); - - std::stringstream ssSceneNodeName; - ssSceneNodeName << "Scene Node: " << strPosition; - const std::string strSceneNodeName = ssSceneNodeName.str(); - - std::stringstream ssSingleMaterialPatchName; - ssSingleMaterialPatchName << "Single Material Patch: " << strPosition; - const std::string strSingleMaterialPatchName = ssSingleMaterialPatchName.str(); - - std::stringstream ssMultiMaterialPatchName; - ssMultiMaterialPatchName << "Multi Material Patch: " << strPosition; - const std::string strMultiMaterialPatchName = ssMultiMaterialPatchName.str(); - - /*LogManager::getSingleton().logMessage(strPosition); - LogManager::getSingleton().logMessage(strSceneNodeName); - LogManager::getSingleton().logMessage(strSingleMaterialPatchName); - LogManager::getSingleton().logMessage(strMultiMaterialPatchName); - LogManager::getSingleton().logMessage("\n");*/ - - if(iterRegionGeometry->m_bIsEmpty) - { - makeSureSceneNodeExists(false, strSceneNodeName); - continue; - } - SceneNode* sceneNode = makeSureSceneNodeExists(true, strSceneNodeName); - sceneNode->setPosition(Vector3(iterRegionGeometry->m_v3dRegionPosition.x*OGRE_REGION_SIDE_LENGTH,iterRegionGeometry->m_v3dRegionPosition.y*OGRE_REGION_SIDE_LENGTH,iterRegionGeometry->m_v3dRegionPosition.z*OGRE_REGION_SIDE_LENGTH)); - - - bool bSingleMaterialPatchExists = hasMovableObject(strSingleMaterialPatchName,SurfacePatchRenderableFactory::FACTORY_TYPE_NAME); - if(iterRegionGeometry->m_bContainsSingleMaterialPatch) - { - SurfacePatchRenderable* singleMaterialSurfacePatchRenderable; - if(bSingleMaterialPatchExists) - { - singleMaterialSurfacePatchRenderable = dynamic_cast(getMovableObject(strSingleMaterialPatchName, SurfacePatchRenderableFactory::FACTORY_TYPE_NAME)); - singleMaterialSurfacePatchRenderable->updateWithNewSurfacePatch(iterRegionGeometry->m_patchSingleMaterial); - } - else - { - singleMaterialSurfacePatchRenderable = dynamic_cast(createMovableObject(strSingleMaterialPatchName, SurfacePatchRenderableFactory::FACTORY_TYPE_NAME)); - singleMaterialSurfacePatchRenderable->setInitialSurfacePatch(iterRegionGeometry->m_patchSingleMaterial,materialMap->getMaterialAtIndex(1)); - singleMaterialSurfacePatchRenderable->setRenderQueueGroup(RENDER_QUEUE_4); - sceneNode->attachObject(singleMaterialSurfacePatchRenderable); - } - } - else - { - if(bSingleMaterialPatchExists) - { - destroyMovableObject(strSingleMaterialPatchName, SurfacePatchRenderableFactory::FACTORY_TYPE_NAME); - } - } - - bool bMultiMaterialPatchExists = hasMovableObject(strMultiMaterialPatchName,SurfacePatchRenderableFactory::FACTORY_TYPE_NAME); - if(iterRegionGeometry->m_bContainsMultiMaterialPatch) - { - SurfacePatchRenderable* multiMaterialSurfacePatchRenderable; - if(bMultiMaterialPatchExists) - { - multiMaterialSurfacePatchRenderable = dynamic_cast(getMovableObject(strMultiMaterialPatchName, SurfacePatchRenderableFactory::FACTORY_TYPE_NAME)); - multiMaterialSurfacePatchRenderable->updateWithNewSurfacePatch(iterRegionGeometry->m_patchMultiMaterial); - } - else - { - multiMaterialSurfacePatchRenderable = dynamic_cast(createMovableObject(strMultiMaterialPatchName, SurfacePatchRenderableFactory::FACTORY_TYPE_NAME)); - multiMaterialSurfacePatchRenderable->setInitialSurfacePatch(iterRegionGeometry->m_patchMultiMaterial,materialMap->getMaterialAtIndex(2)); - multiMaterialSurfacePatchRenderable->setRenderQueueGroup(RENDER_QUEUE_4); - sceneNode->attachObject(multiMaterialSurfacePatchRenderable); - } - } - else - { - if(bMultiMaterialPatchExists) - { - destroyMovableObject(strMultiMaterialPatchName, SurfacePatchRenderableFactory::FACTORY_TYPE_NAME); - } - } - } - - setAllUpToDateFlagsTo(true); - } - - - //showBoundingBoxes(true); - - //Now call the base class to do the actual visibility determination... - SceneManager::_findVisibleObjects(cam, visibleBounds, onlyShadowCasters); - - //LogManager::getSingleton().logMessage("\nNo of triangles = " + StringConverter::toString(IndexedSurfacePatch::noOfTrianglesSubmitted)); - //LogManager::getSingleton().logMessage("No of vertices submitted = " + StringConverter::toString(IndexedSurfacePatch::noOfVerticesSubmitted)); - //LogManager::getSingleton().logMessage("No of vertices accepted = " + StringConverter::toString(IndexedSurfacePatch::noOfVerticesAccepted)); - } - - SceneNode* PolyVoxSceneManager::makeSureSceneNodeExists(bool bShouldExist, const String strSceneNodeName) - { - bool bSceneNodeExists = hasSceneNode(strSceneNodeName); - if(bShouldExist == false) - { - if(hasSceneNode(strSceneNodeName)) - { - getRootSceneNode()->removeAndDestroyChild(strSceneNodeName); - } - return 0; - } - else - { - //If a SceneNode doesn't exist in this position then create one. - if(hasSceneNode(strSceneNodeName)) - { - return dynamic_cast(getRootSceneNode()->getChild(strSceneNodeName)); - } - else - { - return getRootSceneNode()->createChildSceneNode(strSceneNodeName); - } - } - } - -#endif - std::list PolyVoxSceneManager::getChangedRegionGeometry(void) { std::list listChangedRegionGeometry;