Files
EgtGeomKernel/PointsPCA.h
T
Dario Sassi 77e74ccf4e EgtGeomKernel 1.5h3 :
- aggiunta IsFlat a tutte le Curve 
- aggiunta ApproxWithArcs a tutte le Curve 
- aggiunto oggetto PolyArc (raccolta ordinata di linee e archi con bulge)
- aggiunto oggetto PointsPCA per stima componenti principali di un insieme di punti
- FromSpheriical e FromPolar di Vector3d sono diventati funzioni e aggiunto FromUprightOrtho
- aggiunte Invert e a Vector3d.
2014-08-15 17:36:08 +00:00

42 lines
1.4 KiB
C++

//----------------------------------------------------------------------------
// 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/EGkFrame3d.h"
#include "/EgtDev/Include/EGkPlane3d.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
} ;