From 4e7af3279c59eda4fced63ae599ccb4e017651f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Lecacheur?= Date: Thu, 23 Aug 2012 11:39:01 +0000 Subject: [PATCH] optim radialJitter --- src/easymesh/easymesh.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/easymesh/easymesh.cpp b/src/easymesh/easymesh.cpp index a901bb84..57b224f6 100644 --- a/src/easymesh/easymesh.cpp +++ b/src/easymesh/easymesh.cpp @@ -243,11 +243,24 @@ void EasyMesh::RadialJitter(float r) Welded.Push(-1); for (int i = m_cursors.Last().m1 + 1; i < m_vert.Count(); i++) { - int j; - for (j = m_cursors.Last().m1; j < i; j++) + int j, k; + for (j = m_cursors.Last().m1, k = 0; j < i; j++, k++) { - if(sqlength(m_vert[i].m1 - m_vert[j].m1) < 0.1f) + if(Welded[k] < 0) + { + vec3 diff = m_vert[i].m1 - m_vert[j].m1; + + if(diff.x > 0.1f || diff.x < -0.1f) + continue; + + if(diff.y > 0.1f || diff.y < -0.1f) + continue; + + if(diff.z > 0.1f || diff.z < -0.1f) + continue; + break; + } } if(j == i)