diff --git a/EGkFrame3d.h b/EGkFrame3d.h index c55c637..377478d 100644 --- a/EGkFrame3d.h +++ b/EGkFrame3d.h @@ -33,6 +33,9 @@ class EGK_EXPORT Frame3d Frame3d( void) : m_nType( TOP), m_nZType( TOP), m_ptOrig( ORIG), m_vtVersX( X_AX), m_vtVersY( Y_AX), m_vtVersZ( Z_AX) {} + Frame3d( const Point3d& ptOrig) + : m_nType( TOP), m_nZType( TOP), m_ptOrig( ptOrig), + m_vtVersX( X_AX), m_vtVersY( Y_AX), m_vtVersZ( Z_AX) {} bool Set( const Point3d& ptOrig, const Vector3d& vtDirX, const Vector3d& vtDirY, const Vector3d& vtDirZ) ; bool Set( const Point3d& ptOrig, const Point3d& ptOnX, const Point3d& ptNearY) ; diff --git a/EGkGdbConst.h b/EGkGdbConst.h index 88c02ca..cf8ae7d 100644 --- a/EGkGdbConst.h +++ b/EGkGdbConst.h @@ -17,7 +17,9 @@ //----------------- Costanti generali ------------------------------------------ const int GDB_ID_ROOT = 0 ; const int GDB_ID_NULL = -1 ; - +const int GDB_BEFORE = -1 ; +const int GDB_SON = 0 ; +const int GDB_AFTER = +1 ; //----------------- Costanti tipo oggetti del DB geometrico -------------------- enum GdbType { GDB_TY_NONE = 0, diff --git a/EGkGdbIterator.h b/EGkGdbIterator.h index 1a13e5d..af0c96f 100644 --- a/EGkGdbIterator.h +++ b/EGkGdbIterator.h @@ -45,6 +45,7 @@ class __declspec( novtable) IGdbIterator virtual IGeoFrame3d* GetGeoFrame( void) = 0 ; virtual bool GetGroupFrame( Frame3d& frGlob) const = 0 ; virtual bool GetGroupGlobFrame( Frame3d& frGlob) const = 0 ; + virtual int GetGroupObjs( void) const = 0 ; virtual int GetId( void) const = 0 ; virtual int GetParentId( void) const = 0 ; virtual bool GetGlobFrame( Frame3d& frGlob) const = 0 ; @@ -78,9 +79,11 @@ class __declspec( novtable) IGdbIterator virtual bool GetCalcMaterial( Color& cCol) const = 0 ; virtual bool SetName( const std::string& sName) = 0 ; virtual bool GetName( std::string& sName) const = 0 ; + virtual bool ExistsName( void) const = 0 ; virtual bool RemoveName( void) = 0 ; virtual bool SetInfo( const std::string& sKey, const std::string& sInfo) = 0 ; virtual bool GetInfo( const std::string& sKey, std::string& sInfo) const = 0 ; + virtual bool ExistsInfo( const std::string& sKey) const = 0 ; virtual bool RemoveInfo( const std::string& sKey) = 0 ; } ; diff --git a/EGkGeomDB.h b/EGkGeomDB.h index 86249c8..f29a89b 100644 --- a/EGkGeomDB.h +++ b/EGkGeomDB.h @@ -1,13 +1,14 @@ //---------------------------------------------------------------------------- // EgalTech 2013-2014 //---------------------------------------------------------------------------- -// File : EGkGeomDB.h Data : 26.04.14 Versione : 1.5d7 +// File : EGkGeomDB.h Data : 21.05.14 Versione : 1.5e8 // Contenuto : Dichiarazione della interfaccia IGeomDB. // // // // Modifiche : 24.11.13 DS Creazione modulo. // 26.04.14 DS Agg. gestione libreria materiali. +// 21.05.14 DS Agg. GotoFirst/Next/Last/Prev. // //---------------------------------------------------------------------------- @@ -39,7 +40,13 @@ class __declspec( novtable) IGeomDB virtual bool Save( const std::string& sFileOut, bool bBinary = true) const = 0 ; virtual bool ExistsObj( int nId) const = 0 ; virtual int AddGroup( int nId, int nParentId, const Frame3d& frFrame) = 0 ; + virtual int InsertGroup( int nId, int nRefId, int nSonBeforeAfter, const Frame3d& frFrame) = 0 ; virtual int AddGeoObj( int nId, int nParentId, IGeoObj* pGeoObj) = 0 ; + virtual int InsertGeoObj( int nId, int nRefId, int nSonBeforeAfter, IGeoObj* pGeoObj) = 0 ; + virtual int GetFirstInGroup( int nIdGroup) const = 0 ; + virtual int GetNext( int nId) const = 0 ; + virtual int GetLastInGroup( int nIdGroup) const = 0 ; + virtual int GetPrev( int nId) const = 0 ; virtual int GetGdbType( int nId) const = 0 ; virtual IGeoObj* GetGeoObj( int nId) = 0 ; virtual IGeoFrame3d* GetGeoFrame( int nId) = 0 ; @@ -112,9 +119,11 @@ class __declspec( novtable) IGeomDB virtual bool GetCalcMaterial( int nId, Color& cCol) const = 0 ; virtual bool SetName( int nId, const std::string& sName) = 0 ; virtual bool GetName( int nId, std::string& sName) const = 0 ; + virtual bool ExistsName( int nId) const = 0 ; virtual bool RemoveName( int nId) = 0 ; virtual bool SetInfo( int nId, const std::string& sKey, const std::string& sInfo) = 0 ; virtual bool GetInfo( int nId, const std::string& sKey, std::string& sInfo) const = 0 ; + virtual bool ExistsInfo( int nId, const std::string& sKey) const = 0 ; virtual bool RemoveInfo( int nId, const std::string& sKey) = 0 ; // material library virtual int AddMaterial( const std::string& sName, const Material& matM) = 0 ; diff --git a/EGkPointGrid3d.h b/EGkPointGrid3d.h index 83d2be7..d62a3ac 100644 --- a/EGkPointGrid3d.h +++ b/EGkPointGrid3d.h @@ -29,6 +29,7 @@ class PointGrid3d { public : + EGK_EXPORT PointGrid3d( void) : m_dCellDim( 10 * EPS_SMALL), m_dInvCellDim( 1 / m_dCellDim) {} EGK_EXPORT bool Init( int nBuckets, double dCellDim = 10 * EPS_SMALL) ; EGK_EXPORT bool InsertPoint( const Point3d& ptP, int nId) ; EGK_EXPORT bool Find( const Point3d& ptTest, double dTol, INTVECTOR& vnIds) ; @@ -43,5 +44,6 @@ class PointGrid3d private : double m_dCellDim ; + double m_dInvCellDim ; IPNTI_UMMAP m_MMap ; } ;