//---------------------------------------------------------------------------- // EgalTech 2013-2013 //---------------------------------------------------------------------------- // File : EGkGeoObj.h Data : 20.11.13 Versione : 1.3a1 // Contenuto : Dichiarazione della interfaccia IGeoObj. // // // // Modifiche : 20.11.13 DS Creazione modulo. // // //---------------------------------------------------------------------------- #pragma once #include "/EgtDev/Include/EGnScan.h" #include "/EgtDev/Include/EGkPoint3d.h" #include "/EgtDev/Include/EGkFrame3d.h" #include "/EgtDev/Include/EGkBBox3d.h" #include "/EgtDev/Include/EGkGeoObjType.h" #include "/EgtDev/Include/EGkObjGraphics.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) IGeoObj { public : virtual ~IGeoObj( void) {} virtual IGeoObj* Clone( void) const = 0 ; virtual GeoObjType GetType( void) const = 0 ; virtual bool IsValid( void) const = 0 ; virtual const std::string& GetTitle( void) const = 0 ; virtual bool Dump( std::string& sOut, const char* szNewLine = "\n") const = 0 ; virtual const std::string& GetKey( void) const = 0 ; virtual bool Save( std::ostream& osOut) const = 0 ; virtual bool Load( Scanner& TheScanner) = 0 ; virtual bool GetLocalBBox( BBox3d& b3Loc) const = 0 ; virtual bool GetBBox( const Frame3d& frRef, BBox3d& b3Ref) const = 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 Frame3d& frRef, double dCoeffX, double dCoeffY, double dCoeffZ) = 0 ; virtual bool Mirror( const Point3d& ptOn, const Vector3d& vtNorm) = 0 ; virtual bool ToGlob( const Frame3d& frRef) = 0 ; virtual bool ToLoc( const Frame3d& frRef) = 0 ; virtual void SetObjGraphics( IObjGraphics* pOGr) = 0 ; virtual IObjGraphics* GetObjGraphics( void) = 0 ; virtual const IObjGraphics* GetObjGraphics( void) const = 0 ; } ; //----------------------------------------------------------------------------- EGK_EXPORT IGeoObj* CreateGeoObj( int nType) ;