Files
EgtGeomKernel/GdbGroup.h
T
2014-01-16 22:02:41 +00:00

66 lines
2.4 KiB
C++

//----------------------------------------------------------------------------
// EgalTech 2013-2013
//----------------------------------------------------------------------------
// File : GdbGroup.h Data : 28.11.13 Versione : 1.4a2
// Contenuto : Dichiarazione della classe GdbGroup.
//
//
//
// Modifiche : 28.11.13 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include <string>
#include "/EgtDev/Include/EGkGeoObj.h"
#include "GeoFrame3d.h"
#include "GdbNode.h"
//----------------------------------------------------------------------------
class GdbGroup : public GdbNode
{
friend class GdbNode ;
public :
virtual ~GdbGroup( void) ;
virtual GdbGroup* Clone( int nId, IdManager& IdMgr) const ;
virtual bool Save( std::ostream& osOut) const ;
virtual bool Load( const std::string& sType, Scanner& TheScanner, int& nParentId) ;
virtual bool GetLocalBBox( BBox3d& b3Loc) const ;
virtual bool GetBBox( const Frame3d& frRef, BBox3d& b3Ref) const ;
virtual bool Translate( const Vector3d& vtMove) ;
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, double dSinAng) ;
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dAngDeg)
{ double dAngRad = dAngDeg * DEGTORAD ;
return Rotate( ptAx, vtAx, cos( dAngRad), sin( dAngRad)) ; }
virtual bool Scale( const Point3d& ptCen, double dCoeffX, double dCoeffY, double dCoeffZ) ;
public :
GdbGroup( void) ;
bool Clear( void) ;
void NodeCountInc( void) { ++ m_nNodeCount ; }
void NodeCountDec( void) { -- m_nNodeCount ; }
int GetNodeCount( void) const { return m_nNodeCount ; }
GdbNode* GetFirstNode( void) { return m_pFirstNode ; }
const GdbNode* GetFirstNode( void) const { return m_pFirstNode ; }
GdbNode* GetLastNode( void) { return m_pLastNode ; }
const GdbNode* GetLastNode( void) const { return m_pLastNode ; }
public :
static const std::string& GetKey( void) { static std::string s_sKey = "A_GRP" ; return s_sKey ; }
public :
bool GetGlobFrame( Frame3d& frGlob) ;
public :
GeoFrame3d m_gfrFrame ;
private :
int m_nNodeCount ;
GdbNode* m_pFirstNode ;
GdbNode* m_pLastNode ;
} ;