EgtGeomKernel :

- modifiche a SurfTriMesh per superfici degeneri.
This commit is contained in:
Dario Sassi
2020-12-31 11:14:30 +00:00
parent 743c47d0e0
commit 5b0dfd16e1
3 changed files with 25 additions and 21 deletions
+24 -13
View File
@@ -82,6 +82,23 @@ SurfTriMesh::Init( int nNumVert, int nNumTria, int nNumFacet)
return true ;
}
//----------------------------------------------------------------------------
bool
SurfTriMesh::Clear( void)
{
m_nStatus = OK ;
m_bOriented = false ;
m_bClosed = false ;
m_bFaceted = false ;
m_vVert.clear() ;
m_vTria.clear() ;
m_vFacet.clear() ;
ResetHashGrids3d() ;
m_nMaxTFlag = 0 ;
m_nParts = -1 ;
return true ;
}
//----------------------------------------------------------------------------
int
SurfTriMesh::AddVertex( const Point3d& ptVert)
@@ -1586,6 +1603,13 @@ SurfTriMesh::TestSealing( void)
bool
SurfTriMesh::AdjustTopology( void)
{
// se non è rimasto alcunché di valido, pulisco tutto ed esco
if ( GetVertexCount() < 3 || GetTriangleCount() < 1) {
Clear() ;
m_bOriented = true ;
m_bClosed = true ;
return true ;
}
// dichiaro sfaccettatura da ricalcolare
ResetFaceting() ;
// invalido calcolo connessione
@@ -3483,19 +3507,6 @@ SurfTriMesh::Cut( const Plane3d& plPlane, bool bSaveOnEq)
// aggiorno tutto
if ( ! AdjustVertices() || ! DoCompacting())
return false ;
// se non è rimasto alcunché di valido, pulisco tutto
if ( bModif && ( GetVertexCount() < 3 || GetTriangleCount() < 1)) {
m_nStatus = OK ;
m_bOriented = false ;
m_bClosed = false ;
m_bFaceted = false ;
m_vVert.clear() ;
m_vTria.clear() ;
m_vFacet.clear() ;
ResetHashGrids3d() ;
m_nMaxTFlag = 0 ;
m_nParts = -1 ;
}
}
return true ;