//---------------------------------------------------------------------------- // EgalTech 2014-2014 //---------------------------------------------------------------------------- // File : PointsPCA.h Data : 12.08.14 Versione : 1.5h3 // Contenuto : Dichiarazione della classe PointsPCA. // // // // Modifiche : 12.08.14 DS Creazione modulo. // // //---------------------------------------------------------------------------- #pragma once #include "/EgtDev/Include/EGkPoint3d.h" #include "/EgtDev/Extern/Eigen/Dense" //---------------------------------------------------------------------------- class PointsPCA { public : PointsPCA( void) ; void AddPoint( const Point3d& ptP) ; int GetRank( void) ; bool GetCenter( Point3d& ptCen) ; bool GetPrincipalComponent( int nId, Vector3d& vtPC) ; private : bool Finalize( void) ; private : static const int MAX_RANK = 3 ; private : int m_nPntNbr ; // numero punti Point3d m_ptCen ; // baricentro Eigen::Matrix3d m_CovMat ; // matrice di covarianza int m_nRank ; // numero delle componenti principali (MAX_RANK = 3) Vector3d m_vtPC[MAX_RANK] ; // direzioni delle componenti principali } ;