EgtGeomKernel :

- aggiunti altri controlli per superfici trimesh vuote in CutWithOtherSurf, Cut e GeneralizedCut.
This commit is contained in:
DarioS
2023-07-21 17:20:09 +02:00
parent a0a6bf8377
commit 538126cfe5
2 changed files with 14 additions and 2 deletions
+10 -2
View File
@@ -32,10 +32,14 @@ const double CUT_SCALE = 1024 ;
bool
SurfTriMesh::Cut( const Plane3d& plPlane, bool bSaveOnEq)
{
// la superficie deve essere validata
// La superficie deve essere validata
if ( m_nStatus != OK)
return false ;
// Se la superficie è vuota non devo fare alcunchè
if ( IsEmpty())
return true ;
// recupero il numero originale di triangoli e di facce
int nTriaOriCnt = GetTriangleCount() ;
int nFacetOriCnt = GetFacetCount() ;
@@ -354,6 +358,10 @@ SurfTriMesh::GeneralizedCut( const ICurve& cvCurve, bool bSaveOnEq)
if ( ! cvCurve.GetExtrusion( vtExtr) || vtExtr.IsSmall() || ! cvCurve.IsClosed())
return false ;
// Se la superficie è vuota non devo fare alcunchè
if ( IsEmpty())
return true ;
// Recupero il numero originale di triangoli e di facce
int nTriaOriCnt = GetTriangleCount() ;
int nFacetOriCnt = GetFacetCount() ;
@@ -367,7 +375,7 @@ SurfTriMesh::GeneralizedCut( const ICurve& cvCurve, bool bSaveOnEq)
}
// Eseguo scalature
Frame3d frScalingRef;
Frame3d frScalingRef ;
frScalingRef.Set( m_vVert[0].ptP, X_AX, Y_AX, Z_AX) ;
Scale( frScalingRef, CUT_SCALE, CUT_SCALE, CUT_SCALE) ;
cvCompo.Scale( frScalingRef, CUT_SCALE, CUT_SCALE, CUT_SCALE) ;