EgtGeomKernel 1.6d2 :
- BBox3d aggiunta LocToLoc e migliorati i controlli per validità - aggiunta gestione estrusione nell'ingombro delle curve - a CurveComposite aggiunta funzione che la chiude - in GdbIterator aggiunte GoTo con nome - in GeomDB aggiunte Get con nome - in GeomDB aggiunto swap tra gruppi con gestione di base, sorgente e lista referenti - migliorata gestione materiale ereditato in Relocate - aggiunte SetInfo e GetInfo con INTVECTOR e DBLVECTOR - aggiunte FromString e ToString con BBox3d.
This commit is contained in:
+416
-2
@@ -202,7 +202,6 @@ GdbIterator::EraseAndGoToNext( void)
|
||||
{
|
||||
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
|
||||
return false ;
|
||||
|
||||
// passo al successivo
|
||||
GdbObj* pObjToErase = m_pCurrObj ;
|
||||
m_pCurrObj = m_pCurrObj->GetNext() ;
|
||||
@@ -217,7 +216,6 @@ GdbIterator::EraseAndGoToPrev( void)
|
||||
{
|
||||
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
|
||||
return false ;
|
||||
|
||||
// passo al precedente
|
||||
GdbObj* pObjToErase = m_pCurrObj ;
|
||||
m_pCurrObj = m_pCurrObj->GetPrev() ;
|
||||
@@ -226,6 +224,422 @@ GdbIterator::EraseAndGoToPrev( void)
|
||||
return true ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::GoToFirstNameInGroup( int nIdGroup, const string& sName)
|
||||
{
|
||||
if ( m_pGDB == nullptr) {
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
// recupero il gruppo
|
||||
GdbGroup* pGdbGroup = m_pGDB->GetGdbGroup( nIdGroup) ;
|
||||
if ( pGdbGroup == nullptr) {
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
// recupero l'oggetto
|
||||
m_pCurrObj = pGdbGroup->GetFirstObj() ;
|
||||
while ( m_pCurrObj != nullptr) {
|
||||
// se ha il nome cercato
|
||||
string sObjName ;
|
||||
if ( m_pCurrObj->GetName( sObjName) && sObjName == sName)
|
||||
return true ;
|
||||
// passo al successivo
|
||||
m_pCurrObj = m_pCurrObj->GetNext() ;
|
||||
}
|
||||
// non trovato
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::GoToFirstNameInGroup( const IGdbIterator& iIter, const string& sName)
|
||||
{
|
||||
if ( m_pGDB == nullptr) {
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
// converto in oggetto iteratore di base
|
||||
const GdbIterator* pIter = dynamic_cast<const GdbIterator*> (&iIter) ;
|
||||
if ( pIter == nullptr || pIter->m_pGDB != m_pGDB) {
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
// recupero il gruppo
|
||||
GdbGroup* pGdbGroup = GetGdbGroup( pIter->m_pCurrObj) ;
|
||||
if ( pGdbGroup == nullptr) {
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
// recupero l'oggetto
|
||||
m_pCurrObj = pGdbGroup->GetFirstObj() ;
|
||||
while ( m_pCurrObj != nullptr) {
|
||||
// se ha il nome cercato
|
||||
string sObjName ;
|
||||
if ( m_pCurrObj->GetName( sObjName) && sObjName == sName)
|
||||
return true ;
|
||||
// passo al successivo
|
||||
m_pCurrObj = m_pCurrObj->GetNext() ;
|
||||
}
|
||||
// non trovato
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::GoToNextName( const string& sName)
|
||||
{
|
||||
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
|
||||
return false ;
|
||||
// ciclo fino al prossimo gruppo
|
||||
m_pCurrObj = m_pCurrObj->GetNext() ;
|
||||
while ( m_pCurrObj != nullptr) {
|
||||
// se ha il nome cercato
|
||||
string sObjName ;
|
||||
if ( m_pCurrObj->GetName( sObjName) && sObjName == sName)
|
||||
return true ;
|
||||
// passo al successivo
|
||||
m_pCurrObj = m_pCurrObj->GetNext() ;
|
||||
}
|
||||
// non trovato
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::GoToLastNameInGroup( int nIdGroup, const string& sName)
|
||||
{
|
||||
if ( m_pGDB == nullptr) {
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
// recupero il gruppo
|
||||
GdbGroup* pGdbGroup = m_pGDB->GetGdbGroup( nIdGroup) ;
|
||||
if ( pGdbGroup == nullptr) {
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
// recupero l'oggetto
|
||||
m_pCurrObj = pGdbGroup->GetLastObj() ;
|
||||
while ( m_pCurrObj != nullptr) {
|
||||
// se ha il nome cercato
|
||||
string sObjName ;
|
||||
if ( m_pCurrObj->GetName( sObjName) && sObjName == sName)
|
||||
return true ;
|
||||
// passo al precedente
|
||||
m_pCurrObj = m_pCurrObj->GetPrev() ;
|
||||
}
|
||||
// non trovato
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::GoToLastNameInGroup( const IGdbIterator& iIter, const string& sName)
|
||||
{
|
||||
if ( m_pGDB == nullptr) {
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
// converto in oggetto iteratore di base
|
||||
const GdbIterator* pIter = dynamic_cast<const GdbIterator*> (&iIter) ;
|
||||
if ( pIter == nullptr || pIter->m_pGDB != m_pGDB) {
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
// recupero il gruppo
|
||||
GdbGroup* pGdbGroup = GetGdbGroup( pIter->m_pCurrObj) ;
|
||||
if ( pGdbGroup == nullptr) {
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
// recupero l'oggetto
|
||||
m_pCurrObj = pGdbGroup->GetLastObj() ;
|
||||
while ( m_pCurrObj != nullptr) {
|
||||
// se ha il nome cercato
|
||||
string sObjName ;
|
||||
if ( m_pCurrObj->GetName( sObjName) && sObjName == sName)
|
||||
return true ;
|
||||
// passo al precedente
|
||||
m_pCurrObj = m_pCurrObj->GetPrev() ;
|
||||
}
|
||||
// non trovato
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::GoToPrevName( const string& sName)
|
||||
{
|
||||
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
|
||||
return false ;
|
||||
// ciclo fino al precedente gruppo
|
||||
m_pCurrObj = m_pCurrObj->GetPrev() ;
|
||||
while ( m_pCurrObj != nullptr) {
|
||||
// se ha il nome cercato
|
||||
string sObjName ;
|
||||
if ( m_pCurrObj->GetName( sObjName) && sObjName == sName)
|
||||
return true ;
|
||||
// passo al precedente
|
||||
m_pCurrObj = m_pCurrObj->GetPrev() ;
|
||||
}
|
||||
// non trovato
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::EraseAndGoToNextName( const string& sName)
|
||||
{
|
||||
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
|
||||
return false ;
|
||||
// passo al successivo
|
||||
GdbObj* pObjToErase = m_pCurrObj ;
|
||||
m_pCurrObj = m_pCurrObj->GetNext() ;
|
||||
// eseguo cancellazione
|
||||
m_pGDB->Erase( pObjToErase) ;
|
||||
// se corrente non gruppo, passo al successivo gruppo
|
||||
while ( m_pCurrObj != nullptr) {
|
||||
// se ha il nome cercato
|
||||
string sObjName ;
|
||||
if ( m_pCurrObj->GetName( sObjName) && sObjName == sName)
|
||||
return true ;
|
||||
// passo al successivo
|
||||
m_pCurrObj = m_pCurrObj->GetNext() ;
|
||||
}
|
||||
// non trovato
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::EraseAndGoToPrevName( const string& sName)
|
||||
{
|
||||
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
|
||||
return false ;
|
||||
// passo al precedente
|
||||
GdbObj* pObjToErase = m_pCurrObj ;
|
||||
m_pCurrObj = m_pCurrObj->GetPrev() ;
|
||||
// eseguo cancellazione
|
||||
m_pGDB->Erase( pObjToErase) ;
|
||||
// se corrente non gruppo, passo al precedente gruppo
|
||||
while ( m_pCurrObj != nullptr) {
|
||||
// se ha il nome cercato
|
||||
string sObjName ;
|
||||
if ( m_pCurrObj->GetName( sObjName) && sObjName == sName)
|
||||
return true ;
|
||||
// passo al precedente
|
||||
m_pCurrObj = m_pCurrObj->GetPrev() ;
|
||||
}
|
||||
// non trovato
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::GoToFirstGroupInGroup( int nIdGroup)
|
||||
{
|
||||
if ( m_pGDB == nullptr) {
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
// recupero il gruppo
|
||||
GdbGroup* pGdbGroup = m_pGDB->GetGdbGroup( nIdGroup) ;
|
||||
if ( pGdbGroup == nullptr) {
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
// recupero l'oggetto
|
||||
m_pCurrObj = pGdbGroup->GetFirstObj() ;
|
||||
while ( m_pCurrObj != nullptr) {
|
||||
// se di tipo gruppo
|
||||
if ( GetGdbGroup( m_pCurrObj) != nullptr)
|
||||
return true ;
|
||||
// passo al successivo
|
||||
m_pCurrObj = m_pCurrObj->GetNext() ;
|
||||
}
|
||||
// non trovato
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::GoToFirstGroupInGroup( const IGdbIterator& iIter)
|
||||
{
|
||||
if ( m_pGDB == nullptr) {
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
// converto in oggetto iteratore di base
|
||||
const GdbIterator* pIter = dynamic_cast<const GdbIterator*> (&iIter) ;
|
||||
if ( pIter == nullptr || pIter->m_pGDB != m_pGDB) {
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
// recupero il gruppo
|
||||
GdbGroup* pGdbGroup = GetGdbGroup( pIter->m_pCurrObj) ;
|
||||
if ( pGdbGroup == nullptr) {
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
// recupero l'oggetto
|
||||
m_pCurrObj = pGdbGroup->GetFirstObj() ;
|
||||
while ( m_pCurrObj != nullptr) {
|
||||
// se di tipo gruppo
|
||||
if ( GetGdbGroup( m_pCurrObj) != nullptr)
|
||||
return true ;
|
||||
// passo al successivo
|
||||
m_pCurrObj = m_pCurrObj->GetNext() ;
|
||||
}
|
||||
// non trovato
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::GoToNextGroup( void)
|
||||
{
|
||||
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
|
||||
return false ;
|
||||
// ciclo fino al prossimo gruppo
|
||||
m_pCurrObj = m_pCurrObj->GetNext() ;
|
||||
while ( m_pCurrObj != nullptr) {
|
||||
// se di tipo gruppo
|
||||
if ( GetGdbGroup( m_pCurrObj) != nullptr)
|
||||
return true ;
|
||||
// passo al successivo
|
||||
m_pCurrObj = m_pCurrObj->GetNext() ;
|
||||
}
|
||||
// non trovato
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::GoToLastGroupInGroup( int nIdGroup)
|
||||
{
|
||||
if ( m_pGDB == nullptr) {
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
// recupero il gruppo
|
||||
GdbGroup* pGdbGroup = m_pGDB->GetGdbGroup( nIdGroup) ;
|
||||
if ( pGdbGroup == nullptr) {
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
// recupero l'oggetto
|
||||
m_pCurrObj = pGdbGroup->GetLastObj() ;
|
||||
while ( m_pCurrObj != nullptr) {
|
||||
// se di tipo gruppo
|
||||
if ( GetGdbGroup( m_pCurrObj) != nullptr)
|
||||
return true ;
|
||||
// passo al precedente
|
||||
m_pCurrObj = m_pCurrObj->GetPrev() ;
|
||||
}
|
||||
// non trovato
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::GoToLastGroupInGroup( const IGdbIterator& iIter)
|
||||
{
|
||||
if ( m_pGDB == nullptr) {
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
// converto in oggetto iteratore di base
|
||||
const GdbIterator* pIter = dynamic_cast<const GdbIterator*> (&iIter) ;
|
||||
if ( pIter == nullptr || pIter->m_pGDB != m_pGDB) {
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
// recupero il gruppo
|
||||
GdbGroup* pGdbGroup = GetGdbGroup( pIter->m_pCurrObj) ;
|
||||
if ( pGdbGroup == nullptr) {
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
// recupero l'oggetto
|
||||
m_pCurrObj = pGdbGroup->GetLastObj() ;
|
||||
while ( m_pCurrObj != nullptr) {
|
||||
// se di tipo gruppo
|
||||
if ( GetGdbGroup( m_pCurrObj) != nullptr)
|
||||
return true ;
|
||||
// passo al precedente
|
||||
m_pCurrObj = m_pCurrObj->GetPrev() ;
|
||||
}
|
||||
// non trovato
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::GoToPrevGroup( void)
|
||||
{
|
||||
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
|
||||
return false ;
|
||||
// ciclo fino al precedente gruppo
|
||||
m_pCurrObj = m_pCurrObj->GetPrev() ;
|
||||
while ( m_pCurrObj != nullptr) {
|
||||
// se di tipo gruppo
|
||||
if ( GetGdbGroup( m_pCurrObj) != nullptr)
|
||||
return true ;
|
||||
// passo al precedente
|
||||
m_pCurrObj = m_pCurrObj->GetPrev() ;
|
||||
}
|
||||
// non trovato
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::EraseAndGoToNextGroup( void)
|
||||
{
|
||||
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
|
||||
return false ;
|
||||
// passo al successivo
|
||||
GdbObj* pObjToErase = m_pCurrObj ;
|
||||
m_pCurrObj = m_pCurrObj->GetNext() ;
|
||||
// eseguo cancellazione
|
||||
m_pGDB->Erase( pObjToErase) ;
|
||||
// se corrente non gruppo, passo al successivo gruppo
|
||||
while ( m_pCurrObj != nullptr) {
|
||||
// se di tipo gruppo
|
||||
if ( GetGdbGroup( m_pCurrObj) != nullptr)
|
||||
return true ;
|
||||
// passo al successivo
|
||||
m_pCurrObj = m_pCurrObj->GetNext() ;
|
||||
}
|
||||
// non trovato
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::EraseAndGoToPrevGroup( void)
|
||||
{
|
||||
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
|
||||
return false ;
|
||||
// passo al precedente
|
||||
GdbObj* pObjToErase = m_pCurrObj ;
|
||||
m_pCurrObj = m_pCurrObj->GetPrev() ;
|
||||
// eseguo cancellazione
|
||||
m_pGDB->Erase( pObjToErase) ;
|
||||
// se corrente non gruppo, passo al precedente gruppo
|
||||
while ( m_pCurrObj != nullptr) {
|
||||
// se di tipo gruppo
|
||||
if ( GetGdbGroup( m_pCurrObj) != nullptr)
|
||||
return true ;
|
||||
// passo al precedente
|
||||
m_pCurrObj = m_pCurrObj->GetPrev() ;
|
||||
}
|
||||
// non trovato
|
||||
return false ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
int
|
||||
GdbIterator::GetGdbType( void) const
|
||||
|
||||
Reference in New Issue
Block a user