EgtGeomKernel 1.5c6 :
- aggiunta gestione attributi Level, Mode e Status - aggiunti comandi per assegnarli.
This commit is contained in:
+186
-10
@@ -37,7 +37,7 @@ CreateGeomDB( void)
|
||||
GeomDB::GeomDB( void)
|
||||
{
|
||||
m_GrpRadix.m_nId = GDB_ID_ROOT ;
|
||||
m_GrpRadix.SetColor( Color( 0, 0, 0)) ;
|
||||
m_GrpRadix.SetColor( Color()) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -53,7 +53,7 @@ GeomDB::Init( void)
|
||||
// imposto numero minimo buckets del map degli Id
|
||||
m_IdManager.Init( 1024) ;
|
||||
// imposto colore di default
|
||||
m_GrpRadix.SetColor( Color( 0, 0, 0)) ;
|
||||
m_GrpRadix.SetColor( Color()) ;
|
||||
|
||||
return true ;
|
||||
}
|
||||
@@ -221,9 +221,16 @@ GeomDB::Save( const std::string& sFileOut) const
|
||||
// ciclo di scrittura degli oggetti
|
||||
const GdbObj* pGdbObj = m_GrpRadix.GetFirstObj() ;
|
||||
while ( pGdbObj != nullptr) {
|
||||
// oggetto geometrico
|
||||
if ( ! pGdbObj->Save( ofSave))
|
||||
bOk = false ;
|
||||
// recupero il livello dell'oggetto
|
||||
int nLevel = GDB_LV_USER ;
|
||||
pGdbObj->GetLevel( nLevel) ;
|
||||
// se non temporaneo
|
||||
if ( nLevel != GDB_LV_TEMP) {
|
||||
// salvo l'oggetto
|
||||
if ( ! pGdbObj->Save( ofSave))
|
||||
bOk = false ;
|
||||
}
|
||||
// passo al successivo
|
||||
pGdbObj = pGdbObj->GetNext() ;
|
||||
}
|
||||
ofSave << "END" << endl ;
|
||||
@@ -370,7 +377,7 @@ GeomDB::AddGeoObj( int nId, int nParentId, IGeoObj* pGeoObj)
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
GdbType
|
||||
int
|
||||
GeomDB::GetGdbType( int nId) const
|
||||
{
|
||||
const GdbObj* pGdbObj ;
|
||||
@@ -378,17 +385,17 @@ GeomDB::GetGdbType( int nId) const
|
||||
|
||||
// recupero l'oggetto
|
||||
if ( ( pGdbObj = (const_cast<GeomDB*> (this))->GetGdbObj( nId)) == nullptr)
|
||||
return GDB_NONE ;
|
||||
return GDB_TY_NONE ;
|
||||
|
||||
// se oggetto geometrico
|
||||
if ( ::GetGdbGeo( pGdbObj) != nullptr)
|
||||
return GDB_GEO ;
|
||||
return GDB_TY_GEO ;
|
||||
// se gruppo
|
||||
else if ( ::GetGdbGroup( pGdbObj) != nullptr)
|
||||
return GDB_GROUP ;
|
||||
return GDB_TY_GROUP ;
|
||||
// altro
|
||||
else
|
||||
return GDB_NONE ;
|
||||
return GDB_TY_NONE ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -781,6 +788,162 @@ GeomDB::DumpAttributes( int nId, string& sOut, const char* szNewLine) const
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GeomDB::SetLevel( int nId, int nLevel)
|
||||
{
|
||||
// recupero l'oggetto
|
||||
GdbObj* pGdbObj ;
|
||||
if ( ( pGdbObj = GetGdbObj( nId)) == nullptr)
|
||||
return false ;
|
||||
|
||||
// assegno il livello
|
||||
return pGdbObj->SetLevel( nLevel) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GeomDB::RevertLevel( int nId)
|
||||
{
|
||||
// recupero l'oggetto
|
||||
GdbObj* pGdbObj ;
|
||||
if ( ( pGdbObj = GetGdbObj( nId)) == nullptr)
|
||||
return false ;
|
||||
|
||||
// ripristino il livello precedente
|
||||
return pGdbObj->RevertLevel() ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GeomDB::GetLevel( int nId, int& nLevel) const
|
||||
{
|
||||
// recupero l'oggetto
|
||||
const GdbObj* pGdbObj ;
|
||||
if ( ( pGdbObj = (const_cast<GeomDB*>(this))->GetGdbObj( nId)) == nullptr)
|
||||
return false ;
|
||||
|
||||
// recupero il livello
|
||||
return pGdbObj->GetLevel( nLevel) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GeomDB::GetCalcLevel( int nId, int& nLevel) const
|
||||
{
|
||||
// recupero l'oggetto
|
||||
const GdbObj* pGdbObj ;
|
||||
if ( ( pGdbObj = (const_cast<GeomDB*>(this))->GetGdbObj( nId)) == nullptr)
|
||||
return false ;
|
||||
|
||||
// recupero il livello calcolato
|
||||
return pGdbObj->GetCalcLevel( nLevel) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GeomDB::SetMode( int nId, int nMode)
|
||||
{
|
||||
// recupero l'oggetto
|
||||
GdbObj* pGdbObj ;
|
||||
if ( ( pGdbObj = GetGdbObj( nId)) == nullptr)
|
||||
return false ;
|
||||
|
||||
// assegno il modo
|
||||
return pGdbObj->SetMode( nMode) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GeomDB::RevertMode( int nId)
|
||||
{
|
||||
// recupero l'oggetto
|
||||
GdbObj* pGdbObj ;
|
||||
if ( ( pGdbObj = GetGdbObj( nId)) == nullptr)
|
||||
return false ;
|
||||
|
||||
// ripristino il modo precedente
|
||||
return pGdbObj->RevertMode() ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GeomDB::GetMode( int nId, int& nMode) const
|
||||
{
|
||||
// recupero l'oggetto
|
||||
const GdbObj* pGdbObj ;
|
||||
if ( ( pGdbObj = (const_cast<GeomDB*>(this))->GetGdbObj( nId)) == nullptr)
|
||||
return false ;
|
||||
|
||||
// recupero il modo
|
||||
return pGdbObj->GetMode( nMode) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GeomDB::GetCalcMode( int nId, int& nMode) const
|
||||
{
|
||||
// recupero l'oggetto
|
||||
const GdbObj* pGdbObj ;
|
||||
if ( ( pGdbObj = (const_cast<GeomDB*>(this))->GetGdbObj( nId)) == nullptr)
|
||||
return false ;
|
||||
|
||||
// recupero il modo calcolato
|
||||
return pGdbObj->GetCalcMode( nMode) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GeomDB::SetStatus( int nId, int nStat)
|
||||
{
|
||||
// recupero l'oggetto
|
||||
GdbObj* pGdbObj ;
|
||||
if ( ( pGdbObj = GetGdbObj( nId)) == nullptr)
|
||||
return false ;
|
||||
|
||||
// assegno lo stato
|
||||
return pGdbObj->SetStatus( nStat) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GeomDB::RevertStatus( int nId)
|
||||
{
|
||||
// recupero l'oggetto
|
||||
GdbObj* pGdbObj ;
|
||||
if ( ( pGdbObj = GetGdbObj( nId)) == nullptr)
|
||||
return false ;
|
||||
|
||||
// ripristino lo stato precedente
|
||||
return pGdbObj->RevertStatus() ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GeomDB::GetStatus( int nId, int& nStat) const
|
||||
{
|
||||
// recupero l'oggetto
|
||||
const GdbObj* pGdbObj ;
|
||||
if ( ( pGdbObj = (const_cast<GeomDB*>(this))->GetGdbObj( nId)) == nullptr)
|
||||
return false ;
|
||||
|
||||
// recupero lo stato
|
||||
return pGdbObj->GetStatus( nStat) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GeomDB::GetCalcStatus( int nId, int& nStat) const
|
||||
{
|
||||
// recupero l'oggetto
|
||||
const GdbObj* pGdbObj ;
|
||||
if ( ( pGdbObj = (const_cast<GeomDB*>(this))->GetGdbObj( nId)) == nullptr)
|
||||
return false ;
|
||||
|
||||
// recupero lo stato calcolato
|
||||
return pGdbObj->GetCalcStatus( nStat) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GeomDB::SetDefaultColor( Color cCol)
|
||||
@@ -833,6 +996,19 @@ GeomDB::GetColor( int nId, Color& cCol) const
|
||||
return pGdbObj->GetColor( cCol) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GeomDB::GetCalcColor( int nId, Color& cCol) const
|
||||
{
|
||||
// recupero l'oggetto
|
||||
const GdbObj* pGdbObj ;
|
||||
if ( ( pGdbObj = (const_cast<GeomDB*>(this))->GetGdbObj( nId)) == nullptr)
|
||||
return false ;
|
||||
|
||||
// recupero il colore calcolato
|
||||
return pGdbObj->GetCalcColor( cCol) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GeomDB::SetName( int nId, const string& sName)
|
||||
|
||||
Reference in New Issue
Block a user