diff --git a/EGkCurvePointDiffGeom.h b/EGkCurvePointDiffGeom.h index d1e7afd..6255582 100644 --- a/EGkCurvePointDiffGeom.h +++ b/EGkCurvePointDiffGeom.h @@ -55,7 +55,7 @@ ThereIsDiscontinuity( CrvPointDiffGeom& oDiffGp, CrvPointDiffGeom& oDiffGs) ( oDiffGs.nStatus & CrvPointDiffGeom::POS) == 0) return false ; // verifico che il parametro e i punti coincidano - if ( fabs ( oDiffGp.dU - oDiffGs.dU) > EPS_ZERO || + if ( fabs ( oDiffGp.dU - oDiffGs.dU) > EPS_PARAM || ! AreSamePointApprox( oDiffGp.ptP, oDiffGs.ptP)) return false ; // verifico che siano definite le tangenti diff --git a/EGkGeoConst.h b/EGkGeoConst.h index 849d499..b0d4c90 100644 --- a/EGkGeoConst.h +++ b/EGkGeoConst.h @@ -21,8 +21,8 @@ const double ONEINCH = 25.4 ; // epsilon per lunghezze, versori e parametri const double EPS_SMALL = 1e-3 ; -const double EPS_ZERO = 1e-7 ; -const double EPS_PARAM = 1e-7 ; +const double EPS_ZERO = 1e-8 ; +const double EPS_PARAM = 1e-8 ; const double SPAN_PARAM = 1.0 ; // intervallo di curva o superficie semplici // infinito per lunghezze diff --git a/EGkIntervals.h b/EGkIntervals.h index 96c9f5c..b7baa85 100644 --- a/EGkIntervals.h +++ b/EGkIntervals.h @@ -13,6 +13,7 @@ #pragma once +#include #include //----------------------- Macro per import/export ---------------------------- @@ -28,7 +29,9 @@ class Intervals { public : EGK_EXPORT Intervals( void) - : m_Iter( m_lInts.end()) {} + : m_dToler( EPS_SMALL), m_Iter( m_lInts.end()) {} + EGK_EXPORT Intervals( double dToler) + : m_dToler( std::max( dToler, EPS_ZERO)), m_Iter( m_lInts.end()) {} public : EGK_EXPORT void Reset( void) ; @@ -52,6 +55,7 @@ class Intervals typedef INTERVLIST::const_iterator INTL_CINT ; // iteratore costante a lista di intervalli private : + double m_dToler ; INTERVLIST m_lInts ; INTL_CINT m_Iter ; } ; diff --git a/EInAPI.h b/EInAPI.h index 97e441e..ac29032 100644 --- a/EInAPI.h +++ b/EInAPI.h @@ -437,7 +437,7 @@ EIN_EXPORT BOOL __stdcall EgtPackPart( int nId, double dXmin, double dYmin, EIN_EXPORT BOOL __stdcall EgtPackCluster( int nId[], int nCount, double dXmin, double dYmin, double dXmax, double dYmax, double dOffs, BOOL bBottomUp) ; EIN_EXPORT BOOL __stdcall EgtGetClusterBBoxGlob( int nId[], int nCount, double ptMin[3], double ptMax[3]) ; -EIN_EXPORT BOOL __stdcall EgtMoveCluster( int nId[], int nCount, const double vtMove[3], +EIN_EXPORT BOOL __stdcall EgtMoveCluster( int nId[], int nCount, double vtMove[3], double dXmin, double dYmin, double dXmax, double dYmax, double dOffs) ; // Machining diff --git a/EXeExecutor.h b/EXeExecutor.h index 8622e0e..c2846e0 100644 --- a/EXeExecutor.h +++ b/EXeExecutor.h @@ -446,7 +446,7 @@ EXE_EXPORT bool ExePackPart( int nId, double dXmin, double dYmin, EXE_EXPORT bool ExePackCluster( const INTVECTOR& vIds, double dXmin, double dYmin, double dXmax, double dYmax, double dOffs, bool bBottomUp) ; EXE_EXPORT bool ExeGetClusterBBoxGlob( const INTVECTOR& vIds, BBox3d& b3Box) ; -EXE_EXPORT bool ExeMoveCluster( const INTVECTOR& vIds, const Vector3d& vtMove, +EXE_EXPORT bool ExeMoveCluster( const INTVECTOR& vIds, Vector3d& vtMove, double dXmin, double dYmin, double dXmax, double dYmax, double dOffs) ; // Machining