EgtGeomKernel :

- corretto bug nella richiesta degli edge3D di una Bezier.
This commit is contained in:
Daniele Bariletti
2024-03-25 09:59:21 +01:00
parent 4ab4a2fc81
commit 7882964b26
+10 -6
View File
@@ -2818,7 +2818,9 @@ SurfBezier::GetLoops( ICRVCOMPOPOVECTOR& vCC, bool bLineOrBezier, int nEdge) con
// scorro i loop che fanno intersezioni con l'edge 0 ( V=1) e le riporto sull'edge opposto
for ( pair<int, ICCIVECTOR> vInters0 : vmInters[0]) {
// scorro le intersezioni del loop
for ( IntCrvCrvInfo inters0 : vInters0.second) {
for ( IntCrvCrvInfo inters0 : vInters0.second) {
if ( ! inters0.bOverlap)
continue ;
Point3d ptStart0 = inters0.IciA[0].ptI ;
Point3d ptEnd0 = inters0.IciA[1].ptI ;
// porto i punti sull'edge opposto
@@ -2880,7 +2882,7 @@ SurfBezier::GetLoops( ICRVCOMPOPOVECTOR& vCC, bool bLineOrBezier, int nEdge) con
ptOverlapS.y = m_nSpanV * SBZ_TREG_COEFF ;
ptOverlapE.y = m_nSpanV * SBZ_TREG_COEFF ;
double dStart0, dEnd0 ;
// scorro tutte le curve in cui è stato splittato il loop iniziale
// scorro tutte le curve in cui è stato splittato il loop corrente
for ( int j = 0 ; j < int( mSplitLoop[vInters0.first].size()) ; ++j ) {
int nIndex0 = mSplitLoop[vInters0.first][j] ;
if ( ! m_vCCLoop[nIndex0]->GetParamAtPoint( ptOverlapS, dStart0) || ! m_vCCLoop[nIndex0]->GetParamAtPoint( ptOverlapE, dEnd0))
@@ -2906,9 +2908,9 @@ SurfBezier::GetLoops( ICRVCOMPOPOVECTOR& vCC, bool bLineOrBezier, int nEdge) con
else if ( bDoneB)
m_vCCLoop[nIndex0].Set( pCC0b) ;
}
break ;
//break ;
}
break ;
//break ;
}
}
}
@@ -2922,6 +2924,8 @@ SurfBezier::GetLoops( ICRVCOMPOPOVECTOR& vCC, bool bLineOrBezier, int nEdge) con
for ( pair<int, ICCIVECTOR> vInters1 : vmInters[1]) {
// scorro le intersezioni del loop
for ( IntCrvCrvInfo inters1 : vInters1.second) {
if ( ! inters1.bOverlap)
continue ;
Point3d ptStart1 = inters1.IciA[0].ptI ;
Point3d ptEnd1 = inters1.IciA[1].ptI ;
// porto i punti sull'edge opposto
@@ -3009,9 +3013,9 @@ SurfBezier::GetLoops( ICRVCOMPOPOVECTOR& vCC, bool bLineOrBezier, int nEdge) con
else if ( bDoneB)
m_vCCLoop[nIndex1].Set( pCC1b) ;
}
break ;
//break ;
}
break ;
//break ;
}
}
}