EgtExecutor :
- correzione alla funzione ExeSurfTmFacetElevationInBBox per il caso sia dato da un vertice.
This commit is contained in:
+5
-1
@@ -690,10 +690,14 @@ ExeSurfTmFacetElevationInBBox( int nId, int nFacet, const BBox3d& b3Box, int nRe
|
||||
// l'elevazione va aggiornata con la massima Z delle eventuali intersezioni dell'edge con il loop
|
||||
IntersCurveCurve intLL( *pLine, *pLoop) ;
|
||||
IntCrvCrvInfo aInfo ;
|
||||
for ( int i = 0 ; intLL.GetIntCrvCrvInfo( i, aInfo) ; ++ i) {
|
||||
for ( int j = 0 ; intLL.GetIntCrvCrvInfo( j, aInfo) ; ++ j) {
|
||||
dElev = max( dElev, aInfo.IciA[0].ptI.z) ;
|
||||
if ( aInfo.bOverlap)
|
||||
dElev = max( dElev, aInfo.IciA[1].ptI.z) ;
|
||||
// se prima intersezione va da interno ad esterno allora devo considerare il punto iniziale del segmento (vertice)
|
||||
if ( j == 0 && aInfo.IciA[0].nPrevTy == ICCT_IN)
|
||||
dElev = max( dElev, vEdges[i].first.z) ;
|
||||
// c'è anche il caso di ultima intersezione da esterno a interno, ma vertice già considerato nel caso precedente
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user