Merge pull request #180 from jmespadero/patch-1

Edge orientation coherence
This commit is contained in:
Alessandro Muntoni 2021-11-05 16:00:12 +01:00 committed by GitHub
commit 0323a0cd42
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 20 additions and 0 deletions

View File

@ -195,6 +195,26 @@ bool IntersectionPlaneMesh(TriMeshType & m,
}
tri::Allocator<TriMeshType> :: template DeletePerVertexAttribute < ScalarType >(m,qH);
//Clean-up: Remove duplicate vertex
tri::Clean<EdgeMeshType>::RemoveDuplicateVertex(em);
//Clean-up: Sort edges ensuring orientation coherence
for(size_t j=1; j < em.edge.size(); j++)
{
auto &n=em.edge[j-1].V(1);
for(size_t i=j; i< em.edge.size(); i++)
{
auto & ei=em.edge[i];
if (ei.V(1) == n)
std::swap(ei.V(0), ei.V(1));
if (ei.V(0) == n)
{
std::swap(em.edge[j], em.edge[i]);
break;
}
}
}
return true;
}