From cd8569799d6cdffba7430edac2b5eb33691e236d Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Mon, 15 Jun 2020 08:23:08 +0000 Subject: [PATCH] EgtGeomKernel : - correzioni a gestione secondo colore per booleane trimesh. --- SurfTriMeshBooleans.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/SurfTriMeshBooleans.cpp b/SurfTriMeshBooleans.cpp index 2c5b4eb..2e8d065 100644 --- a/SurfTriMeshBooleans.cpp +++ b/SurfTriMeshBooleans.cpp @@ -1207,6 +1207,7 @@ SurfTriMesh::RetriangulationForBooleanOperation( CHAINMAP& LoopLines, TRIA3DVECT } } // Rimuovo il triangolo corrente + int nOldTriaCol = m_vTria[it->first].nTFlag ; Surf.RemoveTriangle( it->first) ; // Trasformo i loop compositi in loop polyline POLYLINEVECTOR vplPolyVec ; @@ -1352,7 +1353,7 @@ SurfTriMesh::RetriangulationForBooleanOperation( CHAINMAP& LoopLines, TRIA3DVECT int nNewId[3] = { Surf.AddVertex( vPt[nNewTriaVertId[0]]), Surf.AddVertex( vPt[nNewTriaVertId[1]]), Surf.AddVertex( vPt[nNewTriaVertId[2]]) } ; - int nNewTriaNum = Surf.AddTriangle( nNewId) ; + int nNewTriaNum = Surf.AddTriangle( nNewId, nOldTriaCol) ; if ( IsValidSvt( nNewTriaNum)) { Surf.m_vTria[nNewTriaNum].nETempFlag[0] = 0 ; Surf.m_vTria[nNewTriaNum].nETempFlag[1] = 0 ; @@ -1445,7 +1446,7 @@ SurfTriMesh::RetriangulationForBooleanOperation( CHAINMAP& LoopLines, TRIA3DVECT int nNewId[3] = { Surf.AddVertex( vPt[nNewTriaVertId[0]]), Surf.AddVertex( vPt[nNewTriaVertId[1]]), Surf.AddVertex( vPt[nNewTriaVertId[2]])} ; - int nNewTriaNum = Surf.AddTriangle( nNewId) ; + int nNewTriaNum = Surf.AddTriangle( nNewId, nOldTriaCol) ; if ( IsValidSvt( nNewTriaNum)) { Surf.m_vTria[nNewTriaNum].nETempFlag[0] = 0 ; Surf.m_vTria[nNewTriaNum].nETempFlag[1] = 0 ; @@ -1468,7 +1469,7 @@ SurfTriMesh::RetriangulationForBooleanOperation( CHAINMAP& LoopLines, TRIA3DVECT int nNewId[3] = { Surf.AddVertex( vPt[nNewTriaVertId[0]]), Surf.AddVertex( vPt[nNewTriaVertId[1]]), Surf.AddVertex( vPt[nNewTriaVertId[2]])} ; - int nNewTriaNum = Surf.AddTriangle( nNewId) ; + int nNewTriaNum = Surf.AddTriangle( nNewId, nOldTriaCol) ; if ( IsValidSvt( nNewTriaNum)) { Surf.m_vTria[nNewTriaNum].nETempFlag[0] = 0 ; Surf.m_vTria[nNewTriaNum].nETempFlag[1] = 0 ;