diff --git a/EGkCurve.h b/EGkCurve.h index d1f815e..9c47580 100644 --- a/EGkCurve.h +++ b/EGkCurve.h @@ -41,7 +41,7 @@ class __declspec( novtable) ICurve : public IGeoObj OFF_FORCE_OPEN = 8, // forza a aperto anche se chiuso (in or ...) OFF_NO_VERTICAL = 16} ;// vieta linee perpendicolari al piano di offset (in or ...) public : // IGeoObj - virtual ICurve* Clone( void) const = 0 ; + ICurve* Clone( void) const override = 0 ; public : virtual bool IsSimple( void) const = 0 ; virtual bool IsClosed( void) const = 0 ; diff --git a/EGkCurveArc.h b/EGkCurveArc.h index 4dffcbe..6e7d4fc 100644 --- a/EGkCurveArc.h +++ b/EGkCurveArc.h @@ -18,6 +18,8 @@ //---------------------------------------------------------------------------- class __declspec( novtable) ICurveArc : public ICurve { + public : // IGeoObj + ICurveArc* Clone( void) const override = 0 ; public : virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ; virtual bool Set( const Point3d& ptCen, const Vector3d& vtN, double dRad, diff --git a/EGkCurveBezier.h b/EGkCurveBezier.h index b7438cd..8231cba 100644 --- a/EGkCurveBezier.h +++ b/EGkCurveBezier.h @@ -20,6 +20,8 @@ class ICurveArc ; //---------------------------------------------------------------------------- class __declspec( novtable) ICurveBezier : public ICurve { + public : // IGeoObj + ICurveBezier* Clone( void) const override = 0 ; public : virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ; virtual bool Init( int nDeg, bool bIsRational) = 0 ; diff --git a/EGkCurveComposite.h b/EGkCurveComposite.h index fcea436..30a0e93 100644 --- a/EGkCurveComposite.h +++ b/EGkCurveComposite.h @@ -18,6 +18,8 @@ //---------------------------------------------------------------------------- class __declspec( novtable) ICurveComposite : public ICurve { + public : // IGeoObj + ICurveComposite* Clone( void) const override = 0 ; public : virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ; virtual bool Clear( void) = 0 ; diff --git a/EGkCurveLine.h b/EGkCurveLine.h index 5b7feec..e2b3388 100644 --- a/EGkCurveLine.h +++ b/EGkCurveLine.h @@ -18,6 +18,8 @@ //---------------------------------------------------------------------------- class __declspec( novtable) ICurveLine : public ICurve { + public : // IGeoObj + ICurveLine* Clone( void) const override = 0 ; public : virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ; virtual bool Set( const Point3d& ptStart, const Point3d& ptEnd) = 0 ; diff --git a/EGkPlane3d.h b/EGkPlane3d.h index 195c222..363c89d 100644 --- a/EGkPlane3d.h +++ b/EGkPlane3d.h @@ -87,6 +87,13 @@ SetPlane( const Point3d& ptP, const Vector3d& vtN, Plane3d& plPlane) return true ; } +//----------------------------------------------------------------------------- +inline double +DistPointPlane( const Point3d& ptP, const Plane3d& plPlane) +{ + return ((( ptP - ORIG) * plPlane.vtN) - plPlane.dDist) ; +} + //----------------------------------------------------------------------------- inline bool PointInPlaneApprox( const Point3d& ptP, const Plane3d& plPlane) diff --git a/EGkSurf.h b/EGkSurf.h index eee7c55..346d9bc 100644 --- a/EGkSurf.h +++ b/EGkSurf.h @@ -18,6 +18,8 @@ //---------------------------------------------------------------------------- class __declspec( novtable) ISurf : public IGeoObj { + public : // IGeoObj + ISurf* Clone( void) const override = 0 ; public : virtual bool IsSimple( void) const = 0 ; virtual bool IsClosed( void) const = 0 ; diff --git a/EGkSurfFlatRegion.h b/EGkSurfFlatRegion.h index d693544..16270b3 100644 --- a/EGkSurfFlatRegion.h +++ b/EGkSurfFlatRegion.h @@ -21,6 +21,8 @@ class ISurfTriMesh ; //---------------------------------------------------------------------------- class __declspec( novtable) ISurfFlatRegion : public ISurf { + public : // IGeoObj + ISurfFlatRegion* Clone( void) const override = 0 ; public : virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ; virtual bool Clear( void) ; diff --git a/EGkSurfTriMesh.h b/EGkSurfTriMesh.h index 8fdbe3d..e71cba3 100644 --- a/EGkSurfTriMesh.h +++ b/EGkSurfTriMesh.h @@ -20,10 +20,14 @@ //---------------------------------------------------------------------------- const int SVT_NULL = - 1 ; // vertice o triangolo nullo const int SVT_DEL = - 2 ; // vertice o triangolo cancellato +inline bool IsValidSvt( int nSvt) + { return ( nSvt != SVT_NULL && nSvt != SVT_DEL) ; } //---------------------------------------------------------------------------- class __declspec( novtable) ISurfTriMesh : public ISurf { + public : // IGeoObj + ISurfTriMesh* Clone( void) const override = 0 ; public : virtual bool CopyFrom( const IGeoObj* pGObjSrc) = 0 ; virtual bool Init( int nNumVert, int nNumTria, int nNumFacet = 0) = 0 ; @@ -77,6 +81,7 @@ class __declspec( novtable) ISurfTriMesh : public ISurf virtual bool GetFacetNormal( int nF, Vector3d& vtN) const = 0 ; virtual bool GetFacetArea( int nF, double& dArea) const = 0 ; virtual ISurfTriMesh* CloneFacet( int nF) const = 0 ; + virtual bool Cut( const Plane3d& plPlane, bool bSaveOnEq) = 0 ; } ; //----------------------------------------------------------------------------- diff --git a/EXeExecutor.h b/EXeExecutor.h index ade99a3..487cd2c 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -458,6 +458,7 @@ EXE_EXPORT int ExeExtractSurfTmLoops( int nId, int nDestGrpId, int* pnCount) ; EXE_EXPORT int ExeGetSurfTmSilhouette( int nId, const Vector3d& vtDir, int nDestGrpId, int nRefType, int* pnCount) ; EXE_EXPORT int ExeExtractSurfTmFacetLoops( int nId, int nFacet, int nDestGrpId, int* pnCount) ; EXE_EXPORT int ExeCopySurfTmFacet( int nId, int nFacet, int nDestGrpId) ; +EXE_EXPORT bool ExeCutSurfTm( int nId, const Point3d& ptOn, const Vector3d& vtN, bool bSaveOnEq, int nRefType) ; // GeomDb Volume Modify EXE_EXPORT bool ExeVolZmapSetStdTool( int nId, const std::string& sToolName, double dLen, double dDiam, double dCornR) ;