From be544a434c06ae78bc591b6bff8deebf219554c7 Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Wed, 12 Aug 2020 08:31:21 +0000 Subject: [PATCH] Include : - aggiornamento prototipi. --- EGkCurveComposite.h | 1 + EGkSurfBezier.h | 21 +++++++++++++-------- EXeExecutor.h | 12 +++++++----- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/EGkCurveComposite.h b/EGkCurveComposite.h index 539c7c8..3447694 100644 --- a/EGkCurveComposite.h +++ b/EGkCurveComposite.h @@ -52,6 +52,7 @@ class __declspec( novtable) ICurveComposite : public ICurve virtual bool ArcsBezierCurvesToArcsPerpExtr( double dLinTol, double dAngTolDeg) = 0 ; virtual bool MergeCurves( double dLinTol, double dAngTolDeg, bool bStartEnd = true, bool bNeedSameProp = false) = 0 ; virtual bool RemoveUndercutOnY( double dLinTol, double dAngTolDeg) = 0 ; + virtual bool IsAPoint( void) const = 0 ; virtual bool IsACircle( double dLinTol, Point3d& ptCen, Vector3d& vtN, double& dRad, bool& bCCW) const = 0 ; virtual bool SetCurveTempProp( int nCrv, int nProp) = 0 ; virtual bool GetCurveTempProp( int nCrv, int& nProp) const = 0 ; diff --git a/EGkSurfBezier.h b/EGkSurfBezier.h index 2151e8e..3ed53c8 100644 --- a/EGkSurfBezier.h +++ b/EGkSurfBezier.h @@ -17,36 +17,41 @@ #include "/EgtDev/Include/EgtPointerOwner.h" class PolyLine ; -class ICurveBezier ; +class ICurveComposite ; class ISurfTriMesh ; //---------------------------------------------------------------------------- class __declspec( novtable) ISurfBezier : public ISurf { + public : + enum Side { FROM_MINUS = -1, // da valori inferiori del parametro + FROM_PLUS = 1} ; // da valori superiori del parametro public : // IGeoObj ISurfBezier* Clone( void) const override = 0 ; public : virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ; - virtual bool Init( int nDegU, int nDegV, bool bIsRational) = 0 ; + virtual bool Init( int nDegU, int nDegV, int nSpanU, int nSpanV, bool bIsRational) = 0 ; virtual bool SetControlPoint( int nIndU, int nIndV, const Point3d& ptCtrl) = 0 ; virtual bool SetControlPoint( int nInd, const Point3d& ptCtrl) = 0 ; virtual bool SetControlPoint( int nIndU, int nIndV, const Point3d& ptCtrl, double dW) = 0 ; virtual bool SetControlPoint( int nInd, const Point3d& ptCtrl, double dW) = 0 ; - virtual bool GetInfo( int& nDegU, int& nDegV, bool& bIsRat, bool& bTrimmed) const = 0 ; + virtual bool GetInfo( int& nDegU, int& nDegV, int& nSpanU, int& nSpanV, bool& bIsRat, bool& bTrimmed) const = 0 ; virtual const Point3d& GetControlPoint( int nIndU, int nIndV, bool* pbOk) const = 0 ; virtual const Point3d& GetControlPoint( int nInd, bool* pbOk) const = 0 ; virtual double GetControlWeight( int nIndU, int nIndV, bool* pbOk) const = 0 ; virtual double GetControlWeight( int nInd, bool* pbOk) const = 0 ; virtual bool IsAPoint( void) const = 0 ; - virtual bool GetPointD1D2( double dU, double dV, Point3d& ptPos, + virtual bool GetPointD1D2( double dU, double dV, Side nUs, Side nVs, + Point3d& ptPos, Vector3d* pvtDerU = nullptr, Vector3d* pvtDerV = nullptr, Vector3d* pvtDerUU = nullptr, Vector3d* pvtDerVV = nullptr, Vector3d* pvtDerUV = nullptr) const = 0 ; - virtual bool GetPointNrmD1D2( double dU, double dV, Point3d& ptPos, Vector3d& vtN, + virtual bool GetPointNrmD1D2( double dU, double dV, Side nUs, Side nVs, + Point3d& ptPos, Vector3d& vtN, Vector3d* pvtDerU = nullptr, Vector3d* pvtDerV = nullptr, Vector3d* pvtDerUU = nullptr, Vector3d* pvtDerVV = nullptr, Vector3d* pvtDerUV = nullptr) const = 0 ; - virtual ICurveBezier* GetCurveOnU( double dV) const = 0 ; - virtual ICurveBezier* GetCurveOnV( double dU) const = 0 ; - virtual ICurve* GetLoop( int nLoop) const = 0 ; // nLoop 0-based (1°esterno, successivi interni) + virtual ICurveComposite* GetCurveOnU( double dV) const = 0 ; + virtual ICurveComposite* GetCurveOnV( double dU) const = 0 ; + virtual ICurveComposite* GetLoop( int nLoop) const = 0 ; // nLoop 0-based (1°esterno, successivi interni) virtual bool GetControlCurveOnU( int nIndV, PolyLine& plCtrlU) const = 0 ; virtual bool GetControlCurveOnV( int nIndU, PolyLine& plCtrlV) const = 0 ; virtual const ISurfTriMesh* GetAuxSurf( void) const = 0 ; diff --git a/EXeExecutor.h b/EXeExecutor.h index 3df5d2e..67244c9 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -289,8 +289,8 @@ EXE_EXPORT int ExeCreateSurfTmRuled( int nParentId, int nPtOrCrvId1, int nPtOrC EXE_EXPORT int ExeCreateSurfTmByTriangles( int nParentId, const INTVECTOR& vIds, bool bErase) ; EXE_EXPORT int ExeCreateSurfTmBySewing( int nParentId, const INTVECTOR& vIds, bool bErase) ; EXE_EXPORT int ExeCreateSurfTmByVolZmap( int nParentId, int nZmapId, int nPart) ; -EXE_EXPORT int ExeCreateSurfBezier( int nParentId, int nDegU, int nDegV, const PNTVECTOR& vPnt, int nRefType) ; -EXE_EXPORT int ExeCreateSurfBezierRational( int nParentId, int nDegU, int nDegV, const PNTUVECTOR& vPntW, int nRefType) ; +EXE_EXPORT int ExeCreateSurfBezier( int nParentId, int nDegU, int nDegV, int nSpanU, int nSpanV, const PNTVECTOR& vPnt, int nRefType) ; +EXE_EXPORT int ExeCreateSurfBezierRational( int nParentId, int nDegU, int nDegV, int nSpanU, int nSpanV, const PNTUVECTOR& vPntW, int nRefType) ; // GeomDB Create Volume EXE_EXPORT int ExeCreateVolZmap( int nParentId, const Point3d& ptIni, double dDimX, @@ -602,11 +602,13 @@ EXE_EXPORT bool ExeSurfTmGetFacetBBox( int nId, int nFacet, int nFlag, BBox3d& b EXE_EXPORT bool ExeSurfTmGetFacetBBoxGlob( int nId, int nFacet, int nFlag, BBox3d& b3Box) ; EXE_EXPORT bool ExeSurfTmGetFacetBBoxRef( int nId, int nFacet, int nFlag, const Frame3d& frRef, BBox3d& b3Box) ; EXE_EXPORT bool ExeSurfBezierGetPoint( int nSurfId, double dU, double dV, int nRefId, Point3d& ptP) ; -EXE_EXPORT bool ExeSurfBezierGetPointD1( int nSurfId, double dU, double dV, int nRefId, Point3d& ptP, Vector3d& vtDerU, Vector3d& vtDerV) ; -EXE_EXPORT bool ExeSurfBezierGetPointNrmD1( int nSurfId, double dU, double dV, int nRefId, Point3d& ptP, Vector3d& vtN, Vector3d& vtDerU, Vector3d& vtDerV) ; +EXE_EXPORT bool ExeSurfBezierGetPointD1( int nSurfId, double dU, double dV, int nUsd, int nVsd, int nRefId, + Point3d& ptP, Vector3d& vtDerU, Vector3d& vtDerV) ; +EXE_EXPORT bool ExeSurfBezierGetPointNrmD1( int nSurfId, double dU, double dV, int nUsd, int nVsd, int nRefId, + Point3d& ptP, Vector3d& vtN, Vector3d& vtDerU, Vector3d& vtDerV) ; EXE_EXPORT int ExeSurfBezierGetCurveU( int nSurfId, double dV, int nDestGrpId) ; EXE_EXPORT int ExeSurfBezierGetCurveV( int nSurfId, double dU, int nDestGrpId) ; -EXE_EXPORT bool ExeSurfBezierGetInfo( int nSurfId, int& nDegU, int& nDegV, bool& bIsRat, bool& bTrimmed) ; +EXE_EXPORT bool ExeSurfBezierGetInfo( int nSurfId, int& nDegU, int& nDegV, int& nSpanU, int& nSpanV, bool& bIsRat, bool& bTrimmed) ; EXE_EXPORT int ExeSurfBezierGetControlCurveU( int nSurfId, int nIndV, int nDestGrpId) ; EXE_EXPORT int ExeSurfBezierGetControlCurveV( int nSurfId, int nIndU, int nDestGrpId) ; EXE_EXPORT int ExeExtractSurfBezierLoops( int nId, int nDestGrpId, int* pnCount) ;