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 ;