From 22c4c89a5bf9586cef8fb47fdec4736324b42cf6 Mon Sep 17 00:00:00 2001 From: Daniele Bariletti Date: Tue, 20 Feb 2024 12:29:50 +0100 Subject: [PATCH] Include : - aggiunta funzione per tagliare una superficie bezier con un piano. --- EGkSurfBezier.h | 7 ++++++- EXeExecutor.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/EGkSurfBezier.h b/EGkSurfBezier.h index 6ebf797..1fed870 100644 --- a/EGkSurfBezier.h +++ b/EGkSurfBezier.h @@ -36,7 +36,7 @@ class __declspec( novtable) ISurfBezier : public ISurf 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 SetTrimRegion( const ISurfFlatRegion& sfrTrimReg) = 0 ; + virtual bool SetTrimRegion( ISurfFlatRegion& sfrTrimReg, bool bIntersectOrSubtrct = true) = 0 ; virtual ISurfFlatRegion* GetTrimRegion( void) 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 ; @@ -59,6 +59,11 @@ class __declspec( novtable) ISurfBezier : public ISurf virtual bool GetControlCurveOnV( int nIndU, PolyLine& plCtrlV) const = 0 ; virtual const ISurfTriMesh* GetAuxSurf( void) const = 0 ; virtual bool GetLeaves ( std::vector>& vLeaves) const = 0 ; + virtual bool UnprojectPointFromStm( int nT, const Point3d& ptI, Point3d& ptSP, int nIL) const = 0 ; + virtual bool UnprojectPoint( const Point3d& pt3D, Point3d& ptParam) const = 0 ; + virtual ICurveComposite* UnprojectCurveFromStm( const ICurveComposite* pCC) const = 0 ; + virtual bool Cut( const Plane3d& plPlane, bool bSaveOnEq) = 0 ; // taglio la parte della superficie dalla parte positiva del versore del piano. + // Il booleano indica se tenere eventuali triangoli della trimesh ausiliaria che sono coplanari ed equiversi al piano di taglio } ; //----------------------------------------------------------------------------- diff --git a/EXeExecutor.h b/EXeExecutor.h index 0c3b990..a45d2a9 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -616,6 +616,7 @@ EXE_EXPORT bool ExeSurfTmRemoveFacet( int nId, int nFacet) ; EXE_EXPORT bool ExeSurfTmSwapFacets( int nId, int nFacet1, int nFacet2) ; EXE_EXPORT bool ExeSurfTmRemovePart( int nId, int nPart) ; EXE_EXPORT bool ExeCutSurfTmPlane( int nId, const Point3d& ptOn, const Vector3d& vtN, bool bSaveOnEq, int nRefType) ; +EXE_EXPORT bool ExeCutSurfBzPlane( int nId, const Point3d& ptOn, const Vector3d& vtN, bool bSaveOnEq, int nRefType) ; EXE_EXPORT bool ExeCutSurfTmClosedCurve( int nSurfId, int nCurveId, bool bSaveOnEq) ; EXE_EXPORT bool ExeSurfTmAdd( int nId1, int nId2, bool bTwoColors = false) ; EXE_EXPORT bool ExeSurfTmSubtract( int nId1, int nId2, bool bTwoColors = false) ;