From 6710c034ba118bbeed51f4ba27d0be235759610e Mon Sep 17 00:00:00 2001 From: Daniele Bariletti Date: Wed, 26 Aug 2026 09:22:52 +0200 Subject: [PATCH] Include : - resa pubblica la funzione per cambiare punto di inizio di una polyline - aggiunti due argomenti per l'interpolazione delle linee di sync per il trimming. --- EGkPolyLine.h | 2 +- EGkTrimming.h | 10 +++++++++- EXeExecutor.h | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/EGkPolyLine.h b/EGkPolyLine.h index 5ab211b..d78ec13 100644 --- a/EGkPolyLine.h +++ b/EGkPolyLine.h @@ -127,9 +127,9 @@ class PolyLine for ( int i = 0 ; i < std::ssize( vPnt) ; ++i) AddUPoint( i, vPnt[i]) ; return GetPointNbr() > 0 ; } + EGK_EXPORT bool ChangeStart( int nPos) ; private : - bool MyChangeStart( int nPos) ; bool MyApproxOnSide( const Vector3d& vtN, bool bLeftSide, double dToler = EPS_SMALL) ; bool MyMakeConvex( const Vector3d& vtN, bool bLeftSide) ; bool MyRemoveSamePoints( double dToler = EPS_SMALL) ; diff --git a/EGkTrimming.h b/EGkTrimming.h index 8673f67..2a6def8 100644 --- a/EGkTrimming.h +++ b/EGkTrimming.h @@ -33,6 +33,14 @@ typedef std::vector ICRVCOMPOPOMATRIX ; enum RegolarizeType { STD = 0, // standard, con modifiche dirette ai punti di controllo RMF = 1}; // ricostruendo le curve usando il rotation minimizing frame +struct GuideBounds { + double dS1 ; + double dE1 ; + double dS2 ; + double dE2 ; + bool bDirect ; +}; + //----------------------------------------------------------------------------- EGK_EXPORT bool GetTrimmingStmAdjTria( const ISurfTriMesh* pStm, int nStartTria, const Point3d& ptStartTria, double dAngTol, double dSize, double dSizeTol, ISurfTriMesh* pStmAdjTria) ; @@ -55,7 +63,7 @@ EGK_EXPORT bool GetTrimmingSurfBzSyncPoints( const ICurve* pCrvEdge1, const ICur double dLinTol, BIPNTVECTOR& vSyncPoints) ; EGK_EXPORT bool GetTrimmingSyncInterpolation( const ICurve* pCrvEdge1, const ICurve* pCrvEdge2, const ICurve* pSync1, const ICurve* pSync2, double dLinTol, - double dAngTol, BIPNTVECTOR& vSyncPoints) ; + double dAngTol, bool bShorterSide, BIPNTVECTOR& vSyncPoints, GuideBounds& gb) ; EGK_EXPORT bool GetTrimmingHoleBorders( const CISURFPVECTOR& vpSurf, const Point3d& ptRef, double dSurfLinTol, double dSurfAngTol, double dEdgeLinTol, double dEdgeAngTol, double dEdgeThick, ICRVCOMPOPOVECTOR& vHoleBorders) ; diff --git a/EXeExecutor.h b/EXeExecutor.h index a5ae57b..76652a7 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -1539,7 +1539,7 @@ EXE_EXPORT int ExeTrimmingGetRuledBezier( int nParentId, const INTVECTOR& vIds, const INTVECTOR& vnLineIds) ; EXE_EXPORT bool ExeTrimmingInterpolateSyncLines( int nParentId, int nSync1Id, int nSync2Id, int nBorder1Id, int nBorder2Id, double dEdgeLinTol, - double dEdgeAngTol, int& nFirstId, int& nCount) ; + double dEdgeAngTol, bool bShorterSide, bool bEraseOrigLines, int& nFirstId, int& nCount) ; EXE_EXPORT bool ExeTrimmingGetSurfBzSyncPoints( int nParentId, int nEdge1Id, int nEdge2Id, double dLinTol, double dAngTol, int nLineNbr, bool bShowOnCorners, int& nFirstId, int& nCount) ;