From 039921864387a430ba1398615633e3ac21242d03 Mon Sep 17 00:00:00 2001 From: Daniele Bariletti Date: Tue, 17 Sep 2024 17:31:14 +0200 Subject: [PATCH 1/2] Include : - aggiunta la funzione lua per SurfBzSwept - aggiunta la funzione IsLine per CrvBez - aggiunta la funzione InterpolatePointSetWithBezier - aggiunte la SweptInPlane e Swept3d ( questa da implementare) - modificata la CreateBySetOfCurves. --- EGkCurveAux.h | 6 +++++- EGkCurveBezier.h | 1 + EGkSbzFromCurves.h | 6 ++---- EGkSurfBezier.h | 1 + EXeExecutor.h | 1 + 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/EGkCurveAux.h b/EGkCurveAux.h index 2f21d6e..68d7c7f 100644 --- a/EGkCurveAux.h +++ b/EGkCurveAux.h @@ -75,9 +75,13 @@ EGK_EXPORT ICurve* ApproxBezierWithCubics( const ICurveBezier* pCrvBezier, doubl EGK_EXPORT ICurveBezier* ApproxArcCurveBezierWithSingleCubic( const ICurveBezier* pCrvBezier, const Point3d& ptCen) ; //---------------------------------------------------------------------------- -//! Campiona una serie di punti dalla curva e li interpola con una o pił curve di bezier +//! Campiona una serie di punti dalla curva e li approssima con una o pił curve di bezier EGK_EXPORT ICurve* ApproxCurveWithBezier( const ICurve*, double dTol) ; +//---------------------------------------------------------------------------- +//! Interpola un set di punti e li approssima con una o pił curve di bezier cubiche +EGK_EXPORT ICurve* InterpolatePointSetWithBezier( const PNTVECTOR& vPnt, double dTol) ; + //---------------------------------------------------------------------------- //! Aumento il grado della curva di Bezier EGK_EXPORT ICurveBezier* BezierIncreaseDegree( const ICurveBezier* pCrvBezier) ; diff --git a/EGkCurveBezier.h b/EGkCurveBezier.h index 954bc0c..b3a96a3 100644 --- a/EGkCurveBezier.h +++ b/EGkCurveBezier.h @@ -41,6 +41,7 @@ class __declspec( novtable) ICurveBezier : public ICurve virtual bool MakeRational( void) = 0 ; virtual bool MakeRationalStandardForm( void) = 0 ; virtual bool MakeNonRational( double dTol) = 0 ; + virtual bool IsALine( void) const = 0 ; } ; //----------------------------------------------------------------------------- diff --git a/EGkSbzFromCurves.h b/EGkSbzFromCurves.h index 6ca56da..f90fdc0 100644 --- a/EGkSbzFromCurves.h +++ b/EGkSbzFromCurves.h @@ -41,11 +41,9 @@ EGK_EXPORT ISurfBezier* GetSurfBezierByScrewing( const ICurve* pCurve, const Poi double dAngRotDeg, double dMove, bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ; //EGK_EXPORT ISurfBezier* GetSurfBezierRectSwept( double dDimH, double dDimV, double dBevelH, double dBevelV, // const ICurve* pGuide, int nCapType, double dLinTol = 10 * EPS_SMALL) ; -//EGK_EXPORT ISurfBezier* GetSurfBezierSwept( const ICurve* pSect, const ICurve* pGuide, const Vector3d& vtAx, -// bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ; -//EGK_EXPORT ISurfBezier* GetSurfBezierSwept( const ISurfFlatRegion* pSfrSect, const ICurve* pGuide, const Vector3d& vtAx, -// bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ; //EGK_EXPORT ISurfBezier* GetSurfBezierTransSwept( const ICurve* pSect, const ICurve* pGuide, bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ; EGK_EXPORT ISurfBezier* GetSurfBezierRuled( const Point3d& ptP, const ICurve* pCurve, double dLinTol = 10 * EPS_SMALL) ; EGK_EXPORT ISurfBezier* GetSurfBezierRuled( const ICurve* pCurve1, const ICurve* pCurve2, int nType, double dLinTol = 10 * EPS_SMALL) ; EGK_EXPORT ISurfBezier* GetSurfBezierSkinned( const CICURVEPVECTOR& vCrv, double dLinTol = 10 * EPS_SMALL) ; +EGK_EXPORT ISurfBezier* GetSurfBezierSweptInPlane( const ICurve* pSect, const ICurve* pGuide, const Vector3d& vtNorm, bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ; +EGK_EXPORT ISurfBezier* GetSurfBezierSwept3d( const ICurve* pSect, const ICurve* pGuide, const Vector3d& vtNorm, bool bCapEnds, double dLinTol = 10 * EPS_SMALL) ; diff --git a/EGkSurfBezier.h b/EGkSurfBezier.h index 08e6fd2..a5f8831 100644 --- a/EGkSurfBezier.h +++ b/EGkSurfBezier.h @@ -88,6 +88,7 @@ public : // IGeoObj virtual bool CreateByScrewing( const ICurve* pCurve, const Point3d& ptAx, const Vector3d& vtAx, double dAngRotDeg, double dMove) = 0 ; virtual bool CreateByPointCurve( const Point3d& pt, const ICurve* pCurve) = 0 ; virtual bool CreateByTwoCurves( const ICurve* pCurve1, const ICurve* pCurve2, int nType) = 0 ; + virtual bool CreateBySetOfCurves( const ICURVEPOVECTOR& vCrvBez, bool bReduceToDeg3 = true) = 0 ; } ; //----------------------------------------------------------------------------- diff --git a/EXeExecutor.h b/EXeExecutor.h index 6e7ac5e..4708373 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -389,6 +389,7 @@ EXE_EXPORT int ExeCreateSurfBzByRevolve( int nParentId, int nCrvId, EXE_EXPORT int ExeCreateSurfBzByPointCurve( int nParentId, int nCrvId, const Point3d& ptAx, bool bCapEnds, double dLinTol, int nRefType) ; EXE_EXPORT int ExeCreateSurfBzRuled( int nParentId, int nCrvId1, int nCrvId2, int nRuledType, bool bCapEnds, double dLinTol) ; EXE_EXPORT int ExeCreateSurfBzSkinned( int nParentId, const INTVECTOR& nCrvId1, bool bCapEnds, double dLinTol) ; +EXE_EXPORT int ExeCreateSurfBzSwept( int nParentId, int nSectId, int nGuideId, bool bCapEnds, double dLinTol) ; // GeomDB Create Volume EXE_EXPORT int ExeCreateVolZmap( int nParentId, const Point3d& ptIni, double dDimX, From 5525970ea18ea212809f6b98ab5e8a57544471ef Mon Sep 17 00:00:00 2001 From: Daniele Bariletti Date: Fri, 4 Oct 2024 15:22:18 +0200 Subject: [PATCH 2/2] EgtExecutor : - aggiunto un parametro alla ExeCreateSurfBzSwept. --- EXeExecutor.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/EXeExecutor.h b/EXeExecutor.h index 4708373..168435a 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -389,7 +389,8 @@ EXE_EXPORT int ExeCreateSurfBzByRevolve( int nParentId, int nCrvId, EXE_EXPORT int ExeCreateSurfBzByPointCurve( int nParentId, int nCrvId, const Point3d& ptAx, bool bCapEnds, double dLinTol, int nRefType) ; EXE_EXPORT int ExeCreateSurfBzRuled( int nParentId, int nCrvId1, int nCrvId2, int nRuledType, bool bCapEnds, double dLinTol) ; EXE_EXPORT int ExeCreateSurfBzSkinned( int nParentId, const INTVECTOR& nCrvId1, bool bCapEnds, double dLinTol) ; -EXE_EXPORT int ExeCreateSurfBzSwept( int nParentId, int nSectId, int nGuideId, bool bCapEnds, double dLinTol) ; +EXE_EXPORT int ExeCreateSurfBzSwept( int nParentId, int nSectId, int nGuideId, const Vector3d& vtAx, + bool bCapEnds, double dLinTol, int nRefType) ; // GeomDB Create Volume EXE_EXPORT int ExeCreateVolZmap( int nParentId, const Point3d& ptIni, double dDimX,