diff --git a/EGkCurveLocal.h b/EGkCurveLocal.h index 84143db..30fdd61 100644 --- a/EGkCurveLocal.h +++ b/EGkCurveLocal.h @@ -45,6 +45,25 @@ class CurveLocal m_pCopy->LocToLoc( frCrv, frLoc) ; m_pCrv = m_pCopy ; } + CurveLocal( const ICurve* pCurve, const Frame3d& frCrv, const Frame3d& frLoc) + : m_pCrv( nullptr), m_pCopy( nullptr) + { // verifica dei parametri + if ( pCurve == nullptr || &frLoc == nullptr) + return ; + // assegno la curva originale + m_pCrv = pCurve ; + // se i riferimenti coincidono non devo fare altro + if ( AreSameFrame( frCrv, frLoc)) + return ; + // copio la curva e la porto in locale + m_pCopy = m_pCrv->Clone() ; + if ( m_pCopy == nullptr) { + m_pCrv = nullptr ; + return ; + } + m_pCopy->LocToLoc( frCrv, frLoc) ; + m_pCrv = m_pCopy ; + } CurveLocal( const CurveLocal& Other) : m_pCrv( nullptr), m_pCopy( nullptr) { // se non devo clonare