//---------------------------------------------------------------------------- // 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 } ;