//---------------------------------------------------------------------------- // EgalTech 2013-2013 //---------------------------------------------------------------------------- // File : GdbGeo.h Data : 05.03.14 Versione : 1.5c1 // Contenuto : Dichiarazione della classe GdbGeo. // // // // Modifiche : 22.01.13 DS Creazione modulo. // // //---------------------------------------------------------------------------- #pragma once #include "GdbObj.h" #include "/EgtDev/Include/EGkGeoObjType.h" #include class IGeoObj ; //---------------------------------------------------------------------------- class GdbGeo : public GdbObj { public : virtual ~GdbGeo( void) ; virtual GdbGeo* Clone( int nId) const ; virtual GdbType GetGdbType( void) const { return GDB_TY_GEO ; } virtual bool Save( NgeWriter& ngeOut) const ; virtual bool Load( int nNgeId, NgeReader& ngeIn, int nBaseGdbId, int& nParentId) ; virtual bool GetLocalBBox( BBox3d& b3Loc, int nFlag, int nLev = 0) const ; virtual bool GetBBox( const Frame3d& frRef, BBox3d& b3Ref, int nFlag, int nLev = 0) 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 Frame3d& frRef, double dCoeffX, double dCoeffY, double dCoeffZ) ; virtual bool Mirror( const Point3d& ptOn, const Vector3d& vtNorm) ; virtual bool Shear( const Point3d& ptOn, const Vector3d& vtNorm, const Vector3d& vtDir, double dCoeff) ; virtual bool ToGlob( const Frame3d& frRef) ; virtual bool ToLoc( const Frame3d& frRef) ; virtual bool LocToLoc( const Frame3d& frOri, const Frame3d& frDest) ; virtual bool OnSetMaterial( void) ; public : GdbGeo( void) ; GeoObjType GetGeoType( void) const ; public : IGeoObj* m_pGeoObj ; } ; //---------------------------------------------------------------------------- inline const GdbGeo* GetGdbGeo( const GdbObj* pGObj) { return dynamic_cast(pGObj) ; } inline GdbGeo* GetGdbGeo( GdbObj* pGObj) { return dynamic_cast(pGObj) ; }