From 2f6a1f7579f5466ffc3b29017d0b23f1957e69aa Mon Sep 17 00:00:00 2001 From: SaraP Date: Wed, 7 Dec 2022 14:50:53 +0100 Subject: [PATCH] EgtGeomKernel : - correzione a GetSurfFlatRegionFromFatCurve nel caso di curve quasi chiuse su piani inclinati. --- SfrCreate.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/SfrCreate.cpp b/SfrCreate.cpp index f118932..c8502c8 100644 --- a/SfrCreate.cpp +++ b/SfrCreate.cpp @@ -143,9 +143,20 @@ GetSurfFlatRegionFromFatCurve( ICurve* pCrv, double dRadius, bool bSquareEnds, b pCompo1->ModifyEnd( ptNew) ; } else { - double dAngEnd ; vtEnd.ToSpherical( nullptr, nullptr, &dAngEnd) ; - double dAngStart ; vtStart.ToSpherical( nullptr, nullptr, &dAngStart) ; + Frame3d frLoc ; + if ( ! AreSameVectorApprox( vtExtr, Z_AX)) + frLoc.Set( ORIG, vtExtr) ; + + // costruisco il biarco nel piano della curva + ptStart.ToLoc( frLoc) ; + ptEnd.ToLoc( frLoc) ; + Vector3d vtELoc( vtEnd) ; vtELoc.ToLoc( frLoc) ; + Vector3d vtSLoc( vtStart) ; vtSLoc.ToLoc( frLoc) ; + double dAngEnd ; vtELoc.ToSpherical( nullptr, nullptr, &dAngEnd) ; + double dAngStart ; vtSLoc.ToSpherical( nullptr, nullptr, &dAngStart) ; PtrOwner pClose( GetBiArc( ptEnd, dAngEnd, ptStart, dAngStart, 0.5)) ; + // porto il biarco in globale + pClose->ToGlob( frLoc) ; if ( ! IsNull( pClose)) pCompo1->AddCurve( Release( pClose)) ; else