EgtMachKernel :
- aggiunta gestione dei layer da visualizzare solo con un particolare gruppo di lavoro - aggiunta gestione dei pezzi nascosti (GDB_MD.HIDDEN).
This commit is contained in:
@@ -430,6 +430,7 @@ class MachMgr : public IMachMgr
|
||||
bool SwapParts( bool bToRawPart) ;
|
||||
bool SwapRawPartParts( int nRawId, bool bToRawPart) ;
|
||||
int SwapRawPartPart( int nId, bool bToRawPart) ;
|
||||
bool UpdateStatusMgoLayers( int nPartId, bool bToRawPart) ;
|
||||
bool ShowRootParts( bool bShow) ;
|
||||
// Operations : dispositions
|
||||
int AddDisposition( const std::string& sName) ;
|
||||
|
||||
@@ -106,6 +106,8 @@ MachMgr::AddPartToRawPart( int nPartId, const Point3d& ptPos, int nRawId)
|
||||
// mi assicuro sia visibile il pezzo e nascosto il gruppo
|
||||
m_pGeomDB->SetStatus( nPartId, GDB_ST_ON) ;
|
||||
m_pGeomDB->SetStatus( nGroup, GDB_ST_OFF) ;
|
||||
// gestisco la visualizzazione dei layer legati ai gruppi di lavoro
|
||||
UpdateStatusMgoLayers( nPartId, true) ;
|
||||
return true ;
|
||||
}
|
||||
|
||||
@@ -143,6 +145,8 @@ MachMgr::RemovePartFromRawPart( int nPartId)
|
||||
m_pGeomDB->GroupSwap( nPartId, nBase, true, true) ;
|
||||
// mi assicuro sia nascosto
|
||||
m_pGeomDB->SetStatus( nPartId, GDB_ST_OFF) ;
|
||||
// nascondo tutti i layer del pezzo legati ai gruppi di lavoro
|
||||
UpdateStatusMgoLayers( nPartId, false) ;
|
||||
// cancello il gruppo di riferimento
|
||||
m_pGeomDB->Erase( nBase) ;
|
||||
return true ;
|
||||
@@ -241,7 +245,14 @@ MachMgr::SwapRawPartPart( int nId, bool bToRawPart)
|
||||
if ( m_pGeomDB->GetInfo( nId, GDB_SI_SOURCE, nSou)) {
|
||||
m_pGeomDB->GroupSwap( nSou, nId, true, true) ;
|
||||
// mi assicuro sia visibile
|
||||
int nMode = GDB_MD_STD ; m_pGeomDB->GetMode( nSou, nMode) ;
|
||||
if ( nMode != GDB_MD_STD) {
|
||||
m_pGeomDB->SetMode( nSou, GDB_MD_STD) ;
|
||||
m_pGeomDB->SetInfo( nSou, GDB_SI_DRAWMODE, nMode) ;
|
||||
}
|
||||
m_pGeomDB->SetStatus( nSou, GDB_ST_ON) ;
|
||||
// gestisco la visualizzazione dei layer legati ai gruppi di lavoro
|
||||
UpdateStatusMgoLayers( nSou, bToRawPart) ;
|
||||
return nSou ;
|
||||
}
|
||||
}
|
||||
@@ -251,15 +262,51 @@ MachMgr::SwapRawPartPart( int nId, bool bToRawPart)
|
||||
int nBase ;
|
||||
if ( m_pGeomDB->GetInfo( nId, GDB_SI_BASE, nBase)) {
|
||||
m_pGeomDB->GroupSwap( nId, nBase, true, true) ;
|
||||
// se necessario, ripristino il modo precedente
|
||||
int nMode ;
|
||||
if ( m_pGeomDB->GetInfo( nId, GDB_SI_DRAWMODE, nMode)) {
|
||||
m_pGeomDB->RemoveInfo( nId, GDB_SI_DRAWMODE) ;
|
||||
m_pGeomDB->SetMode( nId, nMode) ;
|
||||
}
|
||||
// mi assicuro sia nascosto e di livello utente
|
||||
m_pGeomDB->SetStatus( nId, GDB_ST_OFF) ;
|
||||
m_pGeomDB->SetLevel( nId, GDB_LV_USER) ;
|
||||
// nascondo tutti i layer del pezzo legati ai gruppi di lavoro
|
||||
UpdateStatusMgoLayers( nId, bToRawPart) ;
|
||||
return nBase ;
|
||||
}
|
||||
}
|
||||
return GDB_ID_NULL ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
MachMgr::UpdateStatusMgoLayers( int nPartId, bool bToRawPart)
|
||||
{
|
||||
// se dalla radice al grezzo
|
||||
if ( bToRawPart) {
|
||||
// gestisco la visualizzazione dei layer legati ai gruppi di lavoro
|
||||
int nLayId = m_pGeomDB->GetFirstGroupInGroup( nPartId) ;
|
||||
while ( nLayId != GDB_ID_NULL) {
|
||||
int nMgoId ;
|
||||
if ( m_pGeomDB->GetInfo( nLayId, GDB_SI_MGRPONLY, nMgoId))
|
||||
m_pGeomDB->SetStatus( nLayId, ( nMgoId == m_nCurrMGrpId ? GDB_ST_ON : GDB_ST_OFF)) ;
|
||||
nLayId = m_pGeomDB->GetNextGroup( nLayId) ;
|
||||
}
|
||||
}
|
||||
// altrimenti dal grezzo alla radice
|
||||
else {
|
||||
// nascondo tutti i layer del pezzo legati ai gruppi di lavoro
|
||||
int nLayId = m_pGeomDB->GetFirstGroupInGroup( nPartId) ;
|
||||
while ( nLayId != GDB_ID_NULL) {
|
||||
if ( m_pGeomDB->ExistsInfo( nLayId, GDB_SI_MGRPONLY))
|
||||
m_pGeomDB->SetStatus( nLayId, GDB_ST_OFF) ;
|
||||
nLayId = m_pGeomDB->GetNextGroup( nLayId) ;
|
||||
}
|
||||
}
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
MachMgr::ShowRootParts( bool bShow)
|
||||
|
||||
Reference in New Issue
Block a user