EgtGeomKernel 1.5c1 :
- aggiunta prima gestione attributi.
This commit is contained in:
+70
-55
@@ -13,8 +13,9 @@
|
||||
|
||||
//--------------------------- Include ----------------------------------------
|
||||
#include "stdafx.h"
|
||||
#include <new>
|
||||
#include "GdbIterator.h"
|
||||
#include "Attribs.h"
|
||||
#include <new>
|
||||
|
||||
using namespace std ;
|
||||
|
||||
@@ -31,7 +32,7 @@ CreateGdbIterator( void)
|
||||
GdbIterator::GdbIterator( void)
|
||||
{
|
||||
m_pGDB = nullptr ;
|
||||
m_pCurrNode = nullptr ;
|
||||
m_pCurrObj = nullptr ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -56,9 +57,9 @@ GdbIterator::GoTo( int nId)
|
||||
if ( m_pGDB == nullptr)
|
||||
return false ;
|
||||
|
||||
m_pCurrNode = m_pGDB->GetGdbNode( nId) ;
|
||||
m_pCurrObj = m_pGDB->GetGdbObj( nId) ;
|
||||
|
||||
return ( m_pCurrNode != nullptr) ;
|
||||
return ( m_pCurrObj != nullptr) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -74,75 +75,73 @@ GdbIterator::GoToFirstInGroup( int nIdGroup)
|
||||
// recupero il gruppo
|
||||
pGdbGroup = m_pGDB->GetGdbGroup( nIdGroup) ;
|
||||
if ( pGdbGroup == nullptr) {
|
||||
m_pCurrNode = nullptr ;
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
|
||||
// recupero il nodo
|
||||
m_pCurrNode = pGdbGroup->GetFirstNode() ;
|
||||
// recupero l'oggetto
|
||||
m_pCurrObj = pGdbGroup->GetFirstObj() ;
|
||||
|
||||
return ( m_pCurrNode != nullptr) ;
|
||||
return ( m_pCurrObj != nullptr) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::GoToNext( void)
|
||||
{
|
||||
if ( m_pGDB == nullptr || m_pCurrNode == nullptr)
|
||||
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
|
||||
return false ;
|
||||
|
||||
m_pCurrNode = m_pCurrNode->GetNext() ;
|
||||
m_pCurrObj = m_pCurrObj->GetNext() ;
|
||||
|
||||
return ( m_pCurrNode != nullptr) ;
|
||||
return ( m_pCurrObj != nullptr) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::GoToLastInGroup( int nIdGroup)
|
||||
{
|
||||
GdbGroup* pGdbGroup ;
|
||||
|
||||
|
||||
if ( m_pGDB == nullptr)
|
||||
return false ;
|
||||
|
||||
// recupero il gruppo
|
||||
GdbGroup* pGdbGroup ;
|
||||
pGdbGroup = m_pGDB->GetGdbGroup( nIdGroup) ;
|
||||
if ( pGdbGroup == nullptr) {
|
||||
m_pCurrNode = nullptr ;
|
||||
m_pCurrObj = nullptr ;
|
||||
return false ;
|
||||
}
|
||||
|
||||
// recupero il nodo
|
||||
m_pCurrNode = pGdbGroup->GetLastNode() ;
|
||||
// recupero l'oggetto
|
||||
m_pCurrObj = pGdbGroup->GetLastObj() ;
|
||||
|
||||
return ( m_pCurrNode != nullptr) ;
|
||||
return ( m_pCurrObj != nullptr) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::GoToPrev( void)
|
||||
{
|
||||
if ( m_pGDB == nullptr || m_pCurrNode == nullptr)
|
||||
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
|
||||
return false ;
|
||||
|
||||
m_pCurrNode = m_pCurrNode->GetPrev() ;
|
||||
m_pCurrObj = m_pCurrObj->GetPrev() ;
|
||||
|
||||
return ( m_pCurrNode != nullptr) ;
|
||||
return ( m_pCurrObj != nullptr) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
GdbType
|
||||
GdbIterator::GetGdbType( void) const
|
||||
{
|
||||
if ( m_pGDB == nullptr || m_pCurrNode == nullptr)
|
||||
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
|
||||
return GDB_NONE ;
|
||||
|
||||
// se oggetto geometrico
|
||||
if ( GetGdbObj( m_pCurrNode) != nullptr)
|
||||
if ( GetGdbGeo( m_pCurrObj) != nullptr)
|
||||
return GDB_GEO ;
|
||||
// se gruppo
|
||||
else if ( GetGdbGroup( m_pCurrNode) != nullptr)
|
||||
else if ( GetGdbGroup( m_pCurrObj) != nullptr)
|
||||
return GDB_GROUP ;
|
||||
// altro
|
||||
else
|
||||
@@ -153,31 +152,27 @@ GdbIterator::GetGdbType( void) const
|
||||
IGeoObj*
|
||||
GdbIterator::GetGeoObj( void)
|
||||
{
|
||||
const GdbObj* pGdbObj ;
|
||||
|
||||
|
||||
if ( m_pGDB == nullptr || m_pCurrNode == nullptr)
|
||||
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
|
||||
return false ;
|
||||
|
||||
// recupero l'oggetto Gdb
|
||||
if ( ( pGdbObj = GetGdbObj( m_pCurrNode)) == nullptr)
|
||||
const GdbGeo* pGdbGeo ;
|
||||
if ( ( pGdbGeo = GetGdbGeo( m_pCurrObj)) == nullptr)
|
||||
return nullptr ;
|
||||
|
||||
// restituisco il suo contenuto geometrico
|
||||
return pGdbObj->m_pGeoObj ;
|
||||
return pGdbGeo->m_pGeoObj ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
IGeoFrame3d*
|
||||
GdbIterator::GetGeoFrame( void)
|
||||
{
|
||||
GdbGroup* pGdbGroup ;
|
||||
|
||||
|
||||
if ( m_pGDB == nullptr || m_pCurrNode == nullptr)
|
||||
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
|
||||
return nullptr ;
|
||||
|
||||
if ( ( pGdbGroup = GetGdbGroup( m_pCurrNode)) == nullptr)
|
||||
GdbGroup* pGdbGroup ;
|
||||
if ( ( pGdbGroup = GetGdbGroup( m_pCurrObj)) == nullptr)
|
||||
return nullptr ;
|
||||
|
||||
return &( pGdbGroup->m_gfrFrame) ;
|
||||
@@ -185,15 +180,13 @@ GdbIterator::GetGeoFrame( void)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::GetGroupFrame( Frame3d& frGlob)
|
||||
GdbIterator::GetGroupFrame( Frame3d& frGlob) const
|
||||
{
|
||||
GdbGroup* pGdbGroup ;
|
||||
|
||||
|
||||
if ( m_pGDB == nullptr || m_pCurrNode == nullptr)
|
||||
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
|
||||
return false ;
|
||||
|
||||
if ( ( pGdbGroup = GetGdbGroup( m_pCurrNode)) == nullptr)
|
||||
GdbGroup* pGdbGroup ;
|
||||
if ( ( pGdbGroup = GetGdbGroup( m_pCurrObj)) == nullptr)
|
||||
return false ;
|
||||
|
||||
// copio il riferimento
|
||||
@@ -203,15 +196,13 @@ GdbIterator::GetGroupFrame( Frame3d& frGlob)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::GetGroupGlobFrame( Frame3d& frGlob)
|
||||
GdbIterator::GetGroupGlobFrame( Frame3d& frGlob) const
|
||||
{
|
||||
GdbGroup* pGdbGroup ;
|
||||
|
||||
|
||||
if ( m_pGDB == nullptr || m_pCurrNode == nullptr)
|
||||
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
|
||||
return false ;
|
||||
|
||||
if ( ( pGdbGroup = GetGdbGroup( m_pCurrNode)) == nullptr)
|
||||
GdbGroup* pGdbGroup ;
|
||||
if ( ( pGdbGroup = GetGdbGroup( m_pCurrObj)) == nullptr)
|
||||
return false ;
|
||||
|
||||
return pGdbGroup->GetGlobFrame( frGlob) ;
|
||||
@@ -219,20 +210,44 @@ GdbIterator::GetGroupGlobFrame( Frame3d& frGlob)
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
int
|
||||
GdbIterator::GetId( void)
|
||||
GdbIterator::GetId( void) const
|
||||
{
|
||||
if ( m_pGDB == nullptr || m_pCurrNode == nullptr)
|
||||
return - 1 ;
|
||||
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
|
||||
return GDB_ID_NULL ;
|
||||
|
||||
return m_pCurrNode->m_nId ;
|
||||
return m_pCurrObj->m_nId ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
int
|
||||
GdbIterator::GetParentId( void)
|
||||
GdbIterator::GetParentId( void) const
|
||||
{
|
||||
if ( m_pGDB == nullptr || m_pCurrNode == nullptr)
|
||||
return - 1 ;
|
||||
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
|
||||
return GDB_ID_NULL ;
|
||||
|
||||
return m_pCurrNode->GetParentId() ;
|
||||
return m_pCurrObj->GetParentId() ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Attributes
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::SetColor( Color cCol)
|
||||
{
|
||||
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
|
||||
return false ;
|
||||
|
||||
// assegno il colore
|
||||
return m_pCurrObj->SetColor( cCol) ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
bool
|
||||
GdbIterator::GetColor( Color& cCol) const
|
||||
{
|
||||
if ( m_pGDB == nullptr || m_pCurrObj == nullptr)
|
||||
return false ;
|
||||
|
||||
// recupero il colore
|
||||
return m_pCurrObj->GetColor( cCol) ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user