Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

osg::QNodeItem Class Reference

#include <OSGQNodeTreeView_qt.h>

Inheritance diagram for osg::QNodeItem:

osg::QFCItem osg::QSceneGraphItem List of all members.

Public Member Functions

 QNodeItem (QListView *parent, const NodePtr &pNode)
 QNodeItem (QListViewItem *parent, const NodePtr &pNode)
virtual ~QNodeItem (void)
virtual FieldContainerPtr getFC (void) const
virtual void setup (void)
virtual void expand (void)
virtual void collapse (void)
virtual void setOpen (bool bOpen)

Static Public Member Functions

static QNodeItemdcast (QListViewItem *pItem)

Protected Member Functions

UInt32 getAspect (void)

Private Types

typedef QFCItem Inherited

Detailed Description

Definition at line 124 of file OSGQNodeTreeView_qt.h.


Member Typedef Documentation

typedef QFCItem osg::QNodeItem::Inherited [private]
 

Reimplemented from osg::QFCItem.

Definition at line 135 of file OSGQNodeTreeView_qt.h.


Constructor & Destructor Documentation

QNodeItem::QNodeItem QListView *  parent,
const NodePtr pNode
 

Definition at line 405 of file OSGQNodeTreeView_qt.cpp.

00406     : Inherited(parent, pNode)
00407 {
00408 }

QNodeItem::QNodeItem QListViewItem *  parent,
const NodePtr pNode
 

Definition at line 410 of file OSGQNodeTreeView_qt.cpp.

00411     : Inherited(parent, pNode)
00412 {
00413 }

QNodeItem::~QNodeItem void   )  [virtual]
 

Definition at line 415 of file OSGQNodeTreeView_qt.cpp.

00416 {
00417 }


Member Function Documentation

QNodeItem * QNodeItem::dcast QListViewItem *  pItem  )  [static]
 

Reimplemented from osg::QFCItem.

Definition at line 420 of file OSGQNodeTreeView_qt.cpp.

00421 {
00422     return dynamic_cast<QNodeItem *>(pItem);
00423 }

FieldContainerPtr QFCItem::getFC void   )  const [virtual, inherited]
 

Implements osg::QSceneGraphItem.

Definition at line 178 of file OSGQNodeTreeView_qt.cpp.

References osg::QFCItem::_pFC.

Referenced by osg::QFCItem::addParents(), osg::QFCItem::expand(), osg::QFCItem::QFCItem(), and osg::QFCItem::setup().

00179 {
00180     return _pFC;
00181 }

void QFCItem::setup void   )  [virtual, inherited]
 

Definition at line 184 of file OSGQNodeTreeView_qt.cpp.

References osg::QSceneGraphItem::getAspect(), osg::FieldContainerPtrBase::getAspectCPtr(), osg::FieldDescription::getCName(), osg::QFCItem::getFC(), osg::FieldContainer::getField(), osg::FieldContainerType::getFieldDescription(), osg::FieldContainerType::getNumFieldDescs(), osg::FieldContainer::getType(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::isMFFieldContainerPtr(), osg::isSFFieldContainerPtr(), osg::NullFC, setup(), osg::MField< FieldTypeT, fieldNameSpace >::size(), and osg::stringcmp().

00185 {
00186     FieldContainer *pFCAsp = getFC().getAspectCPtr(getAspect());
00187 
00188     if(!pFCAsp)
00189         return;
00190 
00191     UInt32 uiNumFields = pFCAsp->getType().getNumFieldDescs();
00192     
00193     for(UInt32  fieldId = 1; fieldId <= uiNumFields; ++fieldId)
00194     {
00195         FieldDescription *pDesc     = 
00196             pFCAsp->getType().getFieldDescription     (fieldId);
00197         Field            *pField    = pFCAsp->getField(fieldId);
00198         
00199         if(isSFFieldContainerPtr(pField))
00200         {
00201             if(stringcmp(pDesc->getCName(), "parent" ) == 0)
00202                 continue;
00203 
00204             SFFieldContainerPtr *pSFFCPtr = 
00205                 reinterpret_cast<SFFieldContainerPtr *>(pField);
00206 
00207             if(pSFFCPtr->getValue() != NullFC)
00208             {
00209                 setExpandable(this);
00210                 break;
00211             }
00212         }
00213         else if(isMFFieldContainerPtr(pField))
00214         {
00215             MFFieldContainerPtr *pMFFCPtr =
00216                 reinterpret_cast<MFFieldContainerPtr *>(pField);
00217 
00218             if(stringcmp(pDesc->getCName(), "parents") == 0)
00219             {
00220                 if(pMFFCPtr->size() > 1)
00221                 {
00222                     setExpandable(this);
00223                     break;
00224                 }
00225             }
00226             else
00227             {
00228                 if(pMFFCPtr->size() > 0)
00229                 {
00230                     setExpandable(this);
00231                     break;
00232                 }
00233             }
00234         }
00235     }
00236 
00237     Inherited::setup();
00238 }

void QFCItem::expand void   )  [virtual, inherited]
 

Implements osg::QSceneGraphItem.

Definition at line 241 of file OSGQNodeTreeView_qt.cpp.

References osg::QFCItem::addAttachments(), osg::QFCItem::addParents(), osg::QFCItem::addRefedContainer(), osg::endLog(), osg::QSceneGraphItem::getAspect(), osg::FieldContainerPtrBase::getAspectCPtr(), osg::FieldDescription::getCName(), osg::QFCItem::getFC(), osg::FieldContainer::getField(), osg::FieldContainerType::getFieldDescription(), osg::FieldContainerType::getNumFieldDescs(), osg::FieldContainer::getType(), osg::isMFFieldContainerPtr(), osg::isSFFieldContainerPtr(), PNOTICE, and osg::stringcmp().

00242 {
00243     if(childCount() != 0)
00244         return;
00245 
00246     FieldContainer *pFCAsp = getFC().getAspectCPtr(getAspect());
00247 
00248     if(!pFCAsp)
00249         return;
00250 
00251     FieldContainerType &fcType      = pFCAsp->getType();
00252     UInt32              uiNumFields = fcType.getNumFieldDescs();
00253 
00254     for(UInt32 fieldId = 1; fieldId <= uiNumFields; ++fieldId)
00255     {
00256         FieldDescription *pFieldDesc = fcType.getFieldDescription(fieldId);
00257         Field            *pField     = pFCAsp->getField          (fieldId);
00258         
00259         //add Items for all referenced containers (except parents)
00260         if(isSFFieldContainerPtr(pField))
00261         {
00262             if(stringcmp(pFieldDesc->getCName(), "parent" ) == 0)
00263                 continue;
00264 
00265             addRefedContainer(
00266                 reinterpret_cast<SFFieldContainerPtr *>(pField));
00267         }
00268         else if(isMFFieldContainerPtr(pField))
00269         {
00270             if(stringcmp(pFieldDesc->getCName(), "parents") == 0)
00271             {
00272                 addParents(
00273                     reinterpret_cast<MFFieldContainerPtr *>(pField));
00274             }
00275             else
00276             {
00277                 addRefedContainer(
00278                     reinterpret_cast<MFFieldContainerPtr *>(pField), 
00279                     pFieldDesc   );
00280             }
00281         }
00282 
00283         //add attachments
00284         if(stringcmp(pFieldDesc->getCName(), "attachments") == 0)
00285         {
00286             addAttachments(dynamic_cast<SFAttachmentMap *>(pField));
00287         }
00288     }
00289 
00290     PNOTICE << endLog;
00291 }

void QFCItem::collapse void   )  [virtual, inherited]
 

Implements osg::QSceneGraphItem.

Definition at line 294 of file OSGQNodeTreeView_qt.cpp.

00295 {
00296 }

void QSceneGraphItem::setOpen bool  bOpen  )  [virtual, inherited]
 

Definition at line 107 of file OSGQNodeTreeView_qt.cpp.

References osg::QSceneGraphItem::collapse(), and osg::QSceneGraphItem::expand().

00108 {
00109     if(bOpen)
00110         expand();
00111     else
00112         collapse();
00113 
00114     Inherited::setOpen(bOpen);
00115 }

UInt32 QSceneGraphItem::getAspect void   )  [protected, inherited]
 

Definition at line 118 of file OSGQNodeTreeView_qt.cpp.

References osg::QNodeTreeView::dcast(), and osg::QNodeTreeView::getAspect().

Referenced by osg::QFCItem::expand(), and osg::QFCItem::setup().

00119 {
00120     if(!this->listView())
00121         return 0;
00122 
00123     QNodeTreeView *pView = QNodeTreeView::dcast(this->listView());
00124 
00125     if(!pView)
00126         return 0;
00127 
00128     return pView->getAspect();
00129 }


The documentation for this class was generated from the following files:
Generated on Thu Aug 25 04:31:13 2005 for OpenSG by  doxygen 1.4.3