From 487962ad31874563ca9d6d0966d79d354b95a5ff Mon Sep 17 00:00:00 2001 From: David Williams Date: Tue, 18 Sep 2007 16:05:24 +0000 Subject: [PATCH] Work on mesh decimation. --- source/PolyVoxSceneManager.cpp | 6 +++--- source/SurfacePatch.cpp | 12 ++++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/source/PolyVoxSceneManager.cpp b/source/PolyVoxSceneManager.cpp index 0dcbffad..8aa72206 100644 --- a/source/PolyVoxSceneManager.cpp +++ b/source/PolyVoxSceneManager.cpp @@ -1010,12 +1010,12 @@ namespace Ogre iterPatch->second.computeNormalsFromVolume(volIter); iterPatch->second.endDefinition(); bool removedVertex = false; - for(uint ct = 0; ct < 10; ct++) - //do + //for(uint ct = 0; ct < 10; ct++) + do { removedVertex = iterPatch->second.decimate3(); } - //while(removedVertex); + while(removedVertex); } //LogManager::getSingleton().logMessage("Finished Generating Mesh Data"); diff --git a/source/SurfacePatch.cpp b/source/SurfacePatch.cpp index a34b5ade..8eac6916 100644 --- a/source/SurfacePatch.cpp +++ b/source/SurfacePatch.cpp @@ -47,7 +47,7 @@ namespace Ogre void SurfacePatch::addTriangle(const SurfaceVertex& v0,const SurfaceVertex& v1,const SurfaceVertex& v2) { - if(v0.position.x > 8) + /*if(v0.position.x > 8) return; if(v0.position.y > 8) return; @@ -58,7 +58,7 @@ namespace Ogre if(v2.position.x > 8) return; if(v2.position.y > 8) - return; + return;*/ //if(m_uTrianglesAdded > 1) return; @@ -501,6 +501,10 @@ namespace Ogre (*secondEdgeIter)->triangle = iterTriangle; newEdgeIter->triangle = iterTriangle; + lastAddedEdge->hasTriangle = true; + (*secondEdgeIter)->hasTriangle = true; + newEdgeIter->hasTriangle = true; + //++firstEdgeIter; ++secondEdgeIter; lastAddedEdge = otherNewEdgeIter; @@ -524,6 +528,10 @@ namespace Ogre lastAddedEdge->triangle = iterTriangle; (*secondEdgeIter)->triangle = iterTriangle; (*endEdgeIter)->triangle = iterTriangle; + + lastAddedEdge->hasTriangle = true; + (*secondEdgeIter)->hasTriangle = true; + (*endEdgeIter)->hasTriangle = true; } didDecimation = true; break;