From 692423ced8164dbafbf5ebb40ef22092428c3bcc Mon Sep 17 00:00:00 2001 From: Dario Sassi Date: Mon, 30 Oct 2017 19:25:45 +0000 Subject: [PATCH] Include : - aggiunta funzione SaveGeoObj (da utilizzare per debug in C++) - aggiornameno prototipi. --- EGkGeoObjSave.h | 37 +++++++++++++++++++++++++++++++++++++ EGkIntervals.h | 10 ++++++---- 2 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 EGkGeoObjSave.h diff --git a/EGkGeoObjSave.h b/EGkGeoObjSave.h new file mode 100644 index 0000000..254f8e2 --- /dev/null +++ b/EGkGeoObjSave.h @@ -0,0 +1,37 @@ +//---------------------------------------------------------------------------- +// EgalTech 2017-2017 +//---------------------------------------------------------------------------- +// File : EGkGeoObjSave.h Data : 30.10.17 Versione : 1.8j5 +// Contenuto : Funzione per salvare su file un Oggetto Geometrico. +// +// +// +// Modifiche : 30.10.17 DS Creazione modulo. +// +//---------------------------------------------------------------------------- + +#pragma once + +#include "/EgtDev/Include/EGkGeomDB.h" +#include "/EgtDev/Include/EgtPointerOwner.h" + + +//---------------------------------------------------------------------------- +bool +SaveGeoObj( IGeoObj* pGObj, const std::string& sFile, int nFlag = GDB_SV_BIN) +{ + // creo GeomDB temporaneo + PtrOwner pGeomDB( CreateGeomDB()) ; + if ( IsNull( pGeomDB)) + return false ; + // inserisco l'oggetto nel GeomDB + int nId = pGeomDB->AddGeoObj( GDB_ID_NULL, GDB_ID_ROOT, pGObj) ; + if ( nId == GDB_ID_NULL) + return false ; + // eseguo il salvataggio + bool bOk = pGeomDB->Save( nId, sFile, nFlag) ; + // rimuovo l'oggetto dal GeomDB + bOk = ( pGeomDB->RemoveGeoObjAndErase( nId) != nullptr) && bOk ; + + return bOk ; +} \ No newline at end of file diff --git a/EGkIntervals.h b/EGkIntervals.h index b7baa85..3048c00 100644 --- a/EGkIntervals.h +++ b/EGkIntervals.h @@ -45,9 +45,11 @@ class Intervals { return m_lInts.empty() ; } EGK_EXPORT int GetCount( void) const { return int( m_lInts.size()) ; } - EGK_EXPORT bool GetMinMax( double& dMin, double& dMax) ; - EGK_EXPORT bool GetFirst( double& dMin, double& dMax) ; - EGK_EXPORT bool GetNext( double& dMin, double& dMax) ; + EGK_EXPORT bool GetMinMax( double& dMin, double& dMax) const ; + EGK_EXPORT bool GetFirst( double& dMin, double& dMax) const ; + EGK_EXPORT bool GetNext( double& dMin, double& dMax) const ; + EGK_EXPORT bool GetLast( double& dMin, double& dMax) const ; + EGK_EXPORT bool GetPrev( double& dMin, double& dMax) const ; private : typedef std::pair INTERV ; // intervallo, definito come insieme di minimo e massimo @@ -57,5 +59,5 @@ class Intervals private : double m_dToler ; INTERVLIST m_lInts ; - INTL_CINT m_Iter ; + mutable INTL_CINT m_Iter ; } ;