//---------------------------------------------------------------------------- // EgalTech 2014-2015 //---------------------------------------------------------------------------- // File : PolygonPlane.h Data : 23.02.15 Versione : 1.6b7 // Contenuto : Dichiarazione della classe PolygonPlane. // // // // Modifiche : 12.08.14 DS Creazione modulo. // 23.02.15 DS Aggiunta gestione centro geometrico (centroid). // //---------------------------------------------------------------------------- #pragma once #include "/EgtDev/Include/EGkPlane3d.h" //---------------------------------------------------------------------------- class PolygonPlane { public : PolygonPlane( void) : m_nPntNbr( -1), m_dLenN( 0) {} void Reset( void) { m_nPntNbr = -1 ; m_dLenN = 0 ; } void AddPoint( const Point3d& ptP) ; bool GetCentroid( Point3d& ptCen) ; bool GetNormal( Vector3d& vtN) ; bool GetPlane( Plane3d& plPlane) ; bool GetArea( double& dArea) ; private : bool Finalize( void) ; private : int m_nPntNbr ; // numero punti aggiunti double m_dLenN ; // lunghezza della normale Point3d m_ptFirst ; // primo punto aggiunto Point3d m_ptLast ; // ultimo punto aggiunto Vector3d m_vtN ; // versore normale Point3d m_ptMid ; // media dei punti double m_dSXy, m_dSXz ; // momenti statici dell'area proiettata sul piano yz (perp. a X) double m_dSYz, m_dSYx ; // momenti statici dell'area proiettata sul piano zx (perp. a Y) double m_dSZx, m_dSZy ; // momenti statici dell'area proiettata sul piano xy (perp. a Z) } ;