Files
EgtGeomKernel/GdbNode.h
T

62 lines
2.2 KiB
C++

//----------------------------------------------------------------------------
// EgalTech 2013-2013
//----------------------------------------------------------------------------
// File : GdbNode.h Data : 28.11.13 Versione : 1.4a2
// Contenuto : Dichiarazione della classe GdbNode.
//
//
//
// Modifiche : 28.11.13 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include <string>
#include "/EgtDev/Include/EGkGdbConst.h"
#include "/EgtDev/Include/EGnScan.h"
#include "/EgtDev/Include/EGkPoint3d.h"
class GdbGroup ;
class IdManager ;
//----------------------------------------------------------------------------
class GdbNode
{
public :
virtual ~GdbNode( void) {}
virtual GdbNode* Clone( int nId, IdManager& IdMgr) const = 0 ;
virtual bool Save( std::ostream& osOut) const = 0 ;
virtual bool Load( const std::string& sType, Scanner& TheScanner, int& nParentId) = 0 ;
virtual bool Translate( const Vector3d& vtMove) = 0 ;
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, double dSinAng) = 0 ;
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dAngRad) = 0 ;
virtual bool Scale( const Point3d& ptCen, double dCoeffX, double dCoeffY, double dCoeffZ) = 0 ;
//virtual bool Mirror( const Point3d& ptOn, const Vector3d& vtNorm) = 0 ;
public :
GdbNode( void) ;
GdbNode* GetNext( void) { return m_pNext ; }
const GdbNode* GetNext( void) const { return m_pNext ; }
GdbNode* GetPrev( void) { return m_pPrev ; }
const GdbNode* GetPrev( void) const { return m_pPrev ; }
GdbGroup* GetParent( void) { return m_pParent ; }
const GdbGroup* GetParent( void) const { return m_pParent ; }
int GetParentId( void) const ;
bool AddTail( GdbGroup* pParent) ;
bool AddHead( GdbGroup* pParent) ;
bool InsertAfter( GdbNode* pRef) ;
bool InsertBefore( GdbNode* pRef) ;
bool Remove( void) ;
public :
int m_nId ;
private :
GdbNode* m_pNext ;
GdbNode* m_pPrev ;
GdbGroup* m_pParent ;
} ;