Cleaning up.
This commit is contained in:
		@@ -121,11 +121,7 @@ namespace Ogre
 | 
			
		||||
				std::string location("");
 | 
			
		||||
				location = location + "(" + iterRegionGeometry->m_v3dRegionPosition.x + "," + iterRegionGeometry->m_v3dRegionPosition.y + "," + iterRegionGeometry->m_v3dRegionPosition.z + ")";
 | 
			
		||||
 | 
			
		||||
				//Get the surface
 | 
			
		||||
				IndexedSurfacePatch* singleMaterialPatch = iterRegionGeometry->m_patchSingleMaterial;
 | 
			
		||||
				IndexedSurfacePatch* multiMaterialPatch = iterRegionGeometry->m_patchMultiMaterial;
 | 
			
		||||
 | 
			
		||||
				if((singleMaterialPatch->m_vecVertices.size() == 0) && (singleMaterialPatch->m_vecTriangleIndices.size() == 0))
 | 
			
		||||
				if(iterRegionGeometry->m_bIsEmpty)
 | 
			
		||||
				{
 | 
			
		||||
					try
 | 
			
		||||
					{
 | 
			
		||||
@@ -134,43 +130,45 @@ namespace Ogre
 | 
			
		||||
					catch(...)
 | 
			
		||||
					{
 | 
			
		||||
					}
 | 
			
		||||
					continue;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				//If a SceneNode doesn't exist in this position then create one.
 | 
			
		||||
				SceneNode* sceneNode;
 | 
			
		||||
				try
 | 
			
		||||
				{
 | 
			
		||||
					sceneNode = dynamic_cast<SceneNode*>(getRootSceneNode()->getChild(location));
 | 
			
		||||
				}
 | 
			
		||||
				catch(...)
 | 
			
		||||
				{
 | 
			
		||||
					sceneNode = 0;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if(sceneNode == 0)
 | 
			
		||||
				{
 | 
			
		||||
					sceneNode = getRootSceneNode()->createChildSceneNode(location, 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));
 | 
			
		||||
 | 
			
		||||
					SurfacePatchRenderable*singleMaterialSurfacePatchRenderable = new SurfacePatchRenderable(singleMaterialPatch,materialMap->getMaterialAtIndex(1));
 | 
			
		||||
					SurfacePatchRenderable*multiMaterialSurfacePatchRenderable = new SurfacePatchRenderable(multiMaterialPatch,materialMap->getMaterialAtIndex(2));
 | 
			
		||||
 | 
			
		||||
					multiMaterialSurfacePatchRenderable->setRenderQueueGroup(RENDER_QUEUE_3);
 | 
			
		||||
					singleMaterialSurfacePatchRenderable->setRenderQueueGroup(RENDER_QUEUE_4);
 | 
			
		||||
 | 
			
		||||
					sceneNode->attachObject(singleMaterialSurfacePatchRenderable);
 | 
			
		||||
 | 
			
		||||
					sceneNode->attachObject(multiMaterialSurfacePatchRenderable);
 | 
			
		||||
				}
 | 
			
		||||
				else
 | 
			
		||||
				{
 | 
			
		||||
 | 
			
		||||
					SurfacePatchRenderable* singleMaterialSurfacePatchRenderable = dynamic_cast<SurfacePatchRenderable*>(sceneNode->getAttachedObject(0));
 | 
			
		||||
					SurfacePatchRenderable* multiMaterialSurfacePatchRenderable = dynamic_cast<SurfacePatchRenderable*>(sceneNode->getAttachedObject(1));
 | 
			
		||||
					//If a SceneNode doesn't exist in this position then create one.
 | 
			
		||||
					SceneNode* sceneNode;
 | 
			
		||||
					try
 | 
			
		||||
					{
 | 
			
		||||
						sceneNode = dynamic_cast<SceneNode*>(getRootSceneNode()->getChild(location));
 | 
			
		||||
					}
 | 
			
		||||
					catch(...)
 | 
			
		||||
					{
 | 
			
		||||
						sceneNode = 0;
 | 
			
		||||
					}
 | 
			
		||||
 | 
			
		||||
					singleMaterialSurfacePatchRenderable->updateWithNewSurfacePatch(singleMaterialPatch);
 | 
			
		||||
					if(sceneNode == 0)
 | 
			
		||||
					{
 | 
			
		||||
						sceneNode = getRootSceneNode()->createChildSceneNode(location, 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));
 | 
			
		||||
 | 
			
		||||
					multiMaterialSurfacePatchRenderable->updateWithNewSurfacePatch(multiMaterialPatch);
 | 
			
		||||
						SurfacePatchRenderable*singleMaterialSurfacePatchRenderable = new SurfacePatchRenderable(iterRegionGeometry->m_patchSingleMaterial,materialMap->getMaterialAtIndex(1));
 | 
			
		||||
						SurfacePatchRenderable*multiMaterialSurfacePatchRenderable = new SurfacePatchRenderable(iterRegionGeometry->m_patchMultiMaterial,materialMap->getMaterialAtIndex(2));
 | 
			
		||||
 | 
			
		||||
						multiMaterialSurfacePatchRenderable->setRenderQueueGroup(RENDER_QUEUE_3);
 | 
			
		||||
						singleMaterialSurfacePatchRenderable->setRenderQueueGroup(RENDER_QUEUE_4);
 | 
			
		||||
 | 
			
		||||
						sceneNode->attachObject(singleMaterialSurfacePatchRenderable);
 | 
			
		||||
 | 
			
		||||
						sceneNode->attachObject(multiMaterialSurfacePatchRenderable);
 | 
			
		||||
					}
 | 
			
		||||
					else
 | 
			
		||||
					{
 | 
			
		||||
 | 
			
		||||
						SurfacePatchRenderable* singleMaterialSurfacePatchRenderable = dynamic_cast<SurfacePatchRenderable*>(sceneNode->getAttachedObject(0));
 | 
			
		||||
						SurfacePatchRenderable* multiMaterialSurfacePatchRenderable = dynamic_cast<SurfacePatchRenderable*>(sceneNode->getAttachedObject(1));
 | 
			
		||||
 | 
			
		||||
						singleMaterialSurfacePatchRenderable->updateWithNewSurfacePatch(iterRegionGeometry->m_patchSingleMaterial);
 | 
			
		||||
 | 
			
		||||
						multiMaterialSurfacePatchRenderable->updateWithNewSurfacePatch(iterRegionGeometry->m_patchMultiMaterial);
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
@@ -212,6 +210,8 @@ namespace Ogre
 | 
			
		||||
 | 
			
		||||
						generateMeshDataForRegion(regionX,regionY,regionZ, regionGeometry.m_patchSingleMaterial, regionGeometry.m_patchMultiMaterial);
 | 
			
		||||
 | 
			
		||||
						regionGeometry.m_bIsEmpty = ((regionGeometry.m_patchSingleMaterial->m_vecVertices.size() == 0) && (regionGeometry.m_patchMultiMaterial->m_vecTriangleIndices.size() == 0));
 | 
			
		||||
 | 
			
		||||
						listChangedRegionGeometry.push_back(regionGeometry);
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user