osg::QNodeCoreItem Class Reference

#include <OSGQNodeTreeView_qt.h>

Inheritance diagram for osg::QNodeCoreItem:

osg::QFCItem osg::QSceneGraphItem

List of all members.

Public Member Functions

 QNodeCoreItem (QListView *parent, const NodeCorePtr &pNodeCore)
 QNodeCoreItem (QListViewItem *parent, const NodeCorePtr &pNodeCore)
virtual ~QNodeCoreItem (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 QNodeCoreItem * dcast (QListViewItem *pItem)

Protected Member Functions

UInt32 getAspect (void)

Private Types

typedef QFCItem Inherited


Detailed Description

Definition at line 138 of file OSGQNodeTreeView_qt.h.


Member Typedef Documentation

Reimplemented from osg::QFCItem.

Definition at line 148 of file OSGQNodeTreeView_qt.h.


Constructor & Destructor Documentation

QNodeCoreItem::QNodeCoreItem ( QListView *  parent,
const NodeCorePtr &  pNodeCore 
)

Definition at line 429 of file OSGQNodeTreeView_qt.cpp.

References osg::getName(), and osg::NullFC.

00431     : Inherited (parent, pNodeCore)
00432 {
00433     if(pNodeCore != NullFC)
00434     {
00435         setText(0, QString(pNodeCore->getType().getCName()) + 
00436                    QString(" NodeCore")                      );
00437 
00438         if(getName(pNodeCore))
00439             setText(1, QString(getName(pNodeCore)));
00440         else
00441             setText(1, QString("unnamed")         );
00442     }
00443 }

QNodeCoreItem::QNodeCoreItem ( QListViewItem *  parent,
const NodeCorePtr &  pNodeCore 
)

Definition at line 445 of file OSGQNodeTreeView_qt.cpp.

References osg::getName(), and osg::NullFC.

00447     : Inherited (parent, pNodeCore)
00448 {
00449     if(pNodeCore != NullFC)
00450     {
00451         setText(0, QString(pNodeCore->getType().getCName()) + 
00452                    QString(" NodeCore")                      );
00453 
00454         if(getName(pNodeCore))
00455             setText(1, QString(getName(pNodeCore)));
00456         else
00457             setText(1, QString("unnamed")         );
00458     }
00459 }

QNodeCoreItem::~QNodeCoreItem ( void   )  [virtual]

Definition at line 461 of file OSGQNodeTreeView_qt.cpp.

00462 {
00463 }


Member Function Documentation

QNodeCoreItem * QNodeCoreItem::dcast ( QListViewItem *  pItem  )  [static]

Reimplemented from osg::QFCItem.

Definition at line 466 of file OSGQNodeTreeView_qt.cpp.

00467 {
00468     return dynamic_cast<QNodeCoreItem *>(pItem);
00469 }

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 Mon Mar 17 12:26:20 2008 for OpenSG by  doxygen 1.5.5