Files
Include/EGkGeoObj.h
SaraP a645be8f7d Include :
- aggiunti prototipi per Voronoi
- aggiornamento prototipi.
2023-11-23 13:01:37 +01:00

64 lines
3.1 KiB
C++

//----------------------------------------------------------------------------
// EgalTech 2013-2021
//----------------------------------------------------------------------------
// File : EGkGeoObj.h Data : 21.07.21 Versione : 2.3g2
// Contenuto : Dichiarazione della interfaccia IGeoObj.
//
//
//
// Modifiche : 20.11.13 DS Creazione modulo.
// 14.04.14 DS Tolti metodi GetKey, Save e Load.
// 21.07.21 LM Aggiunto parametro opzionale a Set/GetTempProp.
//
//----------------------------------------------------------------------------
#pragma once
#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 "/EgtDev/Include/EGkGdbConst.h"
#include <string>
//----------------------- 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, bool bMM = true, const char* szNewLine = "\n") const = 0 ;
virtual bool GetLocalBBox( BBox3d& b3Loc, int nFlag = BBF_STANDARD) const = 0 ;
virtual bool GetBBox( const Frame3d& frRef, BBox3d& b3Ref, int nFlag = BBF_STANDARD) const = 0 ;
virtual bool Translate( const Vector3d& vtMove) = 0 ;
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dAngDeg) = 0 ;
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, double dSinAng) = 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 Shear( const Point3d& ptOn, const Vector3d& vtNorm, const Vector3d& vtDir, double dCoeff) = 0 ;
virtual bool ToGlob( const Frame3d& frRef) = 0 ;
virtual bool ToLoc( const Frame3d& frRef) = 0 ;
virtual bool LocToLoc( const Frame3d& frOri, const Frame3d& frDest) = 0 ;
virtual void SetObjGraphics( IObjGraphics* pOGr) = 0 ;
virtual IObjGraphics* GetObjGraphics( void) = 0 ;
virtual const IObjGraphics* GetObjGraphics( void) const = 0 ;
virtual void SetTempProp( int nProp, int nPropInd = 0) = 0 ;
virtual int GetTempProp( int nPropInd = 0) const = 0 ;
virtual void SetTempParam( double dParam, int nParamInd = 0) = 0 ;
virtual double GetTempParam( int nParamInd = 0) const = 0 ;
} ;
//-----------------------------------------------------------------------------
EGK_EXPORT IGeoObj* CreateGeoObj( int nType) ;