a0244abf46
- aggiornamento prototipi - aggiunti prototipi per RotationMinimazingFrame e RotationXplaneFrame.
51 lines
1.7 KiB
C++
51 lines
1.7 KiB
C++
//----------------------------------------------------------------------------
|
|
// EgalTech 2024-2024
|
|
//----------------------------------------------------------------------------
|
|
// File : EGkRotationMinimizingFrame.h Data : 05.04.24 Versione : 2.6d1
|
|
// Contenuto : Dichiarazione della classe RotationMinimizingFrame.
|
|
//
|
|
//
|
|
//
|
|
// Modifiche : 05.04.24 RE Creazione modulo.
|
|
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
|
|
#include "/EgtDev/Include/EGkCurve.h"
|
|
#include "/EgtDev/Include/EGkGeoCollection.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 EGK_EXPORT RotationMinimizingFrame
|
|
{
|
|
public :
|
|
RotationMinimizingFrame( void)
|
|
: m_pCrv( nullptr), m_Frame0() {}
|
|
~RotationMinimizingFrame( void)
|
|
{ Clear() ; }
|
|
bool Set( const ICurve* pCrv, const Frame3d& fr_Start) ;
|
|
|
|
public :
|
|
bool GetFramesByStep( double dStep, bool bUniform, FRAME3DVECTOR& vRMFrames) ;
|
|
bool GetFramesBySplit( int nIntervals, FRAME3DVECTOR& vRMFrames) ;
|
|
bool GetFramesByTolerance( double dTol, FRAME3DVECTOR& vRMFrames) ;
|
|
|
|
private :
|
|
bool Clear( void) ;
|
|
bool IsValid( void) ;
|
|
bool GetFrameAtParam( const Frame3d& frAct, const double dParNext, Frame3d& frNext) ;
|
|
|
|
private :
|
|
ICurve* m_pCrv ; // curva per il calcolo del rotation Xplane frame
|
|
Frame3d m_Frame0 ; // frame iniziale della curva
|
|
} ;
|