EgtGeomKernel 1.5c6 :

- aggiunta gestione attributi Level, Mode e Status
- aggiunti comandi per assegnarli.
This commit is contained in:
Dario Sassi
2014-03-14 18:38:48 +00:00
parent 01ce6ea4a4
commit e2c8e72e22
13 changed files with 770 additions and 80 deletions
+25 -22
View File
@@ -31,35 +31,34 @@ Attribs::Dump( string& sOut, const char* szNewLine) const
// livello
sOut += "Lev=" ;
switch ( m_Data[LEVEL]) {
default : /* LEV_USER */ sOut += "user" ; break ;
case LEV_SYSTEM : sOut += "system" ; break ;
case LEV_TEMP : sOut += "temp" ; break ;
default : /* GDB_LV_USER */ sOut += "user" ; break ;
case GDB_LV_SYSTEM : sOut += "system" ; break ;
case GDB_LV_TEMP : sOut += "temp" ; break ;
}
// modo
sOut += " Mod=" ;
switch ( m_Data[MODE]) {
default : /* MOD_STD */ sOut += "std" ; break ;
case MOD_LOCKED : sOut += "locked" ; break ;
case MOD_HIDDEN : sOut += "hidden" ; break ;
default : /* GDB_MD_STD */ sOut += "std" ; break ;
case GDB_MD_LOCKED : sOut += "locked" ; break ;
case GDB_MD_HIDDEN : sOut += "hidden" ; break ;
}
// stato
sOut += " Sta=" ;
switch ( m_Data[STATUS]) {
default : /* STS_ON */ sOut += "on" ; break ;
case STS_SEL : sOut += "sel" ; break ;
case STS_OFF : sOut += "off" ; break ;
default : /* GDB_ST_ON */ sOut += "on" ; break ;
case GDB_ST_SEL : sOut += "sel" ; break ;
case GDB_ST_OFF : sOut += "off" ; break ;
}
sOut += szNewLine ;
// materiale
sOut += "Mat=" ;
switch ( m_Material) {
case MAT_PARENT : sOut += "by parent" ; break ;
case MAT_COLOR : sOut += "color" ; break ;
case MAT_NULL : sOut += "null" ; break ;
case GDB_MT_COLOR : sOut += "color" ; break ;
case GDB_MT_PARENT : sOut += "by parent" ; break ;
default : sOut += ToString( m_Material) ; break ;
}
// eventuale colore
if ( m_Material != MAT_PARENT && m_Material != MAT_NULL) {
if ( m_Material == GDB_MT_COLOR) {
sOut += " Col=" ;
string sColName ;
if ( GetNameOfStdColor( m_Color, sColName))
@@ -91,8 +90,9 @@ Attribs::Save( ostream& osOut) const
osOut << ToString( m_Data[LEVEL]) << "," ;
// modo
osOut << ToString( m_Data[MODE]) << "," ;
// stato
osOut << ToString( m_Data[STATUS]) << "," ;
// stato (se SEL viene convertito in ON)
int nStat = (( m_Data[STATUS] == GDB_ST_SEL) ? GDB_ST_ON : m_Data[STATUS]) ;
osOut << ToString( nStat) << "," ;
// altro
osOut << ToString( m_Data[OTHER]) << ";" ;
// materiale
@@ -126,11 +126,14 @@ Attribs::Load( Scanner& TheScanner)
// Data (Level,Mode,Status,Other)
if ( ! DataFromString( vsParams[0]))
return false ;
// OldData è inizializzato con Data
for ( int i = 0 ; i < DIM ; ++ i)
m_OldData[i] = m_Data[i] ;
// materiale
int nMat ;
if ( ! FromString( vsParams[1], nMat))
return false ;
m_Material = __max( nMat, MAT_PARENT) ;
m_Material = __max( nMat, GDB_MT_COLOR) ;
// colore
if ( ! FromString( vsParams[2], m_Color))
return false ;
@@ -164,22 +167,22 @@ Attribs::DataFromString( const string& sParam)
int nLev ;
if ( ! FromString( vsParams[0], nLev))
return false ;
m_Data[LEVEL] = CLIP( nLev, LEV_USER, LEV_TEMP) ;
m_Data[LEVEL] = CLIP( nLev, GDB_LV_USER, GDB_LV_TEMP) ;
// modo
int nMode ;
if ( ! FromString( vsParams[1], nMode))
return false ;
m_Data[MODE] = CLIP( nMode, MOD_STD, MOD_HIDDEN) ;
m_Data[MODE] = CLIP( nMode, GDB_MD_STD, GDB_MD_HIDDEN) ;
// stato
int nStat ;
if ( ! FromString( vsParams[2], nStat))
return false ;
m_Data[STATUS] = CLIP( nStat, STS_ON, STS_OFF) ;
m_Data[STATUS] = CLIP( nStat, GDB_ST_ON, GDB_ST_OFF) ;
// altro
int nOther ;
if ( ! FromString( vsParams[3], nOther))
int nOldStatus ;
if ( ! FromString( vsParams[3], nOldStatus))
return false ;
m_Data[OTHER] = CLIP( nOther, 0, 255) ;
m_Data[OTHER] = CLIP( nOldStatus, 0, 255) ;
return true ;
}