62 lines
2.2 KiB
C++
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 ;
|
|
} ;
|