Files
Include/EGkOffsetCurve3d.h
T
Daniele Bariletti 216173ca33 Include :
- spostate le funzioni di offset di categoria.
- aggiunta la funzione per l'offset 3d delle curve.
2026-06-15 08:40:52 +02:00

57 lines
2.1 KiB
C++

//----------------------------------------------------------------------------
// EgalTech 2026
//----------------------------------------------------------------------------
// File : EGkOffsetCurve3d.h Data : 10.06.26 Versione : 3.1f1
// Contenuto : Dichiarazione classe per offset di ICurve, per curve 3d.
//
//
// Modifiche : 10.06.26 DB Creazione modulo.
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkVector3d.h"
#include "/EgtDev/Include/EGkPolyLine.h"
#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 OffsetCurve3d
{
public :
enum AngType { ANG_STR = 1 , // angolo piatto ( quindi tratto in continuità col precedente)
ANG_CVEX = 2 , // su angolo convesso
ANG_CONC = 3 , // in angolo concavo
ANG_BEFORE_CONC = 4 , // adiacente ad angolo concavo
ANG_AFTER_CONC = 5 , // adiacente ad angolo concavo
ANG_SMOOTH_CONC = 6 // zona concava curva, senza spigolo netto
};
public :
EGK_EXPORT OffsetCurve3d(): m_dLinTol( 10 * EPS_SMALL) {} ;
EGK_EXPORT OffsetCurve3d( double dLinTol) : m_dLinTol( dLinTol) {} ;
EGK_EXPORT ~OffsetCurve3d( void) ;
public :
EGK_EXPORT bool Reset( void) ;
EGK_EXPORT bool Make( const PolyLine& PL, const VCT3DVECTOR& vOffDir, 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 double GetLinTol( void) const { return m_dLinTol ; }
EGK_EXPORT void SetLinTol( double dTol) { m_dLinTol = dTol ; }
private :
ICURVEPLIST m_CrvLst ;
double m_dLinTol ;
} ;