#include <OSGQNodeTreeView_qt.h>
Inheritance diagram for osg::QFCItem:

Public Member Functions | |
| QFCItem (QListView *parent, const FieldContainerPtr &pFC) | |
| QFCItem (QListViewItem *parent, const FieldContainerPtr &pFC) | |
| virtual | ~QFCItem (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 QFCItem * | dcast (QListViewItem *pItem) |
Protected Member Functions | |
| UInt32 | getAspect (void) |
Private Types | |
| typedef QSceneGraphItem | Inherited |
Private Member Functions | |
| void | addRefedContainer (SFFieldContainerPtr *pSFFCPtr) |
| void | addRefedContainer (MFFieldContainerPtr *pMFFCPtr, FieldDescription *pFieldDesc) |
| void | addAttachments (SFAttachmentMap *pSFAttMap) |
| void | addParents (MFFieldContainerPtr *pMFFCPtr) |
Private Attributes | |
| FieldContainerPtr | _pFC |
Definition at line 95 of file OSGQNodeTreeView_qt.h.
|
|
Reimplemented from osg::QSceneGraphItem. Reimplemented in osg::QNodeItem, and osg::QNodeCoreItem. Definition at line 113 of file OSGQNodeTreeView_qt.h. |
|
||||||||||||
|
Definition at line 135 of file OSGQNodeTreeView_qt.cpp. References osg::AttachmentContainerPtr::dcast(), getFC(), osg::getName(), and osg::NullFC. Referenced by addAttachments(), addParents(), and addRefedContainer(). 00136 : Inherited(parent), 00137 _pFC (pFC ) 00138 { 00139 if(getFC() != NullFC) 00140 { 00141 setText(0, QString(getFC()->getType().getCName())); 00142 00143 if(getName(AttachmentContainerPtr::dcast(getFC()))) 00144 setText(1, 00145 QString(getName(AttachmentContainerPtr::dcast(getFC())))); 00146 else 00147 setText(1, QString("unnamed") ); 00148 } 00149 }
|
|
||||||||||||
|
Definition at line 151 of file OSGQNodeTreeView_qt.cpp. References osg::AttachmentContainerPtr::dcast(), getFC(), osg::getName(), and osg::NullFC. 00152 : Inherited(parent), 00153 _pFC (pFC ) 00154 { 00155 if(getFC() != NullFC) 00156 { 00157 setText(0, QString(getFC()->getType().getCName())); 00158 00159 if(getName(AttachmentContainerPtr::dcast(getFC()))) 00160 setText(1, 00161 QString(getName(AttachmentContainerPtr::dcast(getFC())))); 00162 else 00163 setText(1, QString("unnamed") ); 00164 } 00165 }
|
|
|
Definition at line 167 of file OSGQNodeTreeView_qt.cpp.
|
|
|
Reimplemented from osg::QSceneGraphItem. Reimplemented in osg::QNodeItem, and osg::QNodeCoreItem. Definition at line 172 of file OSGQNodeTreeView_qt.cpp.
|
|
|
Implements osg::QSceneGraphItem. Definition at line 178 of file OSGQNodeTreeView_qt.cpp. References _pFC. Referenced by addParents(), expand(), QFCItem(), and setup(). 00179 { 00180 return _pFC; 00181 }
|
|
|
Definition at line 184 of file OSGQNodeTreeView_qt.cpp. References osg::QSceneGraphItem::getAspect(), osg::FieldContainerPtrBase::getAspectCPtr(), osg::FieldDescription::getCName(), 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 }
|
|
|
Implements osg::QSceneGraphItem. Definition at line 241 of file OSGQNodeTreeView_qt.cpp. References addAttachments(), addParents(), addRefedContainer(), osg::endLog(), osg::QSceneGraphItem::getAspect(), osg::FieldContainerPtrBase::getAspectCPtr(), osg::FieldDescription::getCName(), 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 }
|
|
|
Implements osg::QSceneGraphItem. Definition at line 294 of file OSGQNodeTreeView_qt.cpp.
|
|
|
Definition at line 299 of file OSGQNodeTreeView_qt.cpp. References osg::AttachmentContainerPtr::dcast(), osg::NodePtr::dcast(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::NullFC, and QFCItem(). Referenced by expand(). 00300 { 00301 if(!pSFFCPtr || (pSFFCPtr->getValue() == NullFC)) 00302 return; 00303 00304 if(pSFFCPtr->getValue()->getType().isNode()) 00305 { 00306 new QNodeItem(this, NodePtr::dcast(pSFFCPtr->getValue())); 00307 } 00308 else if(pSFFCPtr->getValue()->getType().isNodeCore()) 00309 { 00310 new QNodeCoreItem(this, NodeCorePtr::dcast(pSFFCPtr->getValue())); 00311 } 00312 else 00313 { 00314 new QFCItem(this, pSFFCPtr->getValue()); 00315 } 00316 }
|
|
||||||||||||
|
Definition at line 319 of file OSGQNodeTreeView_qt.cpp. References osg::AttachmentContainerPtr::dcast(), osg::NodePtr::dcast(), osg::FieldDescription::getCName(), QFCItem(), osg::MField< FieldTypeT, fieldNameSpace >::rbegin(), and osg::MField< FieldTypeT, fieldNameSpace >::rend(). 00321 { 00322 if(!pMFFCPtr || !pFieldDesc) 00323 return; 00324 00325 MFFieldContainerPtr::reverse_iterator mfIter = pMFFCPtr->rbegin(); 00326 MFFieldContainerPtr::reverse_iterator mfEnd = pMFFCPtr->rend(); 00327 00328 QHeaderItem *pHeaderItem; 00329 00330 if(mfIter != mfEnd) 00331 pHeaderItem = new QHeaderItem(this, pFieldDesc->getCName()); 00332 00333 for(; mfIter != mfEnd; ++mfIter) 00334 { 00335 if((*mfIter)->getType().isNode()) 00336 { 00337 new QNodeItem(pHeaderItem, NodePtr::dcast(*mfIter)); 00338 } 00339 else if((*mfIter)->getType().isNodeCore()) 00340 { 00341 new QNodeCoreItem(pHeaderItem, NodeCorePtr::dcast(*mfIter)); 00342 } 00343 else 00344 { 00345 new QFCItem(pHeaderItem, *mfIter); 00346 } 00347 } 00348 }
|
|
|
Definition at line 351 of file OSGQNodeTreeView_qt.cpp. References osg::SField< FieldTypeT, fieldNameSpace >::getValue(), and QFCItem(). Referenced by expand(). 00352 { 00353 AttachmentMap::reverse_iterator mapIter = pSFAttMap->getValue().rbegin(); 00354 AttachmentMap::reverse_iterator mapEnd = pSFAttMap->getValue().rend(); 00355 00356 if(mapIter == mapEnd) 00357 return; 00358 00359 QHeaderItem *pHeaderItem = new QHeaderItem(this, "attachments"); 00360 00361 for(; mapIter != mapEnd; ++mapIter) 00362 { 00363 new QFCItem(pHeaderItem, (*mapIter).second); 00364 } 00365 }
|
|
|
Definition at line 368 of file OSGQNodeTreeView_qt.cpp. References osg::AttachmentContainerPtr::dcast(), osg::NodePtr::dcast(), getFC(), QFCItem(), osg::MField< FieldTypeT, fieldNameSpace >::rbegin(), osg::MField< FieldTypeT, fieldNameSpace >::rend(), and osg::MField< FieldTypeT, fieldNameSpace >::size(). Referenced by expand(). 00369 { 00370 if(!pMFFCPtr) 00371 return; 00372 00373 MFFieldContainerPtr::reverse_iterator mfIter = pMFFCPtr->rbegin(); 00374 MFFieldContainerPtr::reverse_iterator mfEnd = pMFFCPtr->rend(); 00375 00376 if((mfIter == mfEnd) || (pMFFCPtr->size() <= 1)) 00377 return; 00378 00379 QHeaderItem *pHeaderItem = new QHeaderItem(this, "parents"); 00380 00381 for( ; mfIter != mfEnd; ++mfIter) 00382 { 00383 if(*mfIter == getFC()) 00384 continue; 00385 00386 if((*mfIter)->getType().isNode()) 00387 { 00388 new QNodeItem(pHeaderItem, NodePtr::dcast(*mfIter)); 00389 } 00390 else if((*mfIter)->getType().isNodeCore()) 00391 { 00392 new QNodeCoreItem(pHeaderItem, NodeCorePtr::dcast(*mfIter)); 00393 } 00394 else 00395 { 00396 new QFCItem(pHeaderItem, *mfIter); 00397 } 00398 } 00399 }
|
|
|
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 }
|
|
|
Definition at line 118 of file OSGQNodeTreeView_qt.cpp. References osg::QNodeTreeView::dcast(), and osg::QNodeTreeView::getAspect(). Referenced by expand(), and 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 }
|
|
|
Definition at line 121 of file OSGQNodeTreeView_qt.h. Referenced by getFC(). |
1.4.3