diff --git a/EgkCurveAux.h b/EgkCurveAux.h new file mode 100644 index 0000000..1729471 --- /dev/null +++ b/EgkCurveAux.h @@ -0,0 +1,53 @@ +//---------------------------------------------------------------------------- +// EgalTech 2014-2014 +//---------------------------------------------------------------------------- +// File : EgkCurveAux.h Data : 23.05.14 Versione : 1.5e9 +// Contenuto : Dichiarazione funzioni ausiliarie per ICurve. +// +// +// +// Modifiche : 23.05.14 DS Creazione modulo. +// +// +//---------------------------------------------------------------------------- + +#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 + +//---------------------------------------------------------------------------- +// Struttura dati per curva Nurbs +struct CNurbsData +{ + int nDeg ; // grado + bool bRat ; // flag di curva razionale (pesi non tutti unitari) + bool bPeriodic ; // flag per segnalare vettore dei nodi periodico + bool bClosed ; // flag di curva chiusa + bool bExtraKnotes ; // flag per segnalare presenza di nodi extra all'inizio e fine (totale 2) + DBLVECTOR vU ; // vettore dei nodi + PNTVECTOR vCP ; // vettore dei punti di controllo + DBLVECTOR vW ; // vettore dei pesi + + CNurbsData( void) : nDeg( 0), bRat( false), bPeriodic( false), bClosed( false), bExtraKnotes( false) {} +} ; + +//---------------------------------------------------------------------------- +// Trasforma un arco in una curva di Bezier semplice o composta +EGK_EXPORT bool ArcToBezierCurve( const ICurve* pArc, ICurve*& pCrvNew) ; + +//---------------------------------------------------------------------------- +// Rende canonica la rappresentazione della curva Nurbs +EGK_EXPORT bool NurbsCurveCanonicalize( CNurbsData& cnData) ; + +//---------------------------------------------------------------------------- +// Trasforma una curva Nurbs standard in una curva di Bezier semplice o composta +EGK_EXPORT bool NurbsToBezierCurve( const CNurbsData& cnData, ICurve*& pCrvNew) ;