EgtGeomKernel : Modifiche per Scanner e Load/Save di GeomDB con nome file.

This commit is contained in:
Dario Sassi
2013-12-12 09:11:29 +00:00
parent a3308d8e23
commit fb0ca2906f
23 changed files with 50 additions and 78 deletions
+1 -1
View File
@@ -142,7 +142,7 @@ CurveArc::Save( ostream& osOut) const
//----------------------------------------------------------------------------
bool
CurveArc::Load( CScan& TheScanner)
CurveArc::Load( Scanner& TheScanner)
{
string sLine ;
STRVECTOR vsParams ;
+1 -1
View File
@@ -26,7 +26,7 @@ class CurveArc : public ICurveArc
virtual const std::string& GetKey( void) const ;
virtual bool IsValid( void) const { return ( m_nStatus == OK) ; }
virtual bool Save( std::ostream& osOut) const ;
virtual bool Load( CScan& TheScanner) ;
virtual bool Load( Scanner& TheScanner) ;
virtual bool Translate( const Vector3d& vtMove) ;
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, double dSinAng) ;
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dAngRad)
+1 -1
View File
@@ -221,7 +221,7 @@ CurveBezier::Save( ostream& osOut) const
//----------------------------------------------------------------------------
bool
CurveBezier::Load( CScan& TheScanner)
CurveBezier::Load( Scanner& TheScanner)
{
string sLine ;
STRVECTOR vsParams ;
+1 -1
View File
@@ -26,7 +26,7 @@ class CurveBezier : public ICurveBezier
virtual const std::string& GetKey( void) const ;
virtual bool IsValid( void) const { return ( m_nStatus == OK) ; }
virtual bool Save( std::ostream& osOut) const ;
virtual bool Load( CScan& TheScanner) ;
virtual bool Load( Scanner& TheScanner) ;
virtual bool Translate( const Vector3d& vtMove) ;
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, double dSinAng) ;
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dAngRad)
+1 -1
View File
@@ -197,7 +197,7 @@ CurveComposite::Save( ostream& osOut) const
//----------------------------------------------------------------------------
bool
CurveComposite::Load( CScan& TheScanner)
CurveComposite::Load( Scanner& TheScanner)
{
int nType ;
string sLine ;
+1 -1
View File
@@ -30,7 +30,7 @@ class CurveComposite : public ICurveComposite
virtual const std::string& GetKey( void) const ;
virtual bool IsValid( void) const { return ( m_nStatus == OK) ; }
virtual bool Save( std::ostream& osOut) const ;
virtual bool Load( CScan& TheScanner) ;
virtual bool Load( Scanner& TheScanner) ;
virtual bool Translate( const Vector3d& vtMove) ;
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, double dSinAng) ;
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dAngRad)
+1 -1
View File
@@ -81,7 +81,7 @@ CurveLine::Save( ostream& osOut) const
//----------------------------------------------------------------------------
bool
CurveLine::Load( CScan& TheScanner)
CurveLine::Load( Scanner& TheScanner)
{
string sLine ;
STRVECTOR vsParams ;
+1 -1
View File
@@ -26,7 +26,7 @@ class CurveLine : public ICurveLine
virtual const std::string& GetKey( void) const ;
virtual bool IsValid( void) const { return ( m_nStatus == OK) ; }
virtual bool Save( std::ostream& osOut) const ;
virtual bool Load( CScan& TheScanner) ;
virtual bool Load( Scanner& TheScanner) ;
virtual bool Translate( const Vector3d& vtMove) ;
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, double dSinAng) ;
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dAngRad)
+2 -40
View File
@@ -57,44 +57,6 @@ GdbExecutor::Init( IGeomDB* pGdb, ILogger* pLogger)
return ( m_pGDB != nullptr) ;
}
//----------------------------------------------------------------------------
bool
GdbExecutor::Load( const string& sFile)
{
bool bOk ;
ifstream ifLoad ;
ifLoad.open( stringtoW( sFile)) ;
if ( ifLoad.good()) {
bOk = m_pGDB->Load( ifLoad) ;
ifLoad.close() ;
}
else
bOk = false ;
return bOk ;
}
//----------------------------------------------------------------------------
bool
GdbExecutor::Save( const string& sFile)
{
bool bOk ;
ofstream ofSave ;
ofSave.open( stringtoW( sFile)) ;
if ( ofSave.good()) {
bOk = m_pGDB->Save( ofSave) ;
ofSave.close() ;
}
else
bOk = false ;
return bOk ;
}
//----------------------------------------------------------------------------
bool
GdbExecutor::Execute( const string& sCmd1, const string& sCmd2, const STRVECTOR& vsParams)
@@ -847,7 +809,7 @@ GdbExecutor::ExecuteLoad( const STRVECTOR& vsParams)
m_pGDB->Clear() ;
m_pGDB->ReInit() ;
// esecuzione caricamento
return Load( vsParams[0]) ;
return m_pGDB->Load( vsParams[0]) ;
}
//----------------------------------------------------------------------------
@@ -858,7 +820,7 @@ GdbExecutor::ExecuteSave( const STRVECTOR& vsParams)
if ( vsParams.size() != 1)
return false ;
// esecuzione salvataggio
return Save( vsParams[0]) ;
return m_pGDB->Save( vsParams[0]) ;
}
//----------------------------------------------------------------------------
-2
View File
@@ -27,8 +27,6 @@ class GdbExecutor : public IGdbExecutor
public :
GdbExecutor( void) ;
~GdbExecutor( void) ;
bool Load( const std::string& sFile) ;
bool Save( const std::string& sFile) ;
private :
bool AddGeoObj( const std::string& sId, const std::string& sIdParent, IGeoObj* pGeoObj) ;
+1 -1
View File
@@ -125,7 +125,7 @@ GdbGroup::Save( std::ostream& osOut) const
//----------------------------------------------------------------------------
bool
GdbGroup::Load( const string& sType, CScan& TheScanner, int& nParentId)
GdbGroup::Load( const string& sType, Scanner& TheScanner, int& nParentId)
{
string sLine ;
STRVECTOR vsParams ;
+1 -1
View File
@@ -28,7 +28,7 @@ class GdbGroup : public GdbNode
virtual ~GdbGroup( void) ;
virtual GdbGroup* Clone( int nId, IdManager& IdMgr) const ;
virtual bool Save( std::ostream& osOut) const ;
virtual bool Load( const std::string& sType, CScan& TheScanner, int& nParentId) ;
virtual bool Load( const std::string& sType, Scanner& TheScanner, int& nParentId) ;
virtual bool Translate( const Vector3d& vtMove) ;
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, double dSinAng) ;
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dAngDeg)
+1 -1
View File
@@ -29,7 +29,7 @@ class GdbNode
virtual ~GdbNode( void) {}
virtual GdbNode* Clone( int nId, IdManager& IdMgr) const = 0 ;
virtual bool Save( std::ostream& osOut) const = 0 ;
virtual bool Load( const std::string& sType, CScan& TheScanner, int& nParentId) = 0 ;
virtual bool Load( const std::string& sType, Scanner& TheScanner, int& nParentId) = 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 ;
+1 -1
View File
@@ -87,7 +87,7 @@ GdbObj::Save( std::ostream& osOut) const
//----------------------------------------------------------------------------
bool
GdbObj::Load( const std::string& sType, CScan& TheScanner, int& nParentId)
GdbObj::Load( const std::string& sType, Scanner& TheScanner, int& nParentId)
{
int nType ;
string sLine ;
+1 -1
View File
@@ -25,7 +25,7 @@ class GdbObj : public GdbNode
virtual ~GdbObj( void) ;
virtual GdbObj* Clone( int nId, IdManager& IdMgr) const ;
virtual bool Save( std::ostream& osOut) const ;
virtual bool Load( const std::string& sType, CScan& TheScanner, int& nParentId) ;
virtual bool Load( const std::string& sType, Scanner& TheScanner, int& nParentId) ;
virtual bool Translate( const Vector3d& vtMove) ;
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dCosAng, double dSinAng) ;
virtual bool Rotate( const Point3d& ptAx, const Vector3d& vtAx, double dAngDeg)
+1 -1
View File
@@ -91,7 +91,7 @@ GeoFrame3d::Save( ostream& osOut) const
//----------------------------------------------------------------------------
bool
GeoFrame3d::Load( CScan& TheScanner)
GeoFrame3d::Load( Scanner& TheScanner)
{
Point3d ptOrig ;
Vector3d vtDirX ;
+1 -1
View File
@@ -26,7 +26,7 @@ class GeoFrame3d : public IGeoFrame3d
virtual const std::string& GetKey( void) const ;
virtual bool IsValid( void) const { return ( m_frF.GetType() != Frame3d::ERR) ; }
virtual bool Save( std::ostream& osOut) const ;
virtual bool Load( CScan& TheScanner) ;
virtual bool Load( Scanner& TheScanner) ;
virtual bool GetFrame( Frame3d& frF) const
{ frF = m_frF ; return true ;}
virtual bool Translate( const Vector3d& vtMove)
+1 -1
View File
@@ -77,7 +77,7 @@ GeoPoint3d::Save( ostream& osOut) const
//----------------------------------------------------------------------------
bool
GeoPoint3d::Load( CScan& TheScanner)
GeoPoint3d::Load( Scanner& TheScanner)
{
string sLine ;
+1 -1
View File
@@ -26,7 +26,7 @@ class GeoPoint3d : public IGeoPoint3d
virtual const std::string& GetKey( void) const ;
virtual bool IsValid( void) const { return true ; }
virtual bool Save( std::ostream& osOut) const ;
virtual bool Load( CScan& TheScanner) ;
virtual bool Load( Scanner& TheScanner) ;
virtual bool GetPoint( Point3d& ptP) const
{ ptP = m_ptP ; return true ;}
virtual bool Translate( const Vector3d& vtMove)
+1 -1
View File
@@ -76,7 +76,7 @@ GeoVector3d::Save( ostream& osOut) const
//----------------------------------------------------------------------------
bool
GeoVector3d::Load( CScan& TheScanner)
GeoVector3d::Load( Scanner& TheScanner)
{
string sLine ;
+1 -1
View File
@@ -26,7 +26,7 @@ class GeoVector3d : public IGeoVector3d
virtual const std::string& GetKey( void) const ;
virtual bool IsValid( void) const { return true ; }
virtual bool Save( std::ostream& osOut) const ;
virtual bool Load( CScan& TheScanner) ;
virtual bool Load( Scanner& TheScanner) ;
virtual bool GetVector( Vector3d& vtV) const
{ vtV = m_vtV ; return true ;}
virtual bool Translate( const Vector3d& vtMove)
+25 -13
View File
@@ -16,6 +16,7 @@
#include "GeomDB.h"
#include "GdbObj.h"
#include "/EgtDev/Include/EgnStringUtils.h"
#include "/EgtDev/Include/EgnStringConverter.h"
#include "/EgtDev/Include/EgtPointerOwner.h"
#include <new>
@@ -80,15 +81,15 @@ GeomDB::Clear( void)
//----------------------------------------------------------------------------
bool
GeomDB::Load( std::ifstream& osIn)
GeomDB::Load( const std::string& sFileIn)
{
bool bOk ;
bool bEnd ;
CScan TheScanner ;
bool bOk ;
bool bEnd ;
Scanner TheScanner ;
// inizializzo lo scanner
if ( ! TheScanner.Init( osIn)) {
if ( ! TheScanner.Init( sFileIn)) {
LOG_ERROR( m_pLogger, "GeomDbLoad : Error on Init ") ;
return false ;
}
@@ -115,7 +116,7 @@ GeomDB::Load( std::ifstream& osIn)
//----------------------------------------------------------------------------
bool
GeomDB::LoadStart( CScan& TheScanner)
GeomDB::LoadStart( Scanner& TheScanner)
{
string sLine ;
@@ -140,7 +141,7 @@ GeomDB::LoadStart( CScan& TheScanner)
//----------------------------------------------------------------------------
bool
GeomDB::LoadOneNode( CScan& TheScanner, bool& bEnd)
GeomDB::LoadOneNode( Scanner& TheScanner, bool& bEnd)
{
int nParentId ;
string sType ;
@@ -188,21 +189,32 @@ GeomDB::LoadOneNode( CScan& TheScanner, bool& bEnd)
//----------------------------------------------------------------------------
bool
GeomDB::Save( std::ofstream& osOut) const
GeomDB::Save( const std::string& sFileOut) const
{
bool bOk = true ;
ofstream ofSave ;
// apertura file
ofSave.open( stringtoW( sFileOut)) ;
if ( ! ofSave.good())
return false ;
// intestazione
osOut << "START" << endl ;
osOut << "GeomDB,1.4a4" << endl ;
ofSave << "START" << endl ;
ofSave << "GeomDB,1.4a4" << endl ;
// ciclo di scrittura degli oggetti
bool bOk = true ;
const GdbNode* pGdbNode = m_GrpRadix.GetFirstNode() ;
while ( pGdbNode != nullptr) {
// oggetto geometrico
if ( ! pGdbNode->Save( osOut))
if ( ! pGdbNode->Save( ofSave))
bOk = false ;
pGdbNode = pGdbNode->GetNext() ;
}
osOut << "END" << endl ;
ofSave << "END" << endl ;
// chiusura file
ofSave.close() ;
return bOk ;
}
+4 -4
View File
@@ -33,8 +33,8 @@ class GeomDB : public IGeomDB
virtual bool Init( ILogger* pLogger) ;
virtual bool ReInit( void) ;
virtual bool Clear( void) ;
virtual bool Load( std::ifstream& osIn) ;
virtual bool Save( std::ofstream& osOut) const ;
virtual bool Load( const std::string& sFileIn) ;
virtual bool Save( const std::string& sFileOut) const ;
virtual bool ExistsNode( int nId) const ;
virtual int AddGroup( int nId, int nParentId, const Frame3d& frFrame) ;
virtual int AddGeoObj( int nId, int nParentId, IGeoObj* pGeoObj) ;
@@ -61,8 +61,8 @@ class GeomDB : public IGeomDB
GdbObj* GetGdbObj( int nId) { return dynamic_cast<GdbObj*>( GetGdbNode( nId)) ; }
GdbGroup* GetGdbGroup( int nId) { return dynamic_cast<GdbGroup*>( GetGdbNode( nId)) ; }
bool AddToGeomDB( GdbNode* pGNode, int nParentId) ;
bool LoadStart( CScan& TheScanner) ;
bool LoadOneNode( CScan& TheScanner, bool& bEnd) ;
bool LoadStart( Scanner& TheScanner) ;
bool LoadOneNode( Scanner& TheScanner, bool& bEnd) ;
private :
GdbGroup m_GrpRadix ; // gruppo radice di tutto il DB