diff --git a/EGkSurfTriMesh.h b/EGkSurfTriMesh.h index ca0e9fb..6b9c714 100644 --- a/EGkSurfTriMesh.h +++ b/EGkSurfTriMesh.h @@ -119,7 +119,7 @@ class __declspec( novtable) ISurfTriMesh : public ISurf virtual bool Intersect( const ISurfTriMesh& Other) = 0 ; virtual bool Subtract( const ISurfTriMesh& Other) = 0 ; virtual bool GetSurfClassification( const ISurfTriMesh& ClassifierSurf, - INTVECTOR& vTriaIn, INTVECTOR& vTriaOut, INTVECTOR& vTriaOnP, INTVECTOR& vTriaOnM, INTVECTOR& vTriaIndef) = 0 ; + INTVECTOR& vTriaIn, INTVECTOR& vTriaOut, INTVECTOR& vTriaOnP, INTVECTOR& vTriaOnM, INTVECTOR& vTriaIndef) = 0 ; virtual bool CutWithOtherSurf( const ISurfTriMesh& CutterSurf, bool bInVsOut, bool bSaveOnEq) = 0 ; virtual bool Repair( double dMaxEdgeLen = MAX_EDGE_LEN_STD) = 0 ; virtual bool GetAllTriaOverlapBox( const BBox3d& b3Box, INTVECTOR& vT) const = 0 ; @@ -162,3 +162,8 @@ typedef std::vector CISURFTMPVECTOR ; // vettore di pu typedef std::vector ISURFTMPVECTOR ; // vettore di puntatori a ISurfTriMesh typedef std::list ISURFTMPLIST ; // lista di puntatori a ISurfTriMesh typedef std::vector> ISURFTMPOVECTOR ; // vettore di puntatori esclusivi a ISurfTriMesh + +//---------------------------------------------------------------------------- +// Funzioni per Offset +EGK_EXPORT ISurfTriMesh* CreateSurfTriMeshOffset( const ISurfTriMesh* pStm, double dOffs, double dLinTol) ; +EGK_EXPORT ISurfTriMesh* CreateSurfTriMeshesOffset( const CISURFTMPVECTOR& vStm, double dOffs, double dLinTol) ; \ No newline at end of file diff --git a/EGkVolZmap.h b/EGkVolZmap.h index bcd4e29..32a3c33 100644 --- a/EGkVolZmap.h +++ b/EGkVolZmap.h @@ -9,6 +9,7 @@ // Modifiche : 22.01.15 DS Creazione modulo. // 12.09.23 DS Aggiunto metodo IsTriDexel. // 09.03.24 DS Aggiunti SetShowEdges e GetShowEdges. +// 10.06.25 RE Aggiunte funzioni per Offset di superfici TriMesh chiuse // //---------------------------------------------------------------------------- @@ -30,10 +31,12 @@ class __declspec( novtable) IVolZmap : public IGeoObj virtual bool Create( const Point3d& ptO, double dDimX, double dDimY, double dDimZ, double dStep, bool bTriDex) = 0 ; virtual bool CreateEmpty( const Point3d& ptO, double dDimX, double dDimY, double dDimZ, double dStep, bool bTriDex) = 0 ; virtual bool CreateFromFlatRegion( const ISurfFlatRegion& Surf, double dDimZ, double dStep, bool bTriDex) = 0 ; - virtual bool CreateFromTriMesh( const ISurfTriMesh& Surf, double dStep, bool bTriDex) = 0 ; + virtual bool CreateFromTriMesh( const ISurfTriMesh& Surf, double dStep, bool bTriDex, double dExtraBox = 100 * EPS_SMALL) = 0 ; + virtual bool CreateFromTriMeshOffset( const CISURFTMPVECTOR& vSurf, double dOffs, double dTol) = 0 ; virtual int GetBlockCount( void) const = 0 ; virtual int GetBlockUpdatingCounter( int nBlock) const = 0 ; virtual bool GetBlockTriangles( int nBlock, TRIA3DEXVECTOR& vTria) const = 0 ; + virtual ISurfTriMesh* GetSurfTriMesh( void) const = 0 ; virtual bool GetEdges( ICURVEPOVECTOR& vpCurve) const = 0 ; virtual bool GetVolume( double& dVol) const = 0 ; virtual bool IsTriDexel( void) const = 0 ; @@ -89,6 +92,7 @@ class __declspec( novtable) IVolZmap : public IGeoObj virtual bool RemovePart( int nPart) = 0 ; virtual int GetPartMinDistFromPoint( const Point3d& ptP) const = 0 ; virtual bool AddSurfTm( const ISurfTriMesh* pStm) = 0 ; + virtual bool SubtractSurfTm( const ISurfTriMesh* pStm) = 0 ; virtual bool MakeUniform( double dToler) = 0 ; } ; diff --git a/EXeExecutor.h b/EXeExecutor.h index 633afd0..35e0243 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -427,6 +427,7 @@ EXE_EXPORT int ExeCreateVolZmapEmpty( int nParentId, const Point3d& ptIni, doub double dDimY, double dDimZ, double dPrec, bool bTriDex, int nRefType) ; EXE_EXPORT int ExeCreateVolZmapByRegionExtrusion( int nParentId, int nSfrId, double dDimZ, double dPrec, bool bTriDex) ; EXE_EXPORT int ExeCreateVolZmapFromSurfTm( int nParentId, int nStmId, double dPrec, bool bTriDex) ; +EXE_EXPORT int ExeCreateVolZmapFromSurfTmOffset( int nParentId, const INTVECTOR& vStmId, double dOffs, double dPrec) ; EXE_EXPORT bool ExeUpdateVolZmapByAddingSurfTm( int nVolZmapId, int nStmId) ; EXE_EXPORT bool ExeUniformVolZmap( int nVolZmapId, double dToler) ; @@ -693,6 +694,7 @@ EXE_EXPORT bool ExeCutSurfTmClosedCurve( int nSurfId, int nCurveId, bool bSaveOn EXE_EXPORT bool ExeSurfTmAdd( int nId1, int nId2, bool bTwoColors = false) ; EXE_EXPORT bool ExeSurfTmSubtract( int nId1, int nId2, bool bTwoColors = false) ; EXE_EXPORT bool ExeSurfTmIntersect( int nId1, int nId2, bool bTwoColors = false) ; +EXE_EXPORT int ExeSurfTmOffset( const INTVECTOR& vIds, double dOffs, double dLinTol, int nDestGrpId) ; EXE_EXPORT int ExeSurfTmSplit( int nId, int nSplitterId, int* pnCount) ; EXE_EXPORT bool ExeSurfTmCut( int nId, int nCutterId, bool bInVsOut, bool bSaveOnEq) ; EXE_EXPORT bool ExeSurfTmSubtractProjectedFacesOnFace( int nSurfId, int nFaceInd, int nDestGrpId,