diff --git a/EgtGeomKernel.rc b/EgtGeomKernel.rc index fca4212..a3ec081 100644 Binary files a/EgtGeomKernel.rc and b/EgtGeomKernel.rc differ diff --git a/GdbGeo.cpp b/GdbGeo.cpp index 3cdbecc..d3da220 100644 --- a/GdbGeo.cpp +++ b/GdbGeo.cpp @@ -125,7 +125,7 @@ GdbGeo::Save( NgeWriter& ngeOut) const //---------------------------------------------------------------------------- bool -GdbGeo::Load( int nNgeId, NgeReader& ngeIn, int& nParentId) +GdbGeo::Load( int nNgeId, NgeReader& ngeIn, int nBaseGdbId, int& nParentId) { // creo l'oggetto geometrico corrispondente int nType = GEOOBJ_NGEIDTOTYPE( nNgeId) ; @@ -164,7 +164,7 @@ GdbGeo::Load( int nNgeId, NgeReader& ngeIn, int& nParentId) // eventuale UserObj if ( nKey == NGE_U) { - if ( ! GdbObj::LoadUserObj( ngeIn)) + if ( ! GdbObj::LoadUserObj( ngeIn, nBaseGdbId)) return false ; // leggo la prossima linea if ( ! ngeIn.ReadKey( nKey)) diff --git a/GdbGeo.h b/GdbGeo.h index df6be2e..54c756f 100644 --- a/GdbGeo.h +++ b/GdbGeo.h @@ -28,7 +28,7 @@ class GdbGeo : public GdbObj virtual GdbType GetGdbType( void) const { return GDB_TY_GEO ; } virtual bool Save( NgeWriter& ngeOut) const ; - virtual bool Load( int nNgeId, NgeReader& ngeIn, int& nParentId) ; + virtual bool Load( int nNgeId, NgeReader& ngeIn, int nBaseGdbId, int& nParentId) ; virtual bool GetLocalBBox( BBox3d& b3Loc, int nFlag, int nLev = 0) const ; virtual bool GetBBox( const Frame3d& frRef, BBox3d& b3Ref, int nFlag, int nLev = 0) const ; virtual bool Translate( const Vector3d& vtMove) ; diff --git a/GdbGroup.cpp b/GdbGroup.cpp index d3cd7ab..eab09a2 100644 --- a/GdbGroup.cpp +++ b/GdbGroup.cpp @@ -199,7 +199,7 @@ GdbGroup::SaveChildren( NgeWriter& ngeOut) const //---------------------------------------------------------------------------- bool -GdbGroup::Load( int nNgeId, NgeReader& ngeIn, int& nParentId) +GdbGroup::Load( int nNgeId, NgeReader& ngeIn, int nBaseGdbId, int& nParentId) { // leggo la prossima linea if ( ! ngeIn.ReadInt( m_nId, "@")) @@ -232,7 +232,7 @@ GdbGroup::Load( int nNgeId, NgeReader& ngeIn, int& nParentId) // eventuale UserObj if ( nKey == NGE_U) { - if ( ! GdbObj::LoadUserObj( ngeIn)) + if ( ! GdbObj::LoadUserObj( ngeIn, nBaseGdbId)) return false ; // leggo la prossima linea if ( ! ngeIn.ReadKey( nKey)) diff --git a/GdbGroup.h b/GdbGroup.h index 7a7e335..81bf6d7 100644 --- a/GdbGroup.h +++ b/GdbGroup.h @@ -29,7 +29,7 @@ class GdbGroup : public GdbObj virtual GdbType GetGdbType( void) const { return GDB_TY_GROUP ; } virtual bool Save( NgeWriter& ngeOut) const ; - virtual bool Load( int nNgeId, NgeReader& ngeIn, int& nParentId) ; + virtual bool Load( int nNgeId, NgeReader& ngeIn, int nBaseGdbId, int& nParentId) ; virtual bool GetLocalBBox( BBox3d& b3Loc, int nFlag, int nLev = 0) const ; virtual bool GetBBox( const Frame3d& frRef, BBox3d& b3Ref, int nFlag, int nLev = 0) const ; virtual bool Translate( const Vector3d& vtMove) diff --git a/GdbObj.cpp b/GdbObj.cpp index 938f1d4..1f0590e 100644 --- a/GdbObj.cpp +++ b/GdbObj.cpp @@ -1158,7 +1158,7 @@ GdbObj::SaveUserObj( NgeWriter& ngeOut) const //---------------------------------------------------------------------------- bool -GdbObj::LoadUserObj( NgeReader& ngeIn) +GdbObj::LoadUserObj( NgeReader& ngeIn, int nBaseGdbId) { // leggo il nome della classe string sName ; @@ -1187,7 +1187,7 @@ GdbObj::LoadUserObj( NgeReader& ngeIn) if ( m_pUserObj == nullptr) return false ; // carico i dati nell'oggetto - if ( ! m_pUserObj->Load( vString)) + if ( ! m_pUserObj->Load( vString, nBaseGdbId)) return false ; // impostazione Id e GeomDB fatte successivamente return true ; diff --git a/GdbObj.h b/GdbObj.h index 8bf97dd..dc300a2 100644 --- a/GdbObj.h +++ b/GdbObj.h @@ -39,7 +39,7 @@ class GdbObj virtual GdbObj* Clone( int nId) const = 0 ; virtual GdbType GetGdbType( void) const = 0 ; virtual bool Save( NgeWriter& ngeOut) const = 0 ; - virtual bool Load( int nNgeId, NgeReader& ngeIn, int& nParentId) = 0 ; + virtual bool Load( int nNgeId, NgeReader& ngeIn, int nBaseGdbId, int& nParentId) = 0 ; virtual bool GetLocalBBox( BBox3d& b3Loc, int nFlag, int nLev = 0) const = 0 ; virtual bool GetBBox( const Frame3d& frRef, BBox3d& b3Ref, int nFlag, int nLev = 0) const = 0 ; virtual bool Translate( const Vector3d& vtMove) = 0 ; @@ -130,7 +130,7 @@ class GdbObj bool GetTextureName( std::string& sTxrName) const ; bool GetTextureFrame( Frame3d& frTxrRef) const ; bool SaveUserObj( NgeWriter& ngeOut) const ; - bool LoadUserObj( NgeReader& ngeIn) ; + bool LoadUserObj( NgeReader& ngeIn, int nBaseGdbId) ; public : void SetGeomDB( GeomDB* pGDB) diff --git a/GeomDB.cpp b/GeomDB.cpp index 265af89..3e58652 100644 --- a/GeomDB.cpp +++ b/GeomDB.cpp @@ -215,7 +215,7 @@ GeomDB::LoadOneObj( NgeReader& ngeIn, int nGroupId, int nBaseGdbId, const INTVEC // se lettura dati va bene int nParentId ; - if ( pGdbObj->Load( nKey, ngeIn, nParentId)) { + if ( pGdbObj->Load( nKey, ngeIn, nBaseGdbId, nParentId)) { // aggiusto Id pGdbObj->m_nId += nBaseGdbId ; // aggiusto Id del gruppo di appartenenza diff --git a/UserObjDefault.cpp b/UserObjDefault.cpp index b2f545d..1820fae 100644 --- a/UserObjDefault.cpp +++ b/UserObjDefault.cpp @@ -81,7 +81,7 @@ UserObjDefault::Save( STRVECTOR& vString) const //---------------------------------------------------------------------------- bool -UserObjDefault::Load( const STRVECTOR& vString) +UserObjDefault::Load( const STRVECTOR& vString, int nBaseGdbId) { m_vData = vString ; return true ; diff --git a/UserObjDefault.h b/UserObjDefault.h index 1c1005e..12ee613 100644 --- a/UserObjDefault.h +++ b/UserObjDefault.h @@ -25,7 +25,7 @@ class UserObjDefault : public IUserObj virtual bool Dump( std::string& sOut, bool bMM = true, const char* szNewLine = "\n") const ; virtual bool ToSave( void) const { return true ; } virtual bool Save( STRVECTOR& vString) const ; - virtual bool Load( const STRVECTOR& vString) ; + virtual bool Load( const STRVECTOR& vString, int nBaseGdbId) ; virtual bool SetOwner( int nId, IGeomDB* pGDB) ; virtual int GetOwner( void) const ; virtual IGeomDB* GetGeomDB( void) const ;