085b36788d
- aggiornamento prototipi.
56 lines
3.0 KiB
C++
56 lines
3.0 KiB
C++
//----------------------------------------------------------------------------
|
|
// EgalTech 2015-2019
|
|
//----------------------------------------------------------------------------
|
|
// File : EGkUserObj.h Data : 17.06.19 Versione : 2.1f2
|
|
// Contenuto : Dichiarazione della interfaccia IUserObj.
|
|
//
|
|
//
|
|
//
|
|
// Modifiche : 22.05.15 DS Creazione modulo.
|
|
// 25.05.19 DS Aggiunta Relocate.
|
|
// 17.06.19 DS Aggiunta Removing.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#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( int nBaseId, STRVECTOR& vString) const { return false ; }
|
|
virtual bool Load( const STRVECTOR& vString, int nBaseGdbId) { return false ; }
|
|
public : // general GDB
|
|
virtual bool Removing( int nParentId, int nNextId) { return true ; }
|
|
virtual bool Relocate( int nOrigParentId, int nOrigNextId, int nRefId, int nSonBeforeAfter, bool bGlob) { return true ; }
|
|
public : // show & texture (only if with a GeoObj)
|
|
virtual bool GetDrawPolyLines( POLYLINELIST& lstPL) const { return false ; }
|
|
virtual bool GetDimensions( double& dDimX, double& dDimY) const { return false ; }
|
|
public : // transform geometry (only if with a GeoObj)
|
|
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 ; }
|
|
} ;
|