//---------------------------------------------------------------------------- // EgalTech 2015-2025 //---------------------------------------------------------------------------- // File : EGkOffsetCurve.h Data : 08.04.25 Versione : 2.7d1 // Contenuto : Dichiarazione classe per offset di ICurve. // // // Modifiche : 23.09.15 DS Creazione modulo. // 24.06.19 DS Agg. GetShorterCurve. // 08.04.25 SP Agg. GetPointOffset. // //---------------------------------------------------------------------------- #pragma once #include "/EgtDev/Include/EGkCurve.h" //----------------------- Macro per import/export ---------------------------- #undef EGK_EXPORT #if defined( I_AM_EGK) // da definirsi solo nella DLL #define EGK_EXPORT __declspec( dllexport) #else #define EGK_EXPORT __declspec( dllimport) #endif //---------------------------------------------------------------------------- class OffsetCurve { public : EGK_EXPORT OffsetCurve(): m_dLinTol( 10 * EPS_SMALL) {} ; EGK_EXPORT OffsetCurve( double dLinTol) : m_dLinTol( dLinTol) {} ; EGK_EXPORT ~OffsetCurve( void) ; public : EGK_EXPORT bool Reset( void) ; EGK_EXPORT bool Make( const ICurve* pCrv, double dDist, int nType) ; EGK_EXPORT int GetCurveCount( void) { return int( m_CrvLst.size()) ; } EGK_EXPORT ICurve* GetCurve( void) ; EGK_EXPORT ICurve* GetLongerCurve( void) ; EGK_EXPORT ICurve* GetShorterCurve( void) ; EGK_EXPORT bool GetPointOffset( Point3d& ptOffs, Vector3d& vtOut) ; EGK_EXPORT double GetLinTol( void) const { return m_dLinTol ; } EGK_EXPORT void SetLinTol( double dTol) { m_dLinTol = dTol ; } private : ICURVEPLIST m_CrvLst ; Point3d m_ptOffs = P_INVALID ; Vector3d m_vtOut = V_INVALID ; double m_dLinTol ; } ;