8f83a54310
- modifica solo estetica.
50 lines
1.9 KiB
C++
50 lines
1.9 KiB
C++
//----------------------------------------------------------------------------
|
|
// 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 ;
|
|
} ; |