EgtGeomKernel :

- correzione alla bezier ruled.
This commit is contained in:
Daniele Bariletti
2025-10-13 15:21:13 +02:00
parent 6016db837e
commit 20b61cda42
+8 -2
View File
@@ -4767,6 +4767,8 @@ SurfBezier::CreateByTwoCurves( const ICurve* pCurve0, const ICurve* pCurve1, int
// in quel punto la curva verrà spezzata, a meno che non si trovi una joint già sufficientemente vicina
// prima trovo le associazioni senza aggiunte di punti
bool bIsClosed0 = plU0.IsClosed() ;
bool bIsClosed1 = plU1.IsClosed() ;
Point3d ptP1 ; plU1.GetFirstPoint( ptP1) ;
vector<pair<Point3d,double>> vMatch1 ;
while ( plU1.GetNextPoint( ptP1, true)) {
@@ -4796,8 +4798,10 @@ SurfBezier::CreateByTwoCurves( const ICurve* pCurve0, const ICurve* pCurve1, int
int nFlag = 0 ;
double dParam ; dpc.GetParamAtMinDistPoint( 0, dParam, nFlag) ;
Point3d ptJoint ; dpc.GetMinDistPoint( 0, ptJoint, nFlag) ;
if( bIsClosed1 && dParam > nSpanU1 - EPS_SMALL)
dParam = 0 ;
vdMatch0.push_back( dParam) ;
if ( dParam < EPS_SMALL ) {
if ( dParam < EPS_SMALL) {
++nAtStart1 ;
vbRep0[c] = true ;
++c ;
@@ -4870,7 +4874,9 @@ SurfBezier::CreateByTwoCurves( const ICurve* pCurve0, const ICurve* pCurve1, int
int nFlag = 0 ;
double dParam ; dpc.GetParamAtMinDistPoint( 0, dParam, nFlag) ;
Point3d ptJoint ; dpc.GetMinDistPoint( 0, ptJoint, nFlag) ;
if ( dParam < EPS_SMALL ) {
if ( bIsClosed0 && dParam > nSpanU0 - EPS_SMALL)
dParam = 0 ;
if ( dParam < EPS_SMALL) {
++nAtStart0 ;
vbRep1[c] = true ;
++c ;