//---------------------------------------------------------------------------- // EgalTech 2015-2015 //---------------------------------------------------------------------------- // File : EGkUserObj.h Data : 22.05.15 Versione : 1.6e3 // Contenuto : Dichiarazione della interfaccia IUserObj. // // // // Modifiche : 22.05.15 DS Creazione modulo. // // //---------------------------------------------------------------------------- #pragma once #include "/EgtDev/Include/EGkPolyLine.h" #include "/EgtDev/Include/EgtStringBase.h" class IGeomDB ; //---------------------------------------------------------------------------- class __declspec( novtable) IUserObj { public : // standard virtual ~IUserObj( void) {} virtual IUserObj* Clone( void) const = 0 ; virtual const std::string& GetClassName( void) const = 0 ; virtual bool Dump( std::string& sOut, bool bMM = true, const char* szNewLine = "\n") const = 0 ; virtual bool SetOwner( int nId, IGeomDB* pGDB) = 0 ; virtual int GetOwner( void) const = 0 ; virtual IGeomDB* GetGeomDB( void) const = 0 ; public : // save & load virtual bool ToSave( void) const { return false ; } virtual bool Save( STRVECTOR& vString) const { return false ; } virtual bool Load( const STRVECTOR& vString, int nBaseGdbId) { return false ; } public : // show & transform geometry (only if with a GeoObj) virtual bool GetDrawPolyLines( POLYLINELIST& lstPL) const { return false ; } virtual bool Translate( const Vector3d& vtMove) { return true ; } virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dAngDeg) { return true ; } virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, double dSinAng) { return true ; } virtual bool Scale( const Frame3d& frRef, double dCoeffX, double dCoeffY, double dCoeffZ) { return true ; } virtual bool Mirror( const Point3d& ptOn, const Vector3d& vtNorm) { return true ; } virtual bool Shear( const Point3d& ptOn, const Vector3d& vtNorm, const Vector3d& vtDir, double dCoeff) { return true ; } virtual bool ToGlob( const Frame3d& frRef) { return true ; } virtual bool ToLoc( const Frame3d& frRef) { return true ; } virtual bool LocToLoc( const Frame3d& frOri, const Frame3d& frDest) { return true ; } public : // reserved virtual bool IsDefault(void) const { return false ; } } ;