EgtGeomKernel 3.1h4 :

- resa pubblica la funzione per cambiare lo start di una polyline
- resa pubblica la MakeByFist della Triangulate
- aggiunta di due parametri per l'interpolazione delle linee di sync per il trimming.
This commit is contained in:
Daniele Bariletti
2026-08-26 09:21:43 +02:00
parent c64f9f482b
commit 07aee03006
6 changed files with 124 additions and 42 deletions
+6 -6
View File
@@ -887,19 +887,19 @@ PolyLine::ApproxOnSide( const Vector3d& vtN, bool bLeftSide, double dToler)
// *** polilinea chiusa : devo sistemare a cavallo dell'inizio/fine ***
// sposto l'inizio dalla parte opposta
MyChangeStart( int( m_lUPoints.size() / 2)) ;
ChangeStart( int( m_lUPoints.size() / 2)) ;
// rifaccio l'approssimazione con 3/4 della tolleranza ammessa
if ( ! MyApproxOnSide( vtN, bLeftSide, 0.75 * dToler))
return false ;
// risposto l'inizio dalla parte opposta, quindi lo porto vicino all'originale
MyChangeStart( int( m_lUPoints.size() / 2)) ;
ChangeStart( int( m_lUPoints.size() / 2)) ;
return true ;
}
//----------------------------------------------------------------------------
bool
PolyLine::MyChangeStart( int nPos)
PolyLine::ChangeStart( int nPos)
{
// solo per polilinee chiuse
if ( ! IsClosed())
@@ -1037,12 +1037,12 @@ PolyLine::MakeConvex( const Vector3d& vtN, bool bLeftSide)
// *** polilinea chiusa : devo sistemare a cavallo dell'inizio/fine ***
// sposto l'inizio dalla parte opposta
MyChangeStart( int( m_lUPoints.size() / 2)) ;
ChangeStart( int( m_lUPoints.size() / 2)) ;
// rifaccio la modifica
if ( ! MyMakeConvex( vtN, bLeftSide))
return false ;
// risposto l'inizio dalla parte opposta, quindi lo porto vicino all'originale
MyChangeStart( int( m_lUPoints.size() / 2)) ;
ChangeStart( int( m_lUPoints.size() / 2)) ;
return true ;
}
@@ -1391,7 +1391,7 @@ PolyLine::Trim( const Plane3d& plPlane, bool bInVsOut)
// se chiusa, sposto l'inizio su eventuale primo punto di intersezione con il piano
if ( IsClosed() && nIntPos != -1)
MyChangeStart( nIntPos) ;
ChangeStart( nIntPos) ;
// elimino i punti che non rispettano la posizione rispetto al piano
currUP = m_lUPoints.begin() ;