EgtGeomKernel :
- correzione alla ruled guided.
This commit is contained in:
+24
-3
@@ -6016,6 +6016,14 @@ SurfBezier::CreateByIsoParamSet( const ICurve* pCurve0, const ICurve* pCurve1, c
|
||||
CrvU1.GetParamAtPoint( vCrv[vIso[i].nCrv].second, vIso[i].dParam1) ;
|
||||
}
|
||||
}
|
||||
else {
|
||||
vIso.emplace_back( -1, 0, 0) ;
|
||||
rotate( vIso.begin(), vIso.begin() + ssize(vIso) - 1, vIso.end()) ;
|
||||
}
|
||||
|
||||
// se manca aggiungo la coppia finale
|
||||
if ( vIso.back().dParam0 != nSpanU0 || vIso.back().dParam1 != nSpanU1)
|
||||
vIso.emplace_back( -1, nSpanU0, nSpanU1) ;
|
||||
|
||||
// scorro vIso per verificare che non ci siano curve che si intersecano
|
||||
int c = 0 ;
|
||||
@@ -6035,9 +6043,22 @@ SurfBezier::CreateByIsoParamSet( const ICurve* pCurve0, const ICurve* pCurve1, c
|
||||
if ( vIso[0].dParam0 > 0 || vIso[0].dParam1 > 0)
|
||||
vPairs.emplace_back( 0, 0) ;
|
||||
for ( int i = 0 ; i < ssize( vIso) ; ++i) {
|
||||
const BIPOINT& pCrv = vCrv[vIso[i].nCrv] ;
|
||||
Point3d ptU0 = pCrv.first ;
|
||||
Point3d ptU1 = pCrv.second ;
|
||||
Point3d ptU0, ptU1 ;
|
||||
if ( vIso[i].nCrv != -1) {
|
||||
const BIPOINT& pCrv = vCrv[vIso[i].nCrv] ;
|
||||
ptU0 = pCrv.first ;
|
||||
ptU1 = pCrv.second ;
|
||||
}
|
||||
else {
|
||||
if ( vIso[i].dParam0 == 0 && vIso[i].dParam1 == 0) {
|
||||
CrvU0.GetStartPoint( ptU0) ;
|
||||
CrvU1.GetStartPoint( ptU1) ;
|
||||
}
|
||||
else {
|
||||
CrvU0.GetEndPoint( ptU0) ;
|
||||
CrvU1.GetEndPoint( ptU1) ;
|
||||
}
|
||||
}
|
||||
double& dParam0 = vIso[i].dParam0 ;
|
||||
double& dParam1 = vIso[i].dParam1 ;
|
||||
// se sono vicino ad un'intero allora considero il parametro intero ( uno split già esistente)
|
||||
|
||||
Reference in New Issue
Block a user