EgtGeomKernel :

- piccole migliorie per PCA di curve composite
- si evitano triangolazioni di poligoni con 2 soli lati (segmenti sovrapposti va e vieni).
This commit is contained in:
DarioS
2023-01-09 10:14:29 +01:00
parent e01941644b
commit 368bd80c69
3 changed files with 12 additions and 13 deletions
+5 -2
View File
@@ -515,8 +515,11 @@ PolyLine::IsFlat( int& nRank, Point3d& ptCen, Vector3d& vtDir, double dToler) co
// cerco le componenti principali (tramite PCA)
Point3d ptP1, ptP2 ;
PointsPCA ptsPCA ;
for ( bool bFound = GetFirstLine( ptP1, ptP2) ; bFound ; bFound = GetNextLine( ptP1, ptP2))
ptsPCA.AddPoint( Media( ptP1, ptP2), Dist( ptP1, ptP2)) ;
for ( bool bFound = GetFirstLine( ptP1, ptP2) ; bFound ; bFound = GetNextLine( ptP1, ptP2)) {
double dLen = Dist( ptP1, ptP2) ;
ptsPCA.AddPoint( Media( ptP1, ptP2, 0.25), dLen / 2) ;
ptsPCA.AddPoint( Media( ptP1, ptP2, 0.75), dLen / 2) ;
}
// recupero il rango, ovvero la dimensionalità dell'insieme di punti
nRank = ptsPCA.GetRank() ;
// se dimensione nulla, o non ci sono punti o sono tutti praticamente coincidenti