diff --git a/EGkIntersCurves.h b/EGkIntersCurves.h index eee98b2..de793d0 100644 --- a/EGkIntersCurves.h +++ b/EGkIntersCurves.h @@ -103,7 +103,11 @@ class IntersCurveCurve //! Indica la presenza di intersezioni con sovrapposizioni EGK_EXPORT bool GetOverlaps( void) ; //! Restituisce il numero di intersezioni (intersezioni doppie coincidenti e sovrapposte contano uno) - EGK_EXPORT int GetNumInters( void) ; + EGK_EXPORT int GetIntersCount( void) ; + //! Restituisce il numero di intersezioni in cui la curva si attraversa + EGK_EXPORT int GetCrossIntersCount( void) ; + //! Restituisce il numero di intersezioni in cui la curva si attraversa o si sovrappone + EGK_EXPORT int GetCrossOrOverlapIntersCount( void) ; //! Restituisce informazioni sull'intersezione di indice nInd ( 0 based) EGK_EXPORT bool GetIntCrvCrvInfo( int nInd, IntCrvCrvInfo& aInfo) ; //! Restituisce il punto di intersezione pił vicino al punto passato @@ -131,7 +135,7 @@ class IntersCurveCurve private : bool m_bOverlaps ; - int m_nNumInters ; + int m_nIntersCount ; ICCIVECTOR m_Info ; const ICurve* m_pCurve[2] ; // puntatori alle curve } ; @@ -149,8 +153,10 @@ class SelfIntersCurve EGK_EXPORT bool GetOverlaps( void) ; //! Restituisce il numero di auto-intersezioni (intersezioni doppie coincidenti e sovrapposte contano uno) EGK_EXPORT int GetIntersCount( void) ; - //! Restituisce il numero di auto-intersezioni in cui la curva si attraversa (intersezioni doppie coincidenti e sovrapposte contano uno) + //! Restituisce il numero di auto-intersezioni in cui la curva si attraversa EGK_EXPORT int GetCrossIntersCount( void) ; + //! Restituisce il numero di auto-intersezioni in cui la curva si attraversa o si sovrappone + EGK_EXPORT int GetCrossOrOverlapIntersCount( void) ; //! Restituisce informazioni sull'auto-intersezione di indice nInd ( 0 based) EGK_EXPORT bool GetIntCrvCrvInfo( int nInd, IntCrvCrvInfo& aInfo) ; //! Restituisce il punto di auto-intersezione pił vicino al punto passato diff --git a/EGkIntervals.h b/EGkIntervals.h index 44781c5..96c9f5c 100644 --- a/EGkIntervals.h +++ b/EGkIntervals.h @@ -34,10 +34,10 @@ class Intervals EGK_EXPORT void Reset( void) ; EGK_EXPORT void Set( double dMin, double dMax) ; EGK_EXPORT void Add( double dMin, double dMax) ; - EGK_EXPORT void Remove( double dMin, double dMax) ; - EGK_EXPORT void Union( const Intervals& Other) ; - EGK_EXPORT void Intersection( const Intervals& Other) ; - EGK_EXPORT void Difference( const Intervals& Other) ; + EGK_EXPORT void Subtract( double dMin, double dMax) ; + EGK_EXPORT void Add( const Intervals& Other) ; + EGK_EXPORT void Subtract( const Intervals& Other) ; + EGK_EXPORT void Intersect( const Intervals& Other) ; EGK_EXPORT bool IsEmpty( void) const { return m_lInts.empty() ; } EGK_EXPORT int GetCount( void) const diff --git a/EGkSurfFlatRegion.h b/EGkSurfFlatRegion.h index ce41ee4..a38d924 100644 --- a/EGkSurfFlatRegion.h +++ b/EGkSurfFlatRegion.h @@ -28,6 +28,9 @@ class __declspec( novtable) ISurfFlatRegion : public ISurf virtual bool AddExtLoop( ICurve* pCrv) = 0 ; virtual bool AddIntLoop( const ICurve& cCrv) = 0 ; virtual bool AddIntLoop( ICurve* pCrv) = 0 ; + virtual bool Add( const ISurfFlatRegion& Other) = 0 ; + virtual bool Subtract( const ISurfFlatRegion& Other) = 0 ; + virtual bool Intersect( const ISurfFlatRegion& Other) = 0 ; virtual const Vector3d& GetNormVersor( void) const = 0 ; virtual int GetChunkCount( void) const = 0 ; virtual int GetLoopCount( int nChunk) const = 0 ; diff --git a/EXeExecutor.h b/EXeExecutor.h index 1fb4d5f..640aa31 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -369,6 +369,9 @@ EXE_EXPORT bool ExeMergeCurvesInCurveCompo( int nId, double dLinTol) ; // GeomDb Surf Modify EXE_EXPORT bool ExeInvertSurface( const INTVECTOR& vIds) ; EXE_EXPORT int ExeExplodeSurface( int nId, int* pnCount) ; +EXE_EXPORT bool ExeSurfFrAdd( int nId1, int nId2) ; +EXE_EXPORT bool ExeSurfFrSubtract( int nId1, int nId2) ; +EXE_EXPORT bool ExeSurfFrIntersect( int nId1, int nId2) ; EXE_EXPORT int ExeExtractSurfFrChunkLoops( int nId, int nChunk, int nDestGrpId, int* pnCount) ; EXE_EXPORT int ExeExtractSurfTmFacetLoops( int nId, int nFacet, int nDestGrpId, int* pnCount) ;