This commit is contained in:
		@@ -110,140 +110,6 @@ namespace Ogre
 | 
			
		||||
		return true;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef BLAH
 | 
			
		||||
	void PolyVoxSceneManager::_findVisibleObjects(Camera* cam, VisibleObjectsBoundsInfo *  visibleBounds,  bool onlyShadowCasters)
 | 
			
		||||
	{
 | 
			
		||||
		if(!volumeData.isNull())
 | 
			
		||||
		{
 | 
			
		||||
			std::list<RegionGeometry> listChangedRegionGeometry = getChangedRegionGeometry();
 | 
			
		||||
 | 
			
		||||
			for(std::list<RegionGeometry>::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<SurfacePatchRenderable*>(getMovableObject(strSingleMaterialPatchName, SurfacePatchRenderableFactory::FACTORY_TYPE_NAME));
 | 
			
		||||
						singleMaterialSurfacePatchRenderable->updateWithNewSurfacePatch(iterRegionGeometry->m_patchSingleMaterial);
 | 
			
		||||
					}
 | 
			
		||||
					else
 | 
			
		||||
					{
 | 
			
		||||
						singleMaterialSurfacePatchRenderable = dynamic_cast<SurfacePatchRenderable*>(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<SurfacePatchRenderable*>(getMovableObject(strMultiMaterialPatchName, SurfacePatchRenderableFactory::FACTORY_TYPE_NAME));
 | 
			
		||||
						multiMaterialSurfacePatchRenderable->updateWithNewSurfacePatch(iterRegionGeometry->m_patchMultiMaterial);
 | 
			
		||||
					}
 | 
			
		||||
					else
 | 
			
		||||
					{
 | 
			
		||||
						multiMaterialSurfacePatchRenderable = dynamic_cast<SurfacePatchRenderable*>(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<SceneNode*>(getRootSceneNode()->getChild(strSceneNodeName));
 | 
			
		||||
			}
 | 
			
		||||
			else
 | 
			
		||||
			{
 | 
			
		||||
				return getRootSceneNode()->createChildSceneNode(strSceneNodeName);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	std::list<RegionGeometry> PolyVoxSceneManager::getChangedRegionGeometry(void)
 | 
			
		||||
	{
 | 
			
		||||
		std::list<RegionGeometry> listChangedRegionGeometry;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user