51 lines
2.1 KiB
C++
51 lines
2.1 KiB
C++
//----------------------------------------------------------------------------
|
|
// 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 <string>
|
|
#include "/EgtDev/Include/EGnScan.h"
|
|
#include "/EgtDev/Include/EGkPoint3d.h"
|
|
#include "/EgtDev/Include/EGkFrame3d.h"
|
|
#include "/EgtDev/Include/EGkGeoObjType.h"
|
|
|
|
//----------------------- 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 const std::string& GetKey( void) const = 0 ;
|
|
virtual bool IsValid( void) const = 0 ;
|
|
virtual bool Save( std::ostream& osOut) const = 0 ;
|
|
virtual bool Load( CScan& TheScanner) = 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 Point3d& ptCen, 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 ;
|
|
} ;
|
|
|
|
//-----------------------------------------------------------------------------
|
|
EGK_EXPORT IGeoObj* CreateGeoObj( int nType) ; |