Include : aggiornamenti per modifiche a EgtGeomKernel.
This commit is contained in:
+15
-8
@@ -37,19 +37,21 @@ class EGK_EXPORT Frame3d
|
||||
bool Set( const Point3d& ptOrig, Type nType) ;
|
||||
bool Reset( void) ;
|
||||
void Translate( const Vector3d& vtMove) ;
|
||||
bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, double dSinAng) ;
|
||||
bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dAngRad) ;
|
||||
// Scale non possibile (non previsti fattori di scala)
|
||||
// Mirror non possibile (cambia il senso destrorso in sinistrorso)
|
||||
bool ToGlob( const Frame3d& frRef) ;
|
||||
bool ToLoc( const Frame3d& frRef) ;
|
||||
inline const Frame3d operator*=( const Frame3d& frRef) { this->ToGlob( frRef) ; return *this ;}
|
||||
inline const Frame3d operator/=( const Frame3d& frRef) { this->ToLoc( frRef) ; return *this ;}
|
||||
inline int GetType( void) const { return m_nType ;}
|
||||
inline int GetZType( void) const { return m_nZType ;}
|
||||
inline const Point3d& Orig( void) const { return m_ptOrig ;}
|
||||
inline const Vector3d& VersX( void) const { return m_vtVersX ;}
|
||||
inline const Vector3d& VersY( void) const { return m_vtVersY ;}
|
||||
inline const Vector3d& VersZ( void) const { return m_vtVersZ ;}
|
||||
const Frame3d operator*=( const Frame3d& frRef) { this->ToGlob( frRef) ; return *this ;}
|
||||
const Frame3d operator/=( const Frame3d& frRef) { this->ToLoc( frRef) ; return *this ;}
|
||||
int GetType( void) const { return m_nType ;}
|
||||
int GetZType( void) const { return m_nZType ;}
|
||||
const Point3d& Orig( void) const { return m_ptOrig ;}
|
||||
const Vector3d& VersX( void) const { return m_vtVersX ;}
|
||||
const Vector3d& VersY( void) const { return m_vtVersY ;}
|
||||
const Vector3d& VersZ( void) const { return m_vtVersZ ;}
|
||||
bool GetRotationsCAC1( double& dAngC, double& dAngA, double& dAngC1) const ;
|
||||
|
||||
private :
|
||||
void CalculateType( void) ;
|
||||
@@ -64,6 +66,11 @@ class EGK_EXPORT Frame3d
|
||||
|
||||
} ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Riferimenti notevoli
|
||||
//----------------------------------------------------------------------------
|
||||
const Frame3d GLOB_FRM ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Prodotto di due frame (porta il primo dal secondo nel globale)
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// EgalTech 2013-2013
|
||||
//----------------------------------------------------------------------------
|
||||
// File : EgkGdbConst.h Data : 04.12.13 Versione : 1.4a3
|
||||
// Contenuto : Costanti generali per DB geometrico.
|
||||
//
|
||||
//
|
||||
//
|
||||
// Modifiche : 04.12.13 DS Creazione modulo.
|
||||
//
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
|
||||
//----------------- Costanti generali ----------------------------------------
|
||||
const int GDB_ID_ROOT = 0 ;
|
||||
const int GDB_ID_NULL = -1 ;
|
||||
|
||||
|
||||
//----------------- Costanti tipo nodi del DB geometrico ----------------------
|
||||
enum GdbType { GDB_NONE = 0,
|
||||
GDB_GEO = 1,
|
||||
GDB_GROUP = 2} ;
|
||||
@@ -0,0 +1,47 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// EgalTech 2013-2013
|
||||
//----------------------------------------------------------------------------
|
||||
// File : EGkGdbIterator.h Data : 04.12.13 Versione : 1.4a3
|
||||
// Contenuto : Dichiarazione della interfaccia IGdbIterator.
|
||||
//
|
||||
//
|
||||
//
|
||||
// Modifiche : 04.12.13 DS Creazione modulo.
|
||||
//
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "/EgtDev/Include/EGkGeomDB.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) IGdbIterator
|
||||
{
|
||||
public :
|
||||
virtual ~IGdbIterator( void) {}
|
||||
virtual bool SetGDB( IGeomDB* pGDB) = 0 ;
|
||||
virtual bool GoTo( int nId) = 0 ;
|
||||
virtual bool GoToFirstInGroup( int nIdGroup) = 0 ;
|
||||
virtual bool GoToNext( void) = 0 ;
|
||||
virtual bool GoToLastInGroup( int nIdGroup) = 0 ;
|
||||
virtual bool GoToPrev( void) = 0 ;
|
||||
|
||||
virtual GdbType GetGdbType( void) const = 0 ;
|
||||
virtual IGeoObj* GetGeoObj( void) = 0 ;
|
||||
virtual Frame3d* GetGroupFrame( void) = 0 ;
|
||||
virtual bool GetGroupGlobFrame( Frame3d& frGlob) = 0 ;
|
||||
virtual int GetId( void) = 0 ;
|
||||
virtual int GetParentId( void) = 0 ;
|
||||
} ;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
EGK_EXPORT IGdbIterator* CreateGdbIterator( void) ;
|
||||
@@ -0,0 +1,46 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// EgalTech 2013-2013
|
||||
//----------------------------------------------------------------------------
|
||||
// File : EGkGeoFrame3d.h Data : 02.12.13 Versione : 1.4a3
|
||||
// Contenuto : Dichiarazione della interfaccia IGeoFrame3d.
|
||||
//
|
||||
//
|
||||
//
|
||||
// Modifiche : 02.12.13 DS Creazione modulo.
|
||||
//
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "/EgtDev/Include/EGkGeoObj.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
class _declspec( novtable) IGeoFrame3d : public IGeoObj
|
||||
{
|
||||
public :
|
||||
virtual bool Set( const Point3d& ptOrig, const Vector3d& vtDirX,
|
||||
const Vector3d& vtDirY, const Vector3d& vtDirZ) = 0 ;
|
||||
virtual bool Set( const Frame3d& frF) = 0 ;
|
||||
virtual const Frame3d& GetFrame( void) const = 0 ;
|
||||
} ;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
inline IGeoFrame3d* CreateGeoFrame3d( void)
|
||||
{ return (static_cast<IGeoFrame3d*>( CreateGeoObj( GEO_FRAME3D))) ; }
|
||||
inline IGeoFrame3d* CloneGeoFrame3d( const IGeoObj* pGObj)
|
||||
{ if ( pGObj == nullptr || pGObj->GetType() != GEO_FRAME3D)
|
||||
return nullptr ;
|
||||
return (static_cast<IGeoFrame3d*>(pGObj->Clone())) ; }
|
||||
inline bool CopyGeoFrame3d( const IGeoFrame3d* pGFSou, IGeoFrame3d* pGFDest)
|
||||
{ if ( pGFSou == nullptr || pGFDest == nullptr)
|
||||
return false ;
|
||||
return pGFDest->Set( pGFSou->GetFrame()) ; }
|
||||
inline const IGeoFrame3d* GetGeoFrame3d( const IGeoObj* pGObj)
|
||||
{ if ( pGObj == nullptr || pGObj->GetType() != GEO_FRAME3D)
|
||||
return nullptr ;
|
||||
return (static_cast<const IGeoFrame3d*>(pGObj)) ; }
|
||||
inline IGeoFrame3d* GetGeoFrame3d( IGeoObj* pGObj)
|
||||
{ if ( pGObj == nullptr || pGObj->GetType() != GEO_FRAME3D)
|
||||
return nullptr ;
|
||||
return (static_cast<IGeoFrame3d*>(pGObj)) ; }
|
||||
@@ -23,6 +23,7 @@ const int GEO_SURF = 0x400 ;
|
||||
enum GeoObjType { GEO_NONE = 0,
|
||||
GEO_VECT3D = ( GEO_ZERODIM + 0),
|
||||
GEO_PNT3D = ( GEO_ZERODIM + 1),
|
||||
GEO_FRAME3D = ( GEO_ZERODIM + 2),
|
||||
CRV_LINE = ( GEO_CURVE + 0),
|
||||
CRV_ARC = ( GEO_CURVE + 1),
|
||||
CRV_BEZ = ( GEO_CURVE + 2),
|
||||
|
||||
+8
-4
@@ -14,6 +14,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include "/EgtDev/Include/EGkGdbConst.h"
|
||||
#include "/EgtDev/Include/EGkGeoObj.h"
|
||||
|
||||
//----------------------- Macro per import/export ----------------------------
|
||||
@@ -34,11 +35,14 @@ class _declspec( novtable) IGeomDB
|
||||
virtual bool Load( std::ifstream& osIn) = 0 ;
|
||||
virtual bool Save( std::ofstream& osOut) const = 0 ;
|
||||
virtual bool ExistsNode( int nId) const = 0 ;
|
||||
virtual bool AddGroup( int nId, int nParentId) = 0 ;
|
||||
virtual bool AddGeoObj( int nId, int nParentId, IGeoObj* pGeoObj) = 0 ;
|
||||
virtual GeoObjType GetObjType( int nId) const = 0 ;
|
||||
virtual int AddGroup( int nId, int nParentId, const Frame3d& frFrame) = 0 ;
|
||||
virtual int AddGeoObj( int nId, int nParentId, IGeoObj* pGeoObj) = 0 ;
|
||||
virtual GdbType GetGdbType( int nId) const = 0 ;
|
||||
virtual IGeoObj* GetGeoObj( int nId) = 0 ;
|
||||
virtual bool Copy(int nIdSou, int nIdDest, int nParentIdDest) = 0 ;
|
||||
virtual Frame3d* GetGroupFrame( int nId) = 0 ;
|
||||
virtual bool GetGroupGlobFrame( int nId, Frame3d& frGlob) = 0 ;
|
||||
virtual int GetParentId( int nId) = 0 ;
|
||||
virtual int Copy( int nIdSou, int nIdDest, int nParentIdDest) = 0 ;
|
||||
virtual bool Erase( int nId) = 0 ;
|
||||
virtual bool Translate( int nId, const Vector3d& vtMove) = 0 ;
|
||||
virtual bool Rotate( int nId, const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, double dSinAng) = 0 ;
|
||||
|
||||
+9
-8
@@ -30,14 +30,14 @@ class Frame3d ;
|
||||
class EGK_EXPORT Vector3d
|
||||
{
|
||||
public :
|
||||
inline Vector3d( double dX, double dY, double dZ) { x = dX ; y = dY ; z = dZ ;}
|
||||
inline Vector3d( double dX, double dY) { x = dX ; y = dY ; z = 0 ;}
|
||||
inline Vector3d( void) { x = 0 ; y = 0 ; z = 0 ;}
|
||||
inline void Set( double dX, double dY, double dZ) { x = dX ; y = dY ; z = dZ ;}
|
||||
inline const Vector3d& operator =( const Vector3d& vtSrc)
|
||||
{ if ( &vtSrc != this) {
|
||||
x = vtSrc.x , y = vtSrc.y , z = vtSrc.z ; }
|
||||
return *this ; }
|
||||
Vector3d( double dX, double dY, double dZ) { x = dX ; y = dY ; z = dZ ;}
|
||||
Vector3d( double dX, double dY) { x = dX ; y = dY ; z = 0 ;}
|
||||
Vector3d( void) { x = 0 ; y = 0 ; z = 0 ;}
|
||||
void Set( double dX, double dY, double dZ) { x = dX ; y = dY ; z = dZ ;}
|
||||
const Vector3d& operator =( const Vector3d& vtSrc)
|
||||
{ if ( &vtSrc != this) {
|
||||
x = vtSrc.x , y = vtSrc.y , z = vtSrc.z ; }
|
||||
return *this ; }
|
||||
void FromSpherical( double dLen, double dAngVertDeg, double dAngOrizzDeg) ;
|
||||
void FromPolar( double dLen, double dAngDeg) ;
|
||||
|
||||
@@ -62,6 +62,7 @@ class EGK_EXPORT Vector3d
|
||||
bool Mirror( const Vector3d& vtNorm) ;
|
||||
bool ToGlob( const Frame3d& frRef) ;
|
||||
bool ToLoc( const Frame3d& frRef) ;
|
||||
bool GetRotation( const Vector3d& vtEnd, const Vector3d& vtAx, double& dAngDeg, bool& bDet) ;
|
||||
|
||||
public :
|
||||
double x ;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// EgalTech 2013-2013
|
||||
//----------------------------------------------------------------------------
|
||||
// File : EgtReleasePointer.h Data : 25.11.13 Versione : 1.3a1
|
||||
// File : EgtPointerOwner.h Data : 04.12.13 Versione : 1.4a3
|
||||
// Contenuto : Dichiarazione classe template per puntatore con auto rilascio.
|
||||
//
|
||||
//
|
||||
@@ -16,26 +16,26 @@
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
template <class T>
|
||||
class ReleasePtr
|
||||
class PtrOwner
|
||||
{
|
||||
public :
|
||||
explicit ReleasePtr( T* pT) { m_pT = pT ; }
|
||||
~ReleasePtr( void) { if ( m_pT != nullptr) delete m_pT ; m_pT = nullptr ; }
|
||||
explicit PtrOwner( T* pT) { m_pT = pT ; }
|
||||
~PtrOwner( void) { if ( m_pT != nullptr) delete m_pT ; m_pT = nullptr ; }
|
||||
T& operator*() const { return *m_pT ; }
|
||||
T* operator->() const { return m_pT ; }
|
||||
|
||||
private :
|
||||
T* m_pT ;
|
||||
|
||||
template <class T> friend bool IsValid( ReleasePtr<T>& RPT) ;
|
||||
template <class T> friend T* Get( ReleasePtr<T>& RPT) ;
|
||||
template <class T> friend T* Release( ReleasePtr<T>& RPT) ;
|
||||
template <class T> friend bool IsValid( PtrOwner<T>& RPT) ;
|
||||
template <class T> friend T* Get( PtrOwner<T>& RPT) ;
|
||||
template <class T> friend T* Release( PtrOwner<T>& RPT) ;
|
||||
} ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
template <class T>
|
||||
bool
|
||||
IsValid( ReleasePtr<T>& RPT)
|
||||
IsValid( PtrOwner<T>& RPT)
|
||||
{
|
||||
return ( RPT.m_pT != nullptr) ;
|
||||
}
|
||||
@@ -43,7 +43,7 @@ IsValid( ReleasePtr<T>& RPT)
|
||||
//----------------------------------------------------------------------------
|
||||
template <class T>
|
||||
T*
|
||||
Get( ReleasePtr<T>& RPT)
|
||||
Get( PtrOwner<T>& RPT)
|
||||
{
|
||||
return RPT.m_pT ;
|
||||
}
|
||||
@@ -51,7 +51,7 @@ Get( ReleasePtr<T>& RPT)
|
||||
//----------------------------------------------------------------------------
|
||||
template <class T>
|
||||
T*
|
||||
Release( ReleasePtr<T>& RPT)
|
||||
Release( PtrOwner<T>& RPT)
|
||||
{
|
||||
T* pT = RPT.m_pT ;
|
||||
RPT.m_pT = nullptr ;
|
||||
Reference in New Issue
Block a user