1b85e111dc
- aggiunto calcolo baricentro di Curve - migliorata gestione richiesta nuovo Id - aggiunta intersezione linea-piano e linea-triangolo - corretto errore in PointGrid3d con 1 solo punto (non faceva alcunchè) - aggiunte funzioni di accesso a dati di SurfTM.
46 lines
1.8 KiB
C++
46 lines
1.8 KiB
C++
//----------------------------------------------------------------------------
|
|
// 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)
|
|
} ; |