EgtGeomKernel :

- correzioni a operazioni booleane su TriMesh.
This commit is contained in:
Dario Sassi
2019-11-19 10:37:56 +00:00
parent ffad8c6dd2
commit 3544ff54f5
+10 -5
View File
@@ -2368,9 +2368,14 @@ SurfTriMesh::RemoveTJunction( void)
if ( it == vvIndexesSet[nP][nPP].end())
continue ;
Point3d ptP0, ptP1, ptP2 ;
GetVertex( m_vTria[it->nTriaId].nIdVert[0], ptP0) ;
GetVertex( m_vTria[it->nTriaId].nIdVert[1], ptP1) ;
GetVertex( m_vTria[it->nTriaId].nIdVert[2], ptP2) ;
while ( it != vvIndexesSet[nP][nPP].end() &&
( ! ( GetVertex(m_vTria[it->nTriaId].nIdVert[0], ptP0) &&
GetVertex(m_vTria[it->nTriaId].nIdVert[1], ptP1) &&
GetVertex(m_vTria[it->nTriaId].nIdVert[2], ptP2)))) {
++ it ;
}
if ( it == vvIndexesSet[nP][nPP].end())
continue ;
CurveLine cvLine0 ;
cvLine0.Set( ptP0, ptP1) ;
CurveLine cvLine1 ;
@@ -2405,8 +2410,8 @@ SurfTriMesh::RemoveTJunction( void)
cvAddLoop.AddCurve( cvAddLine2) ;
SurfFlatRegion AddFacet ;
AddFacet.AddExtLoop( cvAddLoop) ;
Facet.Add( AddFacet) ;
RemoveTriangle( it->nTriaId) ;
if ( Facet.Add( AddFacet))
RemoveTriangle( it->nTriaId) ;
++it ;
}
int nChunkNum = Facet.GetChunkCount() ;