//---------------------------------------------------------------------------- // EgalTech 2013-2013 //---------------------------------------------------------------------------- // File : EGkGeomDB.h Data : 24.11.13 Versione : 1.3a1 // Contenuto : Dichiarazione della interfaccia IGeomDB. // // // // Modifiche : 24.11.13 DS Creazione modulo. // // //---------------------------------------------------------------------------- #pragma once #include "/EgtDev/Include/EGkGdbConst.h" #include "/EgtDev/Include/EGkGeoFrame3d.h" #include "/EgtDev/Include/EGkGeoObj.h" #include "/EgtDev/Include/EGtILogger.h" #include //----------------------- Macro per import/export ---------------------------- #undef EGK_EXPORT #if defined( I_AM_EGK) // da definirsi solo nella DLL #define EGK_EXPORT __declspec( dllexport) #else #define EGK_EXPORT __declspec( dllimport) #endif //----------------------------------------------------------------------------- class __declspec( novtable) IGeomDB { public : virtual ~IGeomDB( void) {} virtual bool Init( void) = 0 ; virtual bool Clear( void) = 0 ; virtual bool Load( const std::string& sFileIn) = 0 ; virtual bool Save( const std::string& sFileOut) const = 0 ; virtual bool ExistsNode( int nId) const = 0 ; virtual int AddGroup( int nId, int nParentId, const Frame3d& frFrame) = 0 ; virtual int AddGeoObj( int nId, int nParentId, IGeoObj* pGeoObj) = 0 ; virtual GdbType GetGdbType( int nId) const = 0 ; virtual IGeoObj* GetGeoObj( int nId) = 0 ; virtual IGeoFrame3d* GetGeoFrame( int nId) = 0 ; virtual bool GetGroupFrame( int nId, Frame3d& frGrp) const = 0 ; virtual bool GetGroupGlobFrame( int nId, Frame3d& frGlob) const = 0 ; virtual int GetGroupNodes( int nId) const = 0 ; virtual int GetParentId( int nId) const = 0 ; virtual bool GetGlobFrame( int nId, Frame3d& frGlob) const = 0 ; virtual bool GetLocalBBox( int nId, BBox3d& b3Loc) const = 0 ; virtual bool GetGlobalBBox( int nId, BBox3d& b3Glob) const = 0 ; virtual bool GetRefBBox( int nId, const Frame3d& frRef, BBox3d& b3Ref) const = 0 ; virtual int Copy( int nIdSou, int nIdDest, int nParentIdDest) = 0 ; virtual int CopyGlob( int nIdSou, int nIdDest, int nParentIdDest) = 0 ; virtual bool Erase( int nId) = 0 ; virtual bool Translate( int nId, const Vector3d& vtMove) = 0 ; virtual bool TranslateGlob( int nId, const Vector3d& vtMove) = 0 ; virtual bool Rotate( int nId, const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, double dSinAng) = 0 ; virtual bool RotateGlob( int nId, const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, double dSinAng) = 0 ; virtual bool Rotate( int nId, const Point3d& ptAx, const Vector3d& vtAx, double dAngDeg) = 0 ; virtual bool RotateGlob( int nId, const Point3d& ptAx, const Vector3d& vtAx, double dAngDeg) = 0 ; virtual bool Scale( int nId, const Frame3d& frRef, double dCoeffX, double dCoeffY, double dCoeffZ) = 0 ; virtual bool ScaleGlob( int nId, const Frame3d& frRef, double dCoeffX, double dCoeffY, double dCoeffZ) = 0 ; virtual bool Mirror( int nId, const Point3d& ptOn, const Vector3d& vtNorm) = 0 ; virtual bool MirrorGlob( int nId, const Point3d& ptOn, const Vector3d& vtNorm) = 0 ; } ; //----------------------------------------------------------------------------- EGK_EXPORT IGeomDB* CreateGeomDB( void) ;