diff --git a/EgtGeomKernel.rc b/EgtGeomKernel.rc index 0d40206..23d54df 100644 Binary files a/EgtGeomKernel.rc and b/EgtGeomKernel.rc differ diff --git a/GdbExecutor.cpp b/GdbExecutor.cpp index bb53ede..360101c 100644 --- a/GdbExecutor.cpp +++ b/GdbExecutor.cpp @@ -70,10 +70,6 @@ GdbExecutor::SetCmdParser( ICmdParser* pParser) if ( m_pOtherExec != nullptr) m_pOtherExec->SetCmdParser( m_pParser) ; - // imposto variabili predefinite - m_pParser->AddVariable( "$ROOT", GDB_ID_ROOT) ; - m_pParser->AddVariable( "$NN", ID_NO) ; - return true ; } @@ -94,6 +90,20 @@ GdbExecutor::SetGeomDB( IGeomDB* pGdb) return ( m_pGDB != nullptr) ; } +//---------------------------------------------------------------------------- +bool +GdbExecutor::AddStandardVariables( void) +{ + // imposto variabili predefinite + m_pParser->AddVariable( "$ROOT", GDB_ID_ROOT) ; + m_pParser->AddVariable( "$NN", ID_NO) ; + // se c'è esecutore dipendente + if ( m_pOtherExec != nullptr) + return m_pOtherExec->AddStandardVariables() ; + else + return true ; +} + //---------------------------------------------------------------------------- bool GdbExecutor::Execute( const string& sCmd1, const string& sCmd2, const STRVECTOR& vsParams) @@ -134,8 +144,8 @@ GdbExecutor::Execute( const string& sCmd1, const string& sCmd2, const STRVECTOR& return ExecuteMode( sCmd2, vsParams) ; else if ( sCmd1 == "STA" || sCmd1 == "STATUS") return ExecuteStatus( sCmd2, vsParams) ; - else if ( sCmd1 == "COL" || sCmd1 == "COLOR") - return ExecuteColor( sCmd2, vsParams) ; + else if ( sCmd1 == "MAT" || sCmd1 == "MATERIAL") + return ExecuteMaterial( sCmd2, vsParams) ; else if ( sCmd1 == "NAM" || sCmd1 == "NAME") return ExecuteName( sCmd2, vsParams) ; else if ( sCmd1 == "INF" || sCmd1 == "INFO") @@ -164,8 +174,6 @@ GdbExecutor::Execute( const string& sCmd1, const string& sCmd2, const STRVECTOR& return ExecuteSave( vsParams) ; else if ( sCmd1 == "OUTSCL") return ExecuteOutScl( sCmd2, vsParams) ; - else if ( sCmd1 == "COUNTER") - return ExecuteCounter( sCmd2, vsParams) ; else if ( m_pOtherExec != nullptr) return m_pOtherExec->Execute( sCmd1, sCmd2, vsParams) ; @@ -1023,7 +1031,7 @@ GdbExecutor::ExecuteStatus( const string& sCmd2, const STRVECTOR& vsParams) //---------------------------------------------------------------------------- bool -GdbExecutor::ExecuteColor( const string& sCmd2, const STRVECTOR& vsParams) +GdbExecutor::ExecuteMaterial( const string& sCmd2, const STRVECTOR& vsParams) { // assegnazione colore di oggetto if ( sCmd2.empty()) { @@ -1041,7 +1049,7 @@ GdbExecutor::ExecuteColor( const string& sCmd2, const STRVECTOR& vsParams) // esecuzione impostazione colore STRVECTOR::iterator Iter ; for ( Iter = vsNames.begin() ; Iter != vsNames.end() ; ++Iter) { - if ( ! m_pGDB->SetColor( GetIdParam( *Iter), cCol)) + if ( ! m_pGDB->SetMaterial( GetIdParam( *Iter), cCol)) return false ; } return true ; @@ -1056,7 +1064,7 @@ GdbExecutor::ExecuteColor( const string& sCmd2, const STRVECTOR& vsParams) if ( ! GetColorParam( vsParams[0], cCol)) return false ; // imposto il colore di default - return m_pGDB->SetDefaultColor( cCol) ; + return m_pGDB->SetDefaultMaterial( cCol) ; } return false ; @@ -1615,22 +1623,3 @@ GdbExecutor::OutGroupScl( int nId, int nFlag) return true ; } - -//---------------------------------------------------------------------------- -bool -GdbExecutor::ExecuteCounter( const string& sCmd2, const STRVECTOR& vsParams) -{ - // avvio il counter - if ( sCmd2 == "START") { - m_Counter.Start() ; - } - // fermo il counter ed emetto i risultati - else if ( sCmd2 == "STOP") { - m_Counter.Stop() ; - string sOut = " " + ( ( vsParams.size() >= 1) ? vsParams[0] : "ExecTime =") ; - sOut += " " + ToString( m_Counter.GetTime(), 2) + " ms" ; - LOG_INFO( GetEGkLogger(), sOut.c_str()) - } - - return true ; -} \ No newline at end of file diff --git a/GdbExecutor.h b/GdbExecutor.h index 04fdf09..e6ca7a6 100644 --- a/GdbExecutor.h +++ b/GdbExecutor.h @@ -23,15 +23,18 @@ class Color ; //---------------------------------------------------------------------------- class GdbExecutor : public IGdbExecutor { - public : + public : // ICmdExecutor virtual bool SetCmdParser( ICmdParser* pParser) ; virtual bool AddExecutor( ICmdExecutor* pOtherExec) ; + virtual bool AddStandardVariables( void) ; virtual bool Execute( const std::string& sCmd1, const std::string& sCmd2, const STRVECTOR& vsParams) ; + + public : // IGdbExecutor + ~GdbExecutor( void) ; virtual bool SetGeomDB( IGeomDB* pGdb) ; public : GdbExecutor( void) ; - ~GdbExecutor( void) ; private : bool AddGeoObj( const std::string& sId, const std::string& sIdParent, IGeoObj* pGeoObj) ; @@ -53,7 +56,7 @@ class GdbExecutor : public IGdbExecutor bool ExecuteLevel( const std::string& sCmd2, const STRVECTOR& vsParams) ; bool ExecuteMode( const std::string& sCmd2, const STRVECTOR& vsParams) ; bool ExecuteStatus( const std::string& sCmd2, const STRVECTOR& vsParams) ; - bool ExecuteColor( const std::string& sCmd2, const STRVECTOR& vsParams) ; + bool ExecuteMaterial( const std::string& sCmd2, const STRVECTOR& vsParams) ; bool ExecuteName( const std::string& sCmd2, const STRVECTOR& vsParams) ; bool ExecuteInfo( const std::string& sCmd2, const STRVECTOR& vsParams) ; bool ExecuteCopy( const std::string& sCmd2, const STRVECTOR& vsParams) ; @@ -69,12 +72,10 @@ class GdbExecutor : public IGdbExecutor bool ExecuteSave( const STRVECTOR& vsParams) ; bool ExecuteOutScl( const std::string& sCmd2, const STRVECTOR& vsParams) ; bool OutGroupScl( int nId, int nFlag) ; - bool ExecuteCounter( const std::string& sCmd2, const STRVECTOR& vsParams) ; private : IGeomDB* m_pGDB ; ICmdParser* m_pParser ; ICmdExecutor* m_pOtherExec ; OutScl m_OutScl ; - PerformanceCounter m_Counter ; } ; diff --git a/GdbGeo.cpp b/GdbGeo.cpp index e84cf95..526c232 100644 --- a/GdbGeo.cpp +++ b/GdbGeo.cpp @@ -244,3 +244,13 @@ GdbGeo::ToLoc( const Frame3d& frRef) return m_pGeoObj->ToLoc( frRef) ; } + +//---------------------------------------------------------------------------- +bool +GdbGeo::OnSetMaterial( void) +{ + if ( m_pGeoObj->GetObjGraphics() != nullptr) + m_pGeoObj->GetObjGraphics()->Reset() ; + + return true ; +} diff --git a/GdbGeo.h b/GdbGeo.h index 7ae4148..3bf6e1d 100644 --- a/GdbGeo.h +++ b/GdbGeo.h @@ -38,6 +38,7 @@ class GdbGeo : public GdbObj virtual bool Mirror( const Point3d& ptOn, const Vector3d& vtNorm) ; virtual bool ToGlob( const Frame3d& frRef) ; virtual bool ToLoc( const Frame3d& frRef) ; + virtual bool OnSetMaterial( void) ; public : GdbGeo( void) ; diff --git a/GdbGroup.cpp b/GdbGroup.cpp index d0ceaa9..36ad942 100644 --- a/GdbGroup.cpp +++ b/GdbGroup.cpp @@ -246,7 +246,7 @@ GdbGroup::Scale( const Frame3d& frRef, double dCoeffX, double dCoeffY, double dC Frame3d frRefLoc = frRef ; frRefLoc.ToLoc( m_gfrFrame.m_frF) ; - // ciclo sui nodi + // ciclo sugli oggetti bool bOk = true ; pGdbObj = GetFirstObj() ; while ( pGdbObj != nullptr) { @@ -287,7 +287,7 @@ GdbGroup::Mirror( const Point3d& ptOn, const Vector3d& vtNorm) Vector3d vtNormLoc = vtNorm ; vtNormLoc.ToLoc( m_gfrFrame.m_frF) ; - // ciclo sui nodi + // ciclo sugli oggetti bool bOk = true ; pGdbObj = GetFirstObj() ; while ( pGdbObj != nullptr) { @@ -299,6 +299,27 @@ GdbGroup::Mirror( const Point3d& ptOn, const Vector3d& vtNorm) return bOk ; } +//---------------------------------------------------------------------------- +bool +GdbGroup::OnSetMaterial( void) +{ + // ciclo sugli oggetti + bool bOk = true ; + GdbObj* pGdbObj = GetFirstObj() ; + while ( pGdbObj != nullptr) { + // se non ci sono attributi o ci si deve riferire al padre + int nMat ; + if ( ! pGdbObj->GetMaterial( nMat) || nMat == GDB_MT_PARENT) { + if ( ! pGdbObj->OnSetMaterial()) + bOk = false ; + } + // passo al prossimo + pGdbObj = pGdbObj->GetNext() ; + } + + return bOk ; +} + //---------------------------------------------------------------------------- bool GdbGroup::GetGlobFrame( Frame3d& frGlob) const diff --git a/GdbGroup.h b/GdbGroup.h index 39f3a1d..5b81ac1 100644 --- a/GdbGroup.h +++ b/GdbGroup.h @@ -41,6 +41,7 @@ class GdbGroup : public GdbObj { return m_gfrFrame.m_frF.ToGlob( frRef) ; } virtual bool ToLoc( const Frame3d& frRef) { return m_gfrFrame.m_frF.ToLoc( frRef) ; } + virtual bool OnSetMaterial( void) ; public : GdbGroup( void) ; diff --git a/GdbIterator.cpp b/GdbIterator.cpp index ee9b08a..57706a2 100644 --- a/GdbIterator.cpp +++ b/GdbIterator.cpp @@ -422,35 +422,68 @@ GdbIterator::GetCalcStatus( int& nStat) const //---------------------------------------------------------------------------- bool -GdbIterator::SetColor( Color cCol) +GdbIterator::SetMaterial( int nMat) { if ( m_pGDB == nullptr || m_pCurrObj == nullptr) return false ; - // assegno il colore - return m_pCurrObj->SetColor( cCol) ; + // assegno il materiale tramite indice + return m_pCurrObj->SetMaterial( nMat) ; } //---------------------------------------------------------------------------- bool -GdbIterator::GetColor( Color& cCol) const +GdbIterator::SetMaterial( Color cCol) { if ( m_pGDB == nullptr || m_pCurrObj == nullptr) return false ; - // recupero il colore - return m_pCurrObj->GetColor( cCol) ; + // assegno il materiale tramite colore + return m_pCurrObj->SetMaterial( cCol) ; } //---------------------------------------------------------------------------- bool -GdbIterator::GetCalcColor( Color& cCol) const +GdbIterator::GetMaterial( int& nMat) const { if ( m_pGDB == nullptr || m_pCurrObj == nullptr) return false ; - // recupero il colore calcolato - return m_pCurrObj->GetCalcColor( cCol) ; + // recupero l'indice del materiale + return m_pCurrObj->GetMaterial( nMat) ; +} + +//---------------------------------------------------------------------------- +bool +GdbIterator::GetMaterial( Color& cCol) const +{ + if ( m_pGDB == nullptr || m_pCurrObj == nullptr) + return false ; + + // recupero il colore del materiale + return m_pCurrObj->GetMaterial( cCol) ; +} + +//---------------------------------------------------------------------------- +bool +GdbIterator::GetCalcMaterial( int& nMat) const +{ + if ( m_pGDB == nullptr || m_pCurrObj == nullptr) + return false ; + + // recupero l'indice del materiale calcolato + return m_pCurrObj->GetCalcMaterial( nMat) ; +} + +//---------------------------------------------------------------------------- +bool +GdbIterator::GetCalcMaterial( Color& cCol) const +{ + if ( m_pGDB == nullptr || m_pCurrObj == nullptr) + return false ; + + // recupero il colore del materiale calcolato + return m_pCurrObj->GetCalcMaterial( cCol) ; } //---------------------------------------------------------------------------- diff --git a/GdbIterator.h b/GdbIterator.h index b469c17..814ad25 100644 --- a/GdbIterator.h +++ b/GdbIterator.h @@ -53,9 +53,12 @@ class GdbIterator : public IGdbIterator virtual bool RevertStatus( void) ; virtual bool GetStatus( int& nStat) const ; virtual bool GetCalcStatus( int& nStat) const ; - virtual bool SetColor( Color cCol) ; - virtual bool GetColor( Color& cCol) const ; - virtual bool GetCalcColor( Color& cCol) const ; + virtual bool SetMaterial( int nMat) ; + virtual bool SetMaterial( Color cCol) ; + virtual bool GetMaterial( int& nMat) const ; + virtual bool GetMaterial( Color& cCol) const ; + virtual bool GetCalcMaterial( int& nMat) const ; + virtual bool GetCalcMaterial( Color& cCol) const ; virtual bool SetName( const std::string& sName) ; virtual bool GetName( std::string& sName) const ; virtual bool RemoveName( void) ; diff --git a/GdbObj.cpp b/GdbObj.cpp index c49f1a1..b539f15 100644 --- a/GdbObj.cpp +++ b/GdbObj.cpp @@ -439,20 +439,58 @@ GdbObj::GetCalcStatus( int& nStat, int nLev) const //---------------------------------------------------------------------------- bool -GdbObj::SetColor( Color cCol) +GdbObj::SetMaterial( int nMat) { + // per ora ammesso solo da padre (da colore si imposta con la SetColor) + if ( nMat != GDB_MT_PARENT) + return false ; + // verifico esistenza (con eventuale creazione) degli attributi if ( GetSafeAttribs() == nullptr) return false ; - // assegno il colore - m_pAttribs->SetColor( cCol) ; + // assegno il materiale + m_pAttribs->SetMaterial( nMat) ; + + // notifico l'oggetto vero + OnSetMaterial() ; + return true ; } //---------------------------------------------------------------------------- bool -GdbObj::GetColor( Color& cCol) const +GdbObj::SetMaterial( Color cCol) +{ + // verifico esistenza (con eventuale creazione) degli attributi + if ( GetSafeAttribs() == nullptr) + return false ; + + // assegno il colore (e imposto il materiale da colore) + m_pAttribs->SetColor( cCol) ; + + // notifico l'oggetto vero + OnSetMaterial() ; + + return true ; +} + +//---------------------------------------------------------------------------- +bool +GdbObj::GetMaterial( int& nMat) const +{ + // se non ci sono attributi + if ( m_pAttribs == nullptr) + return false ; + + // il materiale è definito + nMat = m_pAttribs->GetMaterial() ; + return true ; +} + +//---------------------------------------------------------------------------- +bool +GdbObj::GetMaterial( Color& cCol) const { // se non ci sono attributi o ci si deve riferire al padre if ( m_pAttribs == nullptr || @@ -466,13 +504,32 @@ GdbObj::GetColor( Color& cCol) const //---------------------------------------------------------------------------- bool -GdbObj::GetCalcColor( Color& cCol) const +GdbObj::GetCalcMaterial( int& nMat) const { // se non ci sono attributi o ci si deve riferire al padre if ( m_pAttribs == nullptr || m_pAttribs->GetMaterial() == GDB_MT_PARENT) { if ( GetParent() != nullptr) - GetParent()->GetCalcColor( cCol) ; + GetParent()->GetCalcMaterial( nMat) ; + else + nMat = GDB_MT_COLOR ; + return true ; + } + + // il materiale è definito + nMat = m_pAttribs->GetMaterial() ; + return true ; +} + +//---------------------------------------------------------------------------- +bool +GdbObj::GetCalcMaterial( Color& cCol) const +{ + // se non ci sono attributi o ci si deve riferire al padre + if ( m_pAttribs == nullptr || + m_pAttribs->GetMaterial() == GDB_MT_PARENT) { + if ( GetParent() != nullptr) + GetParent()->GetCalcMaterial( cCol) ; else cCol.Set() ; return true ; diff --git a/GdbObj.h b/GdbObj.h index 16b1888..3c3b2a2 100644 --- a/GdbObj.h +++ b/GdbObj.h @@ -41,6 +41,7 @@ class GdbObj virtual bool Mirror( const Point3d& ptOn, const Vector3d& vtNorm) = 0 ; virtual bool ToGlob( const Frame3d& frRef) = 0 ; virtual bool ToLoc( const Frame3d& frRef) = 0 ; + virtual bool OnSetMaterial( void) = 0 ; public : GdbObj( void) ; @@ -64,9 +65,12 @@ class GdbObj bool RevertStatus( void) ; bool GetStatus( int& nStat) const ; bool GetCalcStatus( int& nStat, int nLev = 0) const ; - bool SetColor( Color cCol) ; - bool GetColor( Color& cCol) const ; - bool GetCalcColor( Color& cCol) const ; + bool SetMaterial( int nMat) ; + bool SetMaterial( Color cCol) ; + bool GetMaterial( int& nMat) const ; + bool GetMaterial( Color& cCol) const ; + bool GetCalcMaterial( int& nMat) const ; + bool GetCalcMaterial( Color& cCol) const ; bool SetName( const std::string& sName) ; bool GetName( std::string& sName) const ; bool RemoveName( void) ; diff --git a/GeomDB.cpp b/GeomDB.cpp index 52f5651..ccb5e15 100644 --- a/GeomDB.cpp +++ b/GeomDB.cpp @@ -37,7 +37,7 @@ CreateGeomDB( void) GeomDB::GeomDB( void) { m_GrpRadix.m_nId = GDB_ID_ROOT ; - m_GrpRadix.SetColor( Color()) ; + m_GrpRadix.SetMaterial( Color()) ; } //---------------------------------------------------------------------------- @@ -52,8 +52,8 @@ GeomDB::Init( void) { // imposto numero minimo buckets del map degli Id m_IdManager.Init( 1024) ; - // imposto colore di default - m_GrpRadix.SetColor( Color()) ; + // imposto materiale di default + m_GrpRadix.SetMaterial( Color()) ; return true ; } @@ -128,8 +128,8 @@ GeomDB::LoadHeader( Scanner& TheScanner) // recupero la linea if ( ! TheScanner.GetLine( sLine)) return false ; - // deve essere il colore di default - if ( sLine != "COL_DEF") + // deve essere il materiale di default + if ( sLine != "MAT_DEF") return false ; // recupero la riga successiva if ( ! TheScanner.GetLine( sLine)) @@ -140,7 +140,7 @@ GeomDB::LoadHeader( Scanner& TheScanner) // 4 parametri if ( vsParams.size() != 4) return false ; - // leggo il colore + // leggo il materiale come colore int nRed ; if ( ! FromString( vsParams[0], nRed)) return false ; @@ -154,7 +154,7 @@ GeomDB::LoadHeader( Scanner& TheScanner) if ( ! FromString( vsParams[3], nAlpha)) return false ; Color colDef( nRed, nGreen, nBlue, nAlpha) ; - return SetDefaultColor( colDef) ; + return SetDefaultMaterial( colDef) ; } //---------------------------------------------------------------------------- @@ -247,12 +247,12 @@ GeomDB::SaveHeader( ostream& osOut) const { // intestazione osOut << "START" << endl ; - osOut << "GeomDB,1.5.3.5;" << endl ; + osOut << "GeomDB,1.5.3.7;" << endl ; - // colore di default - osOut << "COL_DEF" << endl ; + // materiale di default come colore + osOut << "MAT_DEF" << endl ; Color colDef( 0, 0, 0, 0) ; - GetDefaultColor( colDef) ; + GetDefaultMaterial( colDef) ; osOut << ToString( colDef.GetIntRed()) ; osOut << "," << ToString( colDef.GetIntGreen()) ; osOut << "," << ToString( colDef.GetIntBlue()) ; @@ -946,7 +946,7 @@ GeomDB::GetCalcStatus( int nId, int& nStat) const //---------------------------------------------------------------------------- bool -GeomDB::SetDefaultColor( Color cCol) +GeomDB::SetDefaultMaterial( Color cCol) { // recupero l'oggetto GdbObj* pGdbObj ; @@ -954,12 +954,12 @@ GeomDB::SetDefaultColor( Color cCol) return false ; // assegno il colore - return pGdbObj->SetColor( cCol) ; + return pGdbObj->SetMaterial( cCol) ; } //---------------------------------------------------------------------------- bool -GeomDB::GetDefaultColor( Color& cCol) const +GeomDB::GetDefaultMaterial( Color& cCol) const { // recupero l'oggetto const GdbObj* pGdbObj ; @@ -967,46 +967,85 @@ GeomDB::GetDefaultColor( Color& cCol) const return false ; // recupero il colore - return pGdbObj->GetColor( cCol) ; + return pGdbObj->GetMaterial( cCol) ; } //---------------------------------------------------------------------------- bool -GeomDB::SetColor( int nId, Color cCol) +GeomDB::SetMaterial( int nId, int nMat) { // recupero l'oggetto GdbObj* pGdbObj ; if ( ( pGdbObj = GetGdbObj( nId)) == nullptr) return false ; - // assegno il colore - return pGdbObj->SetColor( cCol) ; + // assegno il materiale tramite indice + return pGdbObj->SetMaterial( nMat) ; } //---------------------------------------------------------------------------- bool -GeomDB::GetColor( int nId, Color& cCol) const +GeomDB::SetMaterial( int nId, Color cCol) +{ + // recupero l'oggetto + GdbObj* pGdbObj ; + if ( ( pGdbObj = GetGdbObj( nId)) == nullptr) + return false ; + + // assegno il materiale tramite colore + return pGdbObj->SetMaterial( cCol) ; +} + +//---------------------------------------------------------------------------- +bool +GeomDB::GetMaterial( int nId, int& nMat) const { // recupero l'oggetto const GdbObj* pGdbObj ; if ( ( pGdbObj = (const_cast(this))->GetGdbObj( nId)) == nullptr) return false ; - // recupero il colore - return pGdbObj->GetColor( cCol) ; + // recupero l'indice del materiale + return pGdbObj->GetMaterial( nMat) ; } //---------------------------------------------------------------------------- bool -GeomDB::GetCalcColor( int nId, Color& cCol) const +GeomDB::GetMaterial( int nId, Color& cCol) const { // recupero l'oggetto const GdbObj* pGdbObj ; if ( ( pGdbObj = (const_cast(this))->GetGdbObj( nId)) == nullptr) return false ; - // recupero il colore calcolato - return pGdbObj->GetCalcColor( cCol) ; + // recupero il colore del materiale + return pGdbObj->GetMaterial( cCol) ; +} + +//---------------------------------------------------------------------------- +bool +GeomDB::GetCalcMaterial( int nId, int& nMat) const +{ + // recupero l'oggetto + const GdbObj* pGdbObj ; + if ( ( pGdbObj = (const_cast(this))->GetGdbObj( nId)) == nullptr) + return false ; + + // recupero l'indice del materiale calcolato + return pGdbObj->GetCalcMaterial( nMat) ; +} + +//---------------------------------------------------------------------------- +bool +GeomDB::GetCalcMaterial( int nId, Color& cCol) const +{ + // recupero l'oggetto + const GdbObj* pGdbObj ; + if ( ( pGdbObj = (const_cast(this))->GetGdbObj( nId)) == nullptr) + return false ; + + // recupero il colore del materiale calcolato + return pGdbObj->GetCalcMaterial( cCol) ; } //---------------------------------------------------------------------------- diff --git a/GeomDB.h b/GeomDB.h index 1d6744a..cda9d16 100644 --- a/GeomDB.h +++ b/GeomDB.h @@ -79,11 +79,14 @@ class GeomDB : public IGeomDB virtual bool RevertStatus( int nId) ; virtual bool GetStatus( int nId, int& nStat) const ; virtual bool GetCalcStatus( int nId, int& nStat) const ; - virtual bool SetDefaultColor( Color cCol) ; - virtual bool GetDefaultColor( Color& cCol) const ; - virtual bool SetColor( int nId, Color cCol) ; - virtual bool GetColor( int nId, Color& cCol) const ; - virtual bool GetCalcColor( int nId, Color& cCol) const ; + virtual bool SetDefaultMaterial( Color cCol) ; + virtual bool GetDefaultMaterial( Color& cCol) const ; + virtual bool SetMaterial( int nId, int nMat) ; + virtual bool SetMaterial( int nId, Color cCol) ; + virtual bool GetMaterial( int nId, int& nMat) const ; + virtual bool GetMaterial( int nId, Color& cCol) const ; + virtual bool GetCalcMaterial( int nId, int& nMat) const ; + virtual bool GetCalcMaterial( int nId, Color& cCol) const ; virtual bool SetName( int nId, const std::string& sName) ; virtual bool GetName( int nId, std::string& sName) const ; virtual bool RemoveName( int nId) ; diff --git a/OutScl.cpp b/OutScl.cpp index 604a5fc..1f13734 100644 --- a/OutScl.cpp +++ b/OutScl.cpp @@ -43,6 +43,9 @@ OutScl::Open( const string& sOutScl) m_ofFile.open( stringtoW( sOutScl)) ; if ( ! m_ofFile.good()) return false ; + // inizializzo + m_sMaterial.clear() ; + m_sPartLay.clear() ; // scrivo linee iniziali Start() ; New() ;