EgtGeomKernel :

- correzioni, migliorie e d estensioni alle superfici di Bezier
- in Release cambiate opzioni di ottimizzazione da /Ox  a /O2.
This commit is contained in:
Dario Sassi
2020-03-30 11:04:20 +00:00
parent 04e4087f3b
commit 2c6ebdadca
10 changed files with 575 additions and 163 deletions
+38
View File
@@ -74,6 +74,44 @@ StmFromTriangleSoup::AddTriangle( const Triangle3d& Tria)
return true ;
}
//----------------------------------------------------------------------------
bool
StmFromTriangleSoup::AddTriangle( const Point3d& ptP0, const Point3d& ptP1, const Point3d& ptP2)
{
// verifico inizializzazione
if ( m_pSTM == nullptr)
return false ;
// ciclo sui tre vertici
int nIdV[3] ;
if ( ( nIdV[0] = AddVertex( ptP0)) == SVT_NULL)
return false ;
if ( ( nIdV[1] = AddVertex( ptP1)) == SVT_NULL)
return false ;
if ( ( nIdV[2] = AddVertex( ptP2)) == SVT_NULL)
return false ;
// se i vertici sono tutti diversi tra loro, inserisco il triangolo
if ( nIdV[0] != nIdV[1] && nIdV[0] != nIdV[2] && nIdV[1] != nIdV[2]) {
if ( m_pSTM->AddTriangle( nIdV) == SVT_NULL)
return false ;
}
return true ;
}
//----------------------------------------------------------------------------
int
StmFromTriangleSoup::AddVertex( const Point3d& ptP)
{
// verifico se già presente
int nId ;
if ( m_VertGrid.Find( ptP, 2 * EPS_SMALL, nId))
return nId ;
// aggiungo il vertice
if ( ( nId = m_pSTM->AddVertex( ptP)) == SVT_NULL)
return SVT_NULL ;
m_VertGrid.InsertPoint( ptP, nId) ;
return nId ;
}
//----------------------------------------------------------------------------
bool
StmFromTriangleSoup::End( void)