#include <OSGMaterialPool.h>
Public Types | |
| enum | { MaterialsFieldId = Inherited::NextFieldId, NextFieldId = MaterialsFieldId + 1 } |
| typedef MaterialPoolPtr | Ptr |
| enum | { ParentsFieldId = Inherited::NextFieldId, NextFieldId = ParentsFieldId + 1 } |
| typedef MFNodePtr | ParentsField |
| typedef MFNodePtr * | ParentsFieldPtr |
| typedef MFNodePtr::iterator | ParentsFieldIt |
| enum | { AttachmentsFieldId = Inherited::NextFieldId, NextFieldId = AttachmentsFieldId + 1 } |
| enum | { NextFieldId = 1 } |
Public Member Functions | |
Sync | |
| virtual void | changed (BitVector whichField, UInt32 origin) |
Access | |
| void | sync (void) |
| UInt32 | getCount (void) const |
| void | add (const MaterialPtr &mat) |
| void | add (const NodePtr &root) |
| void | add (const MaterialPoolPtr &mp) |
| Int32 | find (const MaterialPtr &mat) const |
| void | sub (const MaterialPtr &mat) |
| void | sub (const NodePtr &root) |
| void | sub (const MaterialPoolPtr &mp) |
| void | sub (UInt32 mat) |
| MaterialPtr | get (UInt32 index) |
| void | get (std::vector< MaterialPtr > &mats) |
| const std::set< MaterialPtr > & | get (void) |
| void | clear (void) |
Dump | |
| virtual void | dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const |
FieldContainer Get | |
| virtual FieldContainerType & | getType (void) |
| virtual const FieldContainerType & | getType (void) const |
| virtual UInt32 | getContainerSize (void) const |
Binary Access | |
| virtual UInt32 | getBinSize (const BitVector &whichField) |
| virtual void | copyToBin (BinaryDataHandler &pMem, const BitVector &whichField) |
| virtual void | copyFromBin (BinaryDataHandler &pMem, const BitVector &whichField) |
Copy | |
| virtual FieldContainerPtr | shallowCopy (void) const |
Parents | |
| MFNodePtr & | getParents (void) |
| const MFNodePtr & | getParents (void) const |
| MFNodePtr * | getMFParents (void) |
Transformation | |
| virtual void | accumulateMatrix (Matrix &result) |
Handle Attachments | |
| void | addAttachment (const AttachmentPtr &fieldContainerP, UInt16 binding=0) |
| void | subAttachment (const AttachmentPtr &fieldContainerP, UInt16 binding=0) |
| AttachmentPtr | findAttachment (UInt32 groupId, UInt16 binding=0) |
| AttachmentPtr | findAttachment (const FieldContainerType &type, UInt16 binding=0) |
| SFAttachmentMap * | getSFAttachments (void) |
Get Instance Type Information | |
| UInt32 | getTypeId (void) const |
| UInt16 | getGroupId (void) const |
| const Char8 * | getTypeName (void) const |
| Field * | getField (UInt32 fieldId) |
| Field * | getField (const Char8 *fieldName) |
Static Public Member Functions | |
Class Get | |
| static FieldContainerType & | getClassType (void) |
| access the type of the class | |
| static UInt32 | getClassTypeId (void) |
| access the numerical type of the class | |
Construction | |
| static MaterialPoolPtr | create (void) |
| create a new instance of the class | |
| static MaterialPoolPtr | createEmpty (void) |
| create an empty new instance of the class, do not copy the prototype | |
Get Class Type Information | |
| static UInt16 | getClassGroupId (void) |
Static Public Attributes | |
| static const osg::BitVector | MaterialsFieldMask |
| static const osg::BitVector | MTInfluenceMask |
| static const BitVector | ParentsFieldMask = (1 << NodeCore::ParentsFieldId ) |
| static const BitVector | AttachmentsFieldMask |
| static const BitVector | NextFieldMask |
CoredNodePtr helper | |
| static const bool | isNodeCore = true |
Protected Types | |
| typedef MaterialPoolBase | Inherited |
Protected Member Functions | |
Constructors | |
| MaterialPool (void) | |
| MaterialPool (const MaterialPool &source) | |
Destructors | |
| virtual | ~MaterialPool (void) |
| void | onDestroy (void) |
Field Get | |
| MFMaterialPtr * | editMFMaterials (void) |
| Get the MaterialPool::_mfMaterials field. | |
| const MFMaterialPtr * | getMFMaterials (void) const |
| Get the MaterialPool::_mfMaterials field. | |
| MFMaterialPtr * | getMFMaterials (void) |
| Get the MaterialPool::_mfMaterials field. | |
| MaterialPtr & | editMaterials (UInt32 index) |
| Get the value of the index element the MaterialPool::_mfMaterials field. | |
| const MaterialPtr & | getMaterials (UInt32 index) const |
| Get the value of the index element the MaterialPool::_mfMaterials field. | |
| MaterialPtr & | getMaterials (UInt32 index) |
| Get the value of the index element the MaterialPool::_mfMaterials field. | |
| MFMaterialPtr & | getMaterials (void) |
| Get the MaterialPool::_mfMaterials field. | |
| const MFMaterialPtr & | getMaterials (void) const |
| Get the MaterialPool::_mfMaterials field. | |
Sync | |
| void | executeSyncImpl (MaterialPoolBase *pOther, const BitVector &whichField) |
| virtual void | executeSync (FieldContainer &other, const BitVector &whichField) |
Sync | |
| virtual void | executeSync (FieldContainer &other, const BitVector &whichField)=0 |
Action Callbacks | |
| Action::ResultE | drawEnter (Action *action) |
| Action::ResultE | drawLeave (Action *action) |
| Action::ResultE | renderEnter (Action *action) |
| Action::ResultE | renderLeave (Action *action) |
| Action::ResultE | intersect (Action *action) |
Set / Get Parents | |
| void | addParent (const NodePtr &parent) |
| void | subParent (const NodePtr &parent) |
Pointer | |
| NodeCorePtr | getPtr (void) const |
Pointer | |
| AttachmentContainerPtr | getPtr (void) |
MT Edit | |
| template<class FieldTypeT > | |
| void | beginEditX (const BitVector &whichField, FieldTypeT &field) |
| template<class FieldTypeT > | |
| void | endEditX (const BitVector &whichField, FieldTypeT &field) |
MT Construction | |
| void | onCreate (const FieldContainer *source=NULL) |
| void | onCreateAspect (const FieldContainer *aspect0, const FieldContainer *source=NULL) |
Static Protected Member Functions | |
Create Fieldcontainer | |
| template<class ObjectPtrT > | |
| static void | newPtr (ObjectPtrT &result, const typename ObjectPtrT::StoredObjectType *prototypeP) |
| template<class ObjectPtrT > | |
| static void | newPtr (ObjectPtrT &result) |
Protected Attributes | |
Fields | |
| MFMaterialPtr | _mfMaterials |
Fields | |
| MFNodePtr | _parents |
Fields | |
| SFAttachmentMap | _attachmentMap |
Member | |
| UInt32 | _shares |
Private Member Functions | |
| void | operator= (const MaterialPool &source) |
| prohibit default function (move to 'public' if needed) | |
| osg::Action::ResultE | addMaterialCB (osg::NodePtr &node) |
| osg::Action::ResultE | subMaterialCB (osg::NodePtr &node) |
Static Private Member Functions | |
Init | |
| static void | initMethod (void) |
Private Attributes | |
| std::set< MaterialPtr > | _mats |
Friends | |
| class | FieldContainer |
| class | MaterialPoolBase |
Volume | |
|
| |
| virtual void | invalidateVolume (void) |
| virtual void | adjustVolume (Volume &volume) |
Definition at line 56 of file OSGMaterialPool.h.
typedef MaterialPoolBase osg::MaterialPool::Inherited [protected] |
Reimplemented from osg::MaterialPoolBase.
Definition at line 106 of file OSGMaterialPool.h.
typedef MaterialPoolPtr osg::MaterialPoolBase::Ptr [inherited] |
Reimplemented from osg::GroupBase.
Definition at line 90 of file OSGMaterialPoolBase.h.
typedef MFNodePtr osg::NodeCore::ParentsField [inherited] |
Definition at line 85 of file OSGNodeCore.h.
typedef MFNodePtr* osg::NodeCore::ParentsFieldPtr [inherited] |
Definition at line 86 of file OSGNodeCore.h.
typedef MFNodePtr::iterator osg::NodeCore::ParentsFieldIt [inherited] |
Definition at line 87 of file OSGNodeCore.h.
anonymous enum [inherited] |
Definition at line 92 of file OSGMaterialPoolBase.h.
00093 { 00094 MaterialsFieldId = Inherited::NextFieldId, 00095 NextFieldId = MaterialsFieldId + 1 00096 };
anonymous enum [inherited] |
Definition at line 93 of file OSGNodeCore.h.
00094 { 00095 ParentsFieldId = Inherited::NextFieldId, 00096 NextFieldId = ParentsFieldId + 1 00097 };
anonymous enum [inherited] |
Definition at line 78 of file OSGAttachmentContainerImpl.h.
00079 { 00080 AttachmentsFieldId = Inherited::NextFieldId, 00081 NextFieldId = AttachmentsFieldId + 1 00082 };
anonymous enum [inherited] |
Definition at line 73 of file OSGFieldContainerImpl.h.
00073 { NextFieldId = 1 };
| MaterialPool::MaterialPool | ( | void | ) | [protected] |
Definition at line 90 of file OSGMaterialPool.cpp.
| MaterialPool::MaterialPool | ( | const MaterialPool & | source | ) | [protected] |
Definition at line 96 of file OSGMaterialPool.cpp.
| MaterialPool::~MaterialPool | ( | void | ) | [protected, virtual] |
Definition at line 105 of file OSGMaterialPool.cpp.
Reimplemented from osg::Group.
Definition at line 57 of file OSGMaterialPool.cpp.
References osg::MaterialPoolBase::_mfMaterials, osg::ChangedOrigin::Abstract, osg::addRefCP(), osg::MField< FieldTypeT, fieldNameSpace >::begin(), osg::Group::changed(), osg::MField< FieldTypeT, fieldNameSpace >::end(), osg::MaterialPoolBase::MaterialsFieldMask, and sync().
00058 { 00059 if(origin & ChangedOrigin::Abstract) 00060 { 00061 MFMaterialPtr::iterator matIt = _mfMaterials.begin(); 00062 MFMaterialPtr::iterator matEnd = _mfMaterials.end (); 00063 00064 while(matIt != matEnd) 00065 { 00066 addRefCP(*matIt); 00067 ++matIt; 00068 } 00069 } 00070 00071 if(whichField & MaterialsFieldMask) 00072 { 00073 sync(); 00074 } 00075 Inherited::changed(whichField, origin); 00076 }
| void MaterialPool::sync | ( | void | ) |
Definition at line 134 of file OSGMaterialPool.cpp.
References _mats, osg::MaterialPoolBase::_mfMaterials, osg::MField< FieldTypeT, fieldNameSpace >::begin(), osg::MField< FieldTypeT, fieldNameSpace >::end(), FINFO, and osg::MField< FieldTypeT, fieldNameSpace >::size().
Referenced by changed().
00135 { 00136 // should be safe as the materials interface is protected. 00137 if(_mfMaterials.size() == _mats.size()) 00138 { 00139 FINFO(("MaterialPool::sync : %u materials already synced, nothing to do.\n", _mfMaterials.size())); 00140 return; 00141 } 00142 00143 MFMaterialPtr::iterator matIt = _mfMaterials.begin(); 00144 MFMaterialPtr::const_iterator endMaterials = _mfMaterials.end (); 00145 00146 while(matIt != endMaterials) 00147 { 00148 // this is already done in the osb loader! 00149 //addRefCP(*matIt); 00150 _mats.insert(*matIt); 00151 ++matIt; 00152 } 00153 FINFO(("MaterialPool::sync : synced %u materials\n", _mfMaterials.size())); 00154 }
| UInt32 osg::MaterialPool::getCount | ( | void | ) | const [inline] |
Definition at line 45 of file OSGMaterialPool.inl.
References osg::MaterialPoolBase::_mfMaterials, and osg::MField< FieldTypeT, fieldNameSpace >::size().
00046 { 00047 return _mfMaterials.size(); 00048 }
| void MaterialPool::add | ( | const MaterialPtr & | mat | ) |
Definition at line 159 of file OSGMaterialPool.cpp.
References _mats, osg::MaterialPoolBase::_mfMaterials, osg::addRefCP(), osg::NullFC, and osg::MField< FieldTypeT, fieldNameSpace >::push_back().
Referenced by add(), and addMaterialCB().
| void MaterialPool::add | ( | const NodePtr & | root | ) |
Definition at line 172 of file OSGMaterialPool.cpp.
References addMaterialCB(), osg::osgTypedMethodFunctor1ObjPtrCPtrRef(), and osg::traverse().
00173 { 00174 traverse(root, osgTypedMethodFunctor1ObjPtrCPtrRef<Action::ResultE, 00175 MaterialPool, NodePtr>(this, &MaterialPool::addMaterialCB)); 00176 }
| void MaterialPool::add | ( | const MaterialPoolPtr & | mp | ) |
Definition at line 178 of file OSGMaterialPool.cpp.
References add(), and osg::NodeCore::getPtr().
00179 { 00180 if(mp == getPtr()) 00181 return; 00182 00183 MFMaterialPtr::iterator matIt = mp->_mfMaterials.begin(); 00184 MFMaterialPtr::const_iterator endMaterials = mp->_mfMaterials.end (); 00185 00186 while(matIt != endMaterials) 00187 { 00188 add(*matIt); 00189 ++matIt; 00190 } 00191 }
| Int32 MaterialPool::find | ( | const MaterialPtr & | mat | ) | const |
Definition at line 193 of file OSGMaterialPool.cpp.
References _mats, osg::MaterialPoolBase::_mfMaterials, and osg::MField< FieldTypeT, fieldNameSpace >::size().
00194 { 00195 if(_mats.count(mat) == 0) 00196 return -1; 00197 00198 UInt32 index; 00199 00200 for(index = 0; index < _mfMaterials.size(); ++index) 00201 { 00202 if(_mfMaterials[index] == mat) 00203 return index; 00204 } 00205 return -1; 00206 }
| void MaterialPool::sub | ( | const MaterialPtr & | mat | ) |
Definition at line 208 of file OSGMaterialPool.cpp.
References _mats, osg::MaterialPoolBase::_mfMaterials, osg::MField< FieldTypeT, fieldNameSpace >::end(), osg::MField< FieldTypeT, fieldNameSpace >::erase(), osg::MField< FieldTypeT, fieldNameSpace >::find(), osg::subRefCP(), and SWARNING.
Referenced by sub(), and subMaterialCB().
00209 { 00210 if(_mats.count(mat) == 0) 00211 { 00212 SWARNING << "MaterialPool(" << this << ")::sub: " << mat 00213 << " is not one of my materials!" << std::endl; 00214 return; 00215 } 00216 00217 MFMaterialPtr::iterator matIt = _mfMaterials.find(mat); 00218 00219 if(matIt != _mfMaterials.end()) 00220 { 00221 _mats.erase(mat); 00222 subRefCP(mat); 00223 00224 _mfMaterials.erase(matIt); 00225 } 00226 else 00227 { 00228 SWARNING << "MaterialPool(" << this << ")::sub: " << mat 00229 << " is not one of my materials!" << std::endl; 00230 } 00231 }
| void MaterialPool::sub | ( | const NodePtr & | root | ) |
Definition at line 233 of file OSGMaterialPool.cpp.
References osg::osgTypedMethodFunctor1ObjPtrCPtrRef(), subMaterialCB(), and osg::traverse().
00234 { 00235 traverse(root, osgTypedMethodFunctor1ObjPtrCPtrRef<Action::ResultE, 00236 MaterialPool, NodePtr>(this, &MaterialPool::subMaterialCB)); 00237 }
| void MaterialPool::sub | ( | const MaterialPoolPtr & | mp | ) |
Definition at line 239 of file OSGMaterialPool.cpp.
References osg::NodeCore::getPtr(), and sub().
00240 { 00241 if(mp == getPtr()) 00242 return; 00243 00244 MFMaterialPtr::iterator matIt = mp->_mfMaterials.begin(); 00245 MFMaterialPtr::const_iterator endMaterials = mp->_mfMaterials.end (); 00246 00247 while(matIt != endMaterials) 00248 { 00249 sub(*matIt); 00250 ++matIt; 00251 } 00252 }
| void MaterialPool::sub | ( | UInt32 | mat | ) |
Definition at line 254 of file OSGMaterialPool.cpp.
References _mats, osg::MaterialPoolBase::_mfMaterials, osg::MField< FieldTypeT, fieldNameSpace >::begin(), osg::MField< FieldTypeT, fieldNameSpace >::end(), osg::MField< FieldTypeT, fieldNameSpace >::erase(), and osg::subRefCP().
00255 { 00256 MFMaterialPtr::iterator matIt = _mfMaterials.begin(); 00257 00258 matIt += index; 00259 00260 if(matIt != _mfMaterials.end()) 00261 { 00262 subRefCP(*matIt); 00263 _mats.erase(*matIt); 00264 _mfMaterials.erase(matIt); 00265 } 00266 }
| MaterialPtr osg::MaterialPool::get | ( | UInt32 | index | ) | [inline] |
Definition at line 51 of file OSGMaterialPool.inl.
References osg::MaterialPoolBase::_mfMaterials, OSG_ASSERT, and osg::MField< FieldTypeT, fieldNameSpace >::size().
00052 { 00053 OSG_ASSERT((index < _mfMaterials.size())); 00054 00055 return _mfMaterials[index]; 00056 }
| void MaterialPool::get | ( | std::vector< MaterialPtr > & | mats | ) |
Definition at line 268 of file OSGMaterialPool.cpp.
References osg::MaterialPoolBase::_mfMaterials, osg::MField< FieldTypeT, fieldNameSpace >::begin(), osg::MField< FieldTypeT, fieldNameSpace >::end(), and osg::MField< FieldTypeT, fieldNameSpace >::getSize().
00269 { 00270 mats.clear(); 00271 mats.reserve(_mfMaterials.getSize()); 00272 MFMaterialPtr::iterator matIt = _mfMaterials.begin(); 00273 MFMaterialPtr::const_iterator endMaterials = _mfMaterials.end (); 00274 00275 while(matIt != endMaterials) 00276 { 00277 mats.push_back(*matIt); 00278 ++matIt; 00279 } 00280 }
| const std::set< MaterialPtr > & MaterialPool::get | ( | void | ) |
Definition at line 282 of file OSGMaterialPool.cpp.
References _mats.
00283 { 00284 return _mats; 00285 }
| void MaterialPool::clear | ( | void | ) |
Definition at line 287 of file OSGMaterialPool.cpp.
References _mats, osg::MaterialPoolBase::_mfMaterials, osg::MField< FieldTypeT, fieldNameSpace >::begin(), osg::MField< FieldTypeT, fieldNameSpace >::clear(), osg::MField< FieldTypeT, fieldNameSpace >::end(), and osg::subRefCP().
00288 { 00289 MFMaterialPtr::iterator matIt = _mfMaterials.begin(); 00290 MFMaterialPtr::const_iterator endMaterials = _mfMaterials.end (); 00291 00292 while(matIt != endMaterials) 00293 { 00294 subRefCP(*matIt); 00295 ++matIt; 00296 } 00297 _mfMaterials.clear(); 00298 _mats.clear(); 00299 }
Reimplemented from osg::Group.
Definition at line 81 of file OSGMaterialPool.cpp.
References osg::Group::dump().
00083 { 00084 Inherited::dump(uiIndent, bvFlags); 00085 }
| void MaterialPool::onDestroy | ( | void | ) | [protected, virtual] |
Reimplemented from osg::NodeCore.
Definition at line 109 of file OSGMaterialPool.cpp.
References osg::MaterialPoolBase::_mfMaterials, osg::MField< FieldTypeT, fieldNameSpace >::begin(), osg::MField< FieldTypeT, fieldNameSpace >::end(), FINFO, osg::GlobalSystemState, osg::Shutdown, osg::MField< FieldTypeT, fieldNameSpace >::size(), and osg::subRefCP().
00110 { 00111 // if we're in shutdown this is the prototype ... 00112 if(OSG::GlobalSystemState == OSG::Shutdown) 00113 return; 00114 00115 MFMaterialPtr::iterator matIt = _mfMaterials.begin(); 00116 MFMaterialPtr::const_iterator endMaterials = _mfMaterials.end (); 00117 00118 FINFO(("MaterialPool::onDestroy : subrefing %u materials\n", _mfMaterials.size())); 00119 while(matIt != endMaterials) 00120 { 00121 subRefCP(*matIt); 00122 ++matIt; 00123 } 00124 }
| void MaterialPool::initMethod | ( | void | ) | [static, private] |
| void osg::MaterialPool::operator= | ( | const MaterialPool & | source | ) | [private] |
Reimplemented from osg::MaterialPoolBase.
| Action::ResultE MaterialPool::addMaterialCB | ( | osg::NodePtr & | node | ) | [private] |
Definition at line 301 of file OSGMaterialPool.cpp.
References add(), osg::Action::Continue, osg::AttachmentContainerPtr::dcast(), osg::NodePtr::getCore(), and osg::NullFC.
Referenced by add().
00302 { 00303 FieldContainerPtr core = node->getCore(); 00304 00305 if(core == NullFC) 00306 return Action::Continue; 00307 00308 MaterialGroupPtr mg = MaterialGroupPtr::dcast(core); 00309 if(mg != NullFC) 00310 { 00311 add(mg->getMaterial()); 00312 return Action::Continue; 00313 } 00314 00315 MaterialPoolPtr mp = MaterialPoolPtr::dcast(core); 00316 if(mp != NullFC) 00317 { 00318 add(mp); 00319 return Action::Continue; 00320 } 00321 00322 MaterialDrawablePtr md = MaterialDrawablePtr::dcast(core); 00323 if(md != NullFC) 00324 { 00325 add(md->getMaterial()); 00326 return Action::Continue; 00327 } 00328 00329 const char *typename2 = core->getType().getName().str(); 00330 if(!strcmp(typename2, "DVRVolume")) 00331 { 00332 Field *field = core->getField("renderMaterial"); 00333 if(field != NULL) 00334 { 00335 add(MaterialPtr::dcast((static_cast<SFFieldContainerPtr *>(field))->getValue())); 00336 } 00337 } 00338 00339 return Action::Continue; 00340 }
| Action::ResultE MaterialPool::subMaterialCB | ( | osg::NodePtr & | node | ) | [private] |
Definition at line 342 of file OSGMaterialPool.cpp.
References osg::Action::Continue, osg::AttachmentContainerPtr::dcast(), osg::NodePtr::getCore(), osg::NullFC, and sub().
Referenced by sub().
00343 { 00344 FieldContainerPtr core = node->getCore(); 00345 00346 if(core == NullFC) 00347 return Action::Continue; 00348 00349 MaterialGroupPtr mg = MaterialGroupPtr::dcast(core); 00350 if(mg != NullFC) 00351 { 00352 sub(mg->getMaterial()); 00353 return Action::Continue; 00354 } 00355 00356 // ignore MaterialPool node! 00357 #if 0 00358 MaterialPoolPtr mp = MaterialPoolPtr::dcast(core); 00359 if(mp != NullFC) 00360 { 00361 sub(mp); 00362 return Action::Continue; 00363 } 00364 #endif 00365 00366 MaterialDrawablePtr md = MaterialDrawablePtr::dcast(core); 00367 if(md != NullFC) 00368 { 00369 sub(md->getMaterial()); 00370 return Action::Continue; 00371 } 00372 00373 const char *typename2 = core->getType().getName().str(); 00374 if(!strcmp(typename2, "DVRVolume")) 00375 { 00376 Field *field = core->getField("renderMaterial"); 00377 if(field != NULL) 00378 { 00379 sub(MaterialPtr::dcast((static_cast<SFFieldContainerPtr *>(field))->getValue())); 00380 } 00381 } 00382 00383 return Action::Continue; 00384 }
| osg::FieldContainerType & osg::MaterialPoolBase::getClassType | ( | void | ) | [inline, static, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 58 of file OSGMaterialPoolBase.inl.
References osg::MaterialPoolBase::_type.
Referenced by osg::MaterialPoolBase::create().
00059 { 00060 return _type; 00061 }
| osg::UInt32 osg::MaterialPoolBase::getClassTypeId | ( | void | ) | [inline, static, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 65 of file OSGMaterialPoolBase.inl.
References osg::MaterialPoolBase::_type, and osg::TypeBase::getId().
00066 { 00067 return _type.getId(); 00068 }
| FieldContainerType & osg::MaterialPoolBase::getType | ( | void | ) | [virtual, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 106 of file OSGMaterialPoolBase.cpp.
References osg::MaterialPoolBase::_type.
00107 { 00108 return _type; 00109 }
| const FieldContainerType & osg::MaterialPoolBase::getType | ( | void | ) | const [virtual, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 111 of file OSGMaterialPoolBase.cpp.
References osg::MaterialPoolBase::_type.
00112 { 00113 return _type; 00114 }
| UInt32 osg::MaterialPoolBase::getContainerSize | ( | void | ) | const [virtual, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 126 of file OSGMaterialPoolBase.cpp.
Reimplemented from osg::GroupBase.
Definition at line 190 of file OSGMaterialPoolBase.cpp.
References osg::MaterialPoolBase::_mfMaterials, osg::MField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::GroupBase::getBinSize(), osg::MaterialPoolBase::MaterialsFieldMask, and osg::FieldBits::NoField.
00191 { 00192 UInt32 returnValue = Inherited::getBinSize(whichField); 00193 00194 if(FieldBits::NoField != (MaterialsFieldMask & whichField)) 00195 { 00196 returnValue += _mfMaterials.getBinSize(); 00197 } 00198 00199 00200 return returnValue; 00201 }
| void osg::MaterialPoolBase::copyToBin | ( | BinaryDataHandler & | pMem, | |
| const BitVector & | whichField | |||
| ) | [virtual, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 203 of file OSGMaterialPoolBase.cpp.
References osg::MaterialPoolBase::_mfMaterials, osg::MField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::GroupBase::copyToBin(), osg::MaterialPoolBase::MaterialsFieldMask, and osg::FieldBits::NoField.
00205 { 00206 Inherited::copyToBin(pMem, whichField); 00207 00208 if(FieldBits::NoField != (MaterialsFieldMask & whichField)) 00209 { 00210 _mfMaterials.copyToBin(pMem); 00211 } 00212 00213 00214 }
| void osg::MaterialPoolBase::copyFromBin | ( | BinaryDataHandler & | pMem, | |
| const BitVector & | whichField | |||
| ) | [virtual, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 216 of file OSGMaterialPoolBase.cpp.
References osg::MaterialPoolBase::_mfMaterials, osg::MField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::GroupBase::copyFromBin(), osg::MaterialPoolBase::MaterialsFieldMask, and osg::FieldBits::NoField.
00218 { 00219 Inherited::copyFromBin(pMem, whichField); 00220 00221 if(FieldBits::NoField != (MaterialsFieldMask & whichField)) 00222 { 00223 _mfMaterials.copyFromBin(pMem); 00224 } 00225 00226 00227 }
| MaterialPoolPtr osg::MaterialPoolBase::create | ( | void | ) | [inline, static, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 72 of file OSGMaterialPoolBase.inl.
References osg::AttachmentContainerPtr::dcast(), osg::MaterialPoolBase::getClassType(), osg::NullFC, and osg::MaterialPoolBase::shallowCopy().
00073 { 00074 MaterialPoolPtr fc; 00075 00076 if(getClassType().getPrototype() != OSG::NullFC) 00077 { 00078 fc = MaterialPoolPtr::dcast( 00079 getClassType().getPrototype()-> shallowCopy()); 00080 } 00081 00082 return fc; 00083 }
| MaterialPoolPtr osg::MaterialPoolBase::createEmpty | ( | void | ) | [inline, static, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 87 of file OSGMaterialPoolBase.inl.
References osg::FieldContainer::newPtr().
00088 { 00089 MaterialPoolPtr returnValue; 00090 00091 newPtr(returnValue); 00092 00093 return returnValue; 00094 }
| FieldContainerPtr osg::MaterialPoolBase::shallowCopy | ( | void | ) | const [virtual, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 117 of file OSGMaterialPoolBase.cpp.
References osg::FieldContainer::newPtr().
Referenced by osg::MaterialPoolBase::create().
00118 { 00119 MaterialPoolPtr returnValue; 00120 00121 newPtr(returnValue, dynamic_cast<const MaterialPool *>(this)); 00122 00123 return returnValue; 00124 }
| MFMaterialPtr * osg::MaterialPoolBase::editMFMaterials | ( | void | ) | [inline, protected, inherited] |
Definition at line 108 of file OSGMaterialPoolBase.inl.
References osg::MaterialPoolBase::_mfMaterials.
00109 { 00110 return &_mfMaterials; 00111 }
| const MFMaterialPtr * osg::MaterialPoolBase::getMFMaterials | ( | void | ) | const [inline, protected, inherited] |
Definition at line 101 of file OSGMaterialPoolBase.inl.
References osg::MaterialPoolBase::_mfMaterials.
00102 { 00103 return &_mfMaterials; 00104 }
| MFMaterialPtr * osg::MaterialPoolBase::getMFMaterials | ( | void | ) | [inline, protected, inherited] |
Definition at line 116 of file OSGMaterialPoolBase.inl.
References osg::MaterialPoolBase::_mfMaterials.
00117 { 00118 return &_mfMaterials; 00119 }
| MaterialPtr & osg::MaterialPoolBase::editMaterials | ( | UInt32 | index | ) | [inline, protected, inherited] |
Definition at line 126 of file OSGMaterialPoolBase.inl.
References osg::MaterialPoolBase::_mfMaterials.
00127 { 00128 return _mfMaterials[index]; 00129 }
| const MaterialPtr & osg::MaterialPoolBase::getMaterials | ( | UInt32 | index | ) | const [inline, protected, inherited] |
Definition at line 133 of file OSGMaterialPoolBase.inl.
References osg::MaterialPoolBase::_mfMaterials.
00134 { 00135 return _mfMaterials[index]; 00136 }
| MaterialPtr & osg::MaterialPoolBase::getMaterials | ( | UInt32 | index | ) | [inline, protected, inherited] |
Definition at line 141 of file OSGMaterialPoolBase.inl.
References osg::MaterialPoolBase::_mfMaterials.
00142 { 00143 return _mfMaterials[index]; 00144 }
| MFMaterialPtr & osg::MaterialPoolBase::getMaterials | ( | void | ) | [inline, protected, inherited] |
Definition at line 148 of file OSGMaterialPoolBase.inl.
References osg::MaterialPoolBase::_mfMaterials.
00149 { 00150 return _mfMaterials; 00151 }
| const MFMaterialPtr & osg::MaterialPoolBase::getMaterials | ( | void | ) | const [inline, protected, inherited] |
Definition at line 155 of file OSGMaterialPoolBase.inl.
References osg::MaterialPoolBase::_mfMaterials.
00156 { 00157 return _mfMaterials; 00158 }
| void osg::MaterialPoolBase::executeSyncImpl | ( | MaterialPoolBase * | pOther, | |
| const BitVector & | whichField | |||
| ) | [protected, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 230 of file OSGMaterialPoolBase.cpp.
References osg::MaterialPoolBase::_mfMaterials, osg::GroupBase::executeSyncImpl(), osg::MaterialPoolBase::MaterialsFieldMask, osg::FieldBits::NoField, and osg::MField< FieldTypeT, fieldNameSpace >::syncWith().
Referenced by osg::MaterialPoolBase::executeSync().
00232 { 00233 00234 Inherited::executeSyncImpl(pOther, whichField); 00235 00236 if(FieldBits::NoField != (MaterialsFieldMask & whichField)) 00237 _mfMaterials.syncWith(pOther->_mfMaterials); 00238 00239 00240 }
| void osg::MaterialPoolBase::executeSync | ( | FieldContainer & | other, | |
| const BitVector & | whichField | |||
| ) | [protected, virtual, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 133 of file OSGMaterialPoolBase.cpp.
References osg::MaterialPoolBase::executeSyncImpl().
00135 { 00136 this->executeSyncImpl(static_cast<MaterialPoolBase *>(&other), 00137 whichField); 00138 }
| virtual void osg::FieldContainer::executeSync | ( | FieldContainer & | other, | |
| const BitVector & | whichField | |||
| ) | [protected, pure virtual, inherited] |
Referenced by osg::FieldContainerPtrBase::executeSync().
| Action::ResultE Group::drawEnter | ( | Action * | action | ) | [protected, inherited] |
Reimplemented in osg::DirectionalLight, osg::Light, osg::PointLight, osg::SpotLight, osg::Billboard, osg::Fog, osg::InverseTransform, osg::MaterialGroup, osg::ScreenGroup, and osg::Transform.
Definition at line 100 of file OSGGroup.cpp.
References osg::Action::Continue, osg::DrawActionBase::selectVisibles(), and osg::Action::Skip.
Referenced by osg::Group::initMethod().
00101 { 00102 DrawActionBase *da = dynamic_cast<DrawActionBase *>(action); 00103 00104 if(da->selectVisibles() == 0) 00105 return Action::Skip; 00106 00107 return Action::Continue; 00108 }
| Action::ResultE Group::drawLeave | ( | Action * | action | ) | [protected, inherited] |
Reimplemented in osg::DirectionalLight, osg::Light, osg::PointLight, osg::SpotLight, osg::Billboard, osg::Fog, osg::InverseTransform, osg::MaterialGroup, osg::ScreenGroup, and osg::Transform.
Definition at line 110 of file OSGGroup.cpp.
References osg::Action::Continue.
Referenced by osg::Group::initMethod().
00111 { 00112 return Action::Continue; 00113 }
| Action::ResultE Group::renderEnter | ( | Action * | action | ) | [protected, inherited] |
Reimplemented in osg::DirectionalLight, osg::Light, osg::PointLight, osg::SpotLight, osg::Billboard, osg::ClipPlane, osg::Fog, osg::InverseTransform, osg::MaterialGroup, osg::ScreenGroup, and osg::Transform.
Definition at line 118 of file OSGGroup.cpp.
References osg::Action::Continue, osg::RenderAction::popVisibility(), osg::RenderAction::pushVisibility(), osg::DrawActionBase::selectVisibles(), and osg::Action::Skip.
Referenced by osg::Group::initMethod().
00119 { 00120 RenderAction *ra = dynamic_cast<RenderAction *>(action); 00121 00122 if (ra->pushVisibility()) 00123 { 00124 if(ra->selectVisibles() == 0) 00125 { 00126 ra->popVisibility(); 00127 return Action::Skip; 00128 } 00129 } 00130 00131 return Action::Continue; 00132 }
| Action::ResultE Group::renderLeave | ( | Action * | action | ) | [protected, inherited] |
Reimplemented in osg::DirectionalLight, osg::Light, osg::PointLight, osg::SpotLight, osg::Billboard, osg::ClipPlane, osg::Fog, osg::InverseTransform, osg::MaterialGroup, osg::ScreenGroup, and osg::Transform.
Definition at line 134 of file OSGGroup.cpp.
References osg::Action::Continue, and osg::RenderAction::popVisibility().
Referenced by osg::Group::initMethod().
00135 { 00136 RenderAction *ra = dynamic_cast<RenderAction *>(action); 00137 00138 ra->popVisibility(); 00139 00140 return Action::Continue; 00141 }
| Action::ResultE Group::intersect | ( | Action * | action | ) | [protected, inherited] |
Reimplemented in osg::MultiSwitch, and osg::Switch.
Definition at line 146 of file OSGGroup.cpp.
References osg::Action::Continue, osg::Action::getActNode(), osg::IntersectAction::getLine(), osg::BoxVolume::intersect(), osg::Volume::isValid(), and osg::Action::Skip.
Referenced by osg::Group::initMethod(), and osg::Transform::intersectEnter().
00147 { 00148 IntersectAction *ia = dynamic_cast<IntersectAction *>(action); 00149 #ifndef OSG_2_PREP 00150 const DynamicVolume &vol = ia->getActNode()->getVolume(); 00151 #else 00152 const BoxVolume &vol = ia->getActNode()->getVolume(); 00153 #endif 00154 00155 if(vol.isValid() && ! vol.intersect(ia->getLine())) 00156 { 00157 return Action::Skip; //bv missed -> can not hit children 00158 } 00159 00160 return Action::Continue; 00161 }
| MFNodePtr & osg::NodeCore::getParents | ( | void | ) | [inline, inherited] |
Definition at line 56 of file OSGNodeCore.inl.
Referenced by osg::Surface::FindClosestPoint().
00057 { 00058 return _parents; 00059 }
| const MFNodePtr & osg::NodeCore::getParents | ( | void | ) | const [inline, inherited] |
Definition at line 62 of file OSGNodeCore.inl.
References osg::NodeCore::_parents.
00063 { 00064 return _parents; 00065 }
| MFNodePtr * osg::NodeCore::getMFParents | ( | void | ) | [inline, inherited] |
Definition at line 68 of file OSGNodeCore.inl.
References osg::NodeCore::_parents.
00069 { 00070 return &_parents; 00071 }
| void osg::NodeCore::invalidateVolume | ( | void | ) | [inline, virtual, inherited] |
Definition at line 237 of file OSGNodeCore.inl.
References osg::NodeCore::_parents, and osg::MField< FieldTypeT, fieldNameSpace >::size().
Referenced by osg::ScreenGroup::calcMatrix(), osg::Transform::changed(), osg::Slices::changed(), and osg::ComponentTransform::changed().
| void osg::NodeCore::accumulateMatrix | ( | Matrix & | result | ) | [inline, virtual, inherited] |
Reimplemented in osg::Billboard, osg::InverseTransform, osg::ScreenGroup, and osg::Transform.
Definition at line 224 of file OSGNodeCore.inl.
| void osg::NodeCore::addParent | ( | const NodePtr & | parent | ) | [inline, protected, inherited] |
Definition at line 150 of file OSGNodeCore.inl.
References osg::NodeCore::_parents, and osg::MField< FieldTypeT, fieldNameSpace >::push_back().
00151 { 00152 _parents.push_back(parent); 00153 }
| void osg::NodeCore::subParent | ( | const NodePtr & | parent | ) | [inline, protected, inherited] |
Definition at line 156 of file OSGNodeCore.inl.
References osg::NodeCore::_parents, osg::MField< FieldTypeT, fieldNameSpace >::end(), osg::MField< FieldTypeT, fieldNameSpace >::erase(), and osg::MField< FieldTypeT, fieldNameSpace >::find().
00157 { 00158 MFNodePtr::iterator parentIt = _parents.find(parent); 00159 00160 if(parentIt != _parents.end()) 00161 { 00162 _parents.erase(parentIt); 00163 } 00164 }
| NodeCorePtr osg::NodeCore::getPtr | ( | void | ) | const [inline, protected, inherited] |
Reimplemented in osg::Geometry.
Definition at line 170 of file OSGNodeCore.inl.
Referenced by add(), osg::NodeCore::dump(), and sub().
| AttachmentContainerPtr AttachmentContainer::getPtr | ( | void | ) | [protected, inherited] |
Definition at line 353 of file OSGAttachmentContainer.cpp.
Referenced by osg::FileGrabForeground::draw(), osg::FBOViewport::render(), osg::AttachmentContainer::subAttachment(), and osg::AttachmentContainer::~AttachmentContainer().
00354 { 00355 return AttachmentContainerPtr(*this); 00356 }
| void osg::NodeCore::adjustVolume | ( | Volume & | volume | ) | [inline, protected, virtual, inherited] |
Reimplemented in osg::Geometry, osg::Slices, osg::Particles, osg::DVRVolume, osg::Surface, osg::Billboard, osg::InverseTransform, osg::ProxyGroup, osg::ScreenGroup, and osg::Transform.
Definition at line 232 of file OSGNodeCore.inl.
Referenced by osg::Billboard::adjustVolume().
| void AttachmentContainer::addAttachment | ( | const AttachmentPtr & | fieldContainerP, | |
| UInt16 | binding = 0 | |||
| ) | [inherited] |
Definition at line 84 of file OSGAttachmentContainer.cpp.
References osg::addRefCP(), osg::beginEditCP(), osg::endEditCP(), osg::NullFC, and osg::subRefCP().
Referenced by osg::AttachmentContainer::AttachmentContainer(), osg::Node::onCreate(), and osg::Image::setAttachmentField().
00086 { 00087 UInt32 key; 00088 00089 if(fieldContainerP == NullFC) 00090 return; 00091 00092 key = (UInt32 (fieldContainerP->getGroupId()) << 16) | binding; 00093 00094 addRefCP(fieldContainerP); 00095 00096 beginEditCP(fieldContainerP, Attachment::ParentsFieldMask); 00097 { 00098 fieldContainerP->addParent(getPtr()); 00099 } 00100 endEditCP (fieldContainerP, Attachment::ParentsFieldMask); 00101 00102 AttachmentMap::iterator fcI = _attachmentMap.getValue().find(key); 00103 00104 if(fcI != _attachmentMap.getValue().end()) 00105 { 00106 beginEditCP((*fcI).second, Attachment::ParentsFieldMask); 00107 { 00108 (*fcI).second->subParent(getPtr()); 00109 } 00110 endEditCP ((*fcI).second, Attachment::ParentsFieldMask); 00111 00112 subRefCP((*fcI).second); 00113 00114 (*fcI).second = fieldContainerP; 00115 } 00116 else 00117 { 00118 _attachmentMap.getValue()[key] = fieldContainerP; 00119 } 00120 }
| void AttachmentContainer::subAttachment | ( | const AttachmentPtr & | fieldContainerP, | |
| UInt16 | binding = 0 | |||
| ) | [inherited] |
Definition at line 122 of file OSGAttachmentContainer.cpp.
References osg::AttachmentContainer::_attachmentMap, osg::beginEditCP(), osg::endEditCP(), osg::AttachmentContainer::getPtr(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::NullFC, osg::Attachment::ParentsFieldMask, and osg::subRefCP().
00124 { 00125 UInt32 key; 00126 00127 AttachmentMap::iterator fcI; 00128 00129 if(fieldContainerP == NullFC) 00130 return; 00131 00132 key = (UInt32(fieldContainerP->getGroupId()) << 16) | binding; 00133 00134 fcI = _attachmentMap.getValue().find(key); 00135 00136 if(fcI != _attachmentMap.getValue().end()) 00137 { 00138 beginEditCP(fieldContainerP, Attachment::ParentsFieldMask); 00139 { 00140 (*fcI).second->subParent(getPtr()); 00141 } 00142 endEditCP (fieldContainerP, Attachment::ParentsFieldMask); 00143 00144 subRefCP((*fcI).second); 00145 00146 _attachmentMap.getValue().erase(fcI); 00147 } 00148 }
| AttachmentPtr AttachmentContainer::findAttachment | ( | UInt32 | groupId, | |
| UInt16 | binding = 0 | |||
| ) | [inherited] |
Definition at line 150 of file OSGAttachmentContainer.cpp.
References osg::AttachmentContainer::_attachmentMap, osg::SField< FieldTypeT, fieldNameSpace >::getValue(), and osg::NullFC.
Referenced by osg::Image::findAttachmentField(), and osg::Image::setAttachmentField().
00152 { 00153 UInt32 key = (UInt32(groupId) << 16) | binding; 00154 00155 AttachmentMap::iterator fcI = _attachmentMap.getValue().find(key); 00156 00157 if(fcI == _attachmentMap.getValue().end()) 00158 { 00159 return NullFC; 00160 } 00161 else 00162 { 00163 return (*fcI).second; 00164 } 00165 }
| AttachmentPtr osg::AttachmentContainer::findAttachment | ( | const FieldContainerType & | type, | |
| UInt16 | binding = 0 | |||
| ) | [inline, inherited] |
Definition at line 57 of file OSGAttachmentContainerImpl.inl.
00060 { 00061 return findAttachment(type.getGroupId(), binding); 00062 }
| SFAttachmentMap * AttachmentContainer::getSFAttachments | ( | void | ) | [inherited] |
Field Access
Definition at line 170 of file OSGAttachmentContainer.cpp.
References osg::AttachmentContainer::_attachmentMap.
00171 { 00172 return &_attachmentMap; 00173 }
| UInt16 osg::FieldContainer::getClassGroupId | ( | void | ) | [inline, static, inherited] |
Definition at line 71 of file OSGFieldContainerImpl.inl.
References osg::FieldContainer::_type, and osg::FieldContainerType::getGroupId().
00072 { 00073 return _type.getGroupId(); 00074 }
| UInt32 osg::FieldContainer::getTypeId | ( | void | ) | const [inline, inherited] |
Definition at line 77 of file OSGFieldContainerImpl.inl.
References osg::TypeBase::getId(), and osg::FieldContainer::getType().
Referenced by osg::TextureChunk::changeFrom(), and osg::CubeTextureChunk::changeFrom().
00078 { 00079 return getType().getId(); 00080 }
| UInt16 osg::FieldContainer::getGroupId | ( | void | ) | const [inline, inherited] |
Definition at line 83 of file OSGFieldContainerImpl.inl.
References osg::FieldContainerType::getGroupId(), and osg::FieldContainer::getType().
Referenced by osg::Image::setAttachmentField().
00084 { 00085 return getType().getGroupId(); 00086 }
| const Char8 * osg::FieldContainer::getTypeName | ( | void | ) | const [inline, inherited] |
Definition at line 89 of file OSGFieldContainerImpl.inl.
References osg::TypeBase::getCName(), and osg::FieldContainer::getType().
00090 { 00091 return getType().getCName(); 00092 }
Generic Field Access
Definition at line 95 of file OSGFieldContainerImpl.inl.
References osg::FieldDescription::getField(), osg::FieldContainerType::getFieldDescription(), and osg::FieldContainer::getType().
Referenced by osg::QFCItem::expand(), osg::VRMLShapeDesc::getFieldAndDesc(), osg::QFieldViewBase::getFieldPtr(), osg::QFieldEditorBase::getFieldPtr(), osg::getParentsField(), and osg::QFCItem::setup().
00096 { 00097 const FieldDescription *desc = getType().getFieldDescription(fieldId); 00098 00099 return desc ? desc->getField(*this) : NULL; 00100 }
Generic Field Access
Definition at line 103 of file OSGFieldContainerImpl.inl.
References osg::FieldContainerType::findFieldDescription(), osg::FieldDescription::getField(), and osg::FieldContainer::getType().
00104 { 00105 const FieldDescription *desc =getType().findFieldDescription(fieldName); 00106 00107 return desc ? desc->getField(*this) : NULL; 00108 }
| void osg::FieldContainer::newPtr | ( | ObjectPtrT & | result, | |
| const typename ObjectPtrT::StoredObjectType * | prototypeP | |||
| ) | [inline, static, protected, inherited] |
Definition at line 138 of file OSGFieldContainerImpl.inl.
References osg::ChangeList::addCreated(), osg::PThreadBase::getAspect(), osg::PThreadBase::getCurrentChangeList(), osg::ThreadManager::getNumAspects(), osg::FieldContainerFactory::registerFieldContainer(), and osg::FieldContainerFactory::the().
Referenced by osg::XWindowBase::createEmpty(), osg::WIN32WindowBase::createEmpty(), osg::ViewportBase::createEmpty(), osg::VertexProgramChunkBase::createEmpty(), osg::TwoSidedLightingChunkBase::createEmpty(), osg::TransformChunkBase::createEmpty(), osg::TransformBase::createEmpty(), osg::TileCameraDecoratorBase::createEmpty(), osg::TextureTransformChunkBase::createEmpty(), osg::TextureGrabForegroundBase::createEmpty(), osg::TextureGrabBackgroundBase::createEmpty(), osg::TextureChunkBase::createEmpty(), osg::TextureBackgroundBase::createEmpty(), osg::TexGenChunkBase::createEmpty(), osg::SwitchMaterialBase::createEmpty(), osg::SwitchBase::createEmpty(), osg::SurfaceBase::createEmpty(), osg::StringAttributeMapBase::createEmpty(), osg::StereoBufferViewportBase::createEmpty(), osg::StencilChunkBase::createEmpty(), osg::StateSortingGroupBase::createEmpty(), osg::StateBase::createEmpty(), osg::SpotLightBase::createEmpty(), osg::SortFirstWindowBase::createEmpty(), osg::SolidBackgroundBase::createEmpty(), osg::SlicesBase::createEmpty(), osg::SkyBackgroundBase::createEmpty(), osg::SimpleTexturedMaterialBase::createEmpty(), osg::SimpleStatisticsForegroundBase::createEmpty(), osg::SimpleMaterialBase::createEmpty(), osg::SHLParameterChunkBase::createEmpty(), osg::SHLChunkBase::createEmpty(), osg::ShearedStereoCameraDecoratorBase::createEmpty(), osg::ShaderParameterVec4fBase::createEmpty(), osg::ShaderParameterVec3fBase::createEmpty(), osg::ShaderParameterVec2fBase::createEmpty(), osg::ShaderParameterStringBase::createEmpty(), osg::ShaderParameterRealBase::createEmpty(), osg::ShaderParameterMVec4fBase::createEmpty(), osg::ShaderParameterMVec3fBase::createEmpty(), osg::ShaderParameterMVec2fBase::createEmpty(), osg::ShaderParameterMRealBase::createEmpty(), osg::ShaderParameterMMatrixBase::createEmpty(), osg::ShaderParameterMIntBase::createEmpty(), osg::ShaderParameterMatrixBase::createEmpty(), osg::ShaderParameterIntBase::createEmpty(), osg::ShaderParameterBoolBase::createEmpty(), osg::ShadeModelChunkBase::createEmpty(), osg::ScreenGroupBase::createEmpty(), osg::SClipPlaneChunkBase::createEmpty(), osg::ResolutionDisplayFilterBase::createEmpty(), osg::RenderOptionsBase::createEmpty(), osg::RegisterCombinersChunkBase::createEmpty(), osg::QTWindowBase::createEmpty(), osg::ProxyGroupBase::createEmpty(), osg::ProjectionCameraDecoratorBase::createEmpty(), osg::PolygonForegroundBase::createEmpty(), osg::PolygonChunkBase::createEmpty(), osg::PolygonBackgroundBase::createEmpty(), osg::PointLightBase::createEmpty(), osg::PointChunkBase::createEmpty(), osg::PhongMaterialBase::createEmpty(), osg::PerspectiveCameraBase::createEmpty(), osg::PassiveWindowBase::createEmpty(), osg::PassiveViewportBase::createEmpty(), osg::PassiveBackgroundBase::createEmpty(), osg::ParticlesBase::createEmpty(), osg::OrthographicCameraBase::createEmpty(), osg::OffsetCameraDecoratorBase::createEmpty(), osg::OffCenterPerspectiveCameraBase::createEmpty(), osg::MultiSwitchBase::createEmpty(), osg::MultiPassMaterialBase::createEmpty(), osg::MultiDisplayWindowBase::createEmpty(), osg::MatrixCameraDecoratorBase::createEmpty(), osg::MatrixCameraBase::createEmpty(), osg::MaterialPoolBase::createEmpty(), osg::MaterialGroupBase::createEmpty(), osg::MaterialChunkBase::createEmpty(), osg::LogicOpChunkBase::createEmpty(), osg::LineChunkBase::createEmpty(), osg::LightModelChunkBase::createEmpty(), osg::LightEnvBase::createEmpty(), osg::LightChunkBase::createEmpty(), osg::InverseTransformBase::createEmpty(), osg::InlineBase::createEmpty(), osg::ImageForegroundBase::createEmpty(), osg::ImageBase::createEmpty(), osg::ImageBackgroundBase::createEmpty(), osg::GroupBase::createEmpty(), osg::GraphicStatisticsForegroundBase::createEmpty(), osg::GradientBackgroundBase::createEmpty(), osg::GrabForegroundBase::createEmpty(), osg::GLUTWindowBase::createEmpty(), osg::GeometryBase::createEmpty(), osg::FresnelMaterialBase::createEmpty(), osg::FragmentProgramChunkBase::createEmpty(), osg::FogChunkBase::createEmpty(), osg::FogBase::createEmpty(), osg::FileGrabForegroundBase::createEmpty(), osg::FCPtrAttributeMapBase::createEmpty(), osg::FBOViewportBase::createEmpty(), osg::FatBorderChunkBase::createEmpty(), osg::DVRVolumeTextureBase::createEmpty(), osg::DVRVolumeBase::createEmpty(), osg::DVRSimpleShaderBase::createEmpty(), osg::DVRSimpleLUTShaderBase::createEmpty(), osg::DVRMtexLUTShaderBase::createEmpty(), osg::DVRLookupTableBase::createEmpty(), osg::DVRIsoSurfaceBase::createEmpty(), osg::DVRIsoShaderBase::createEmpty(), osg::DVRGeometryBase::createEmpty(), osg::DVRClipObjectsBase::createEmpty(), osg::DVRClipGeometryBase::createEmpty(), osg::DVRAppearanceBase::createEmpty(), osg::DistortionDisplayFilterBase::createEmpty(), osg::DistanceLODBase::createEmpty(), osg::DisplayFilterForegroundBase::createEmpty(), osg::DisplayCalibrationBase::createEmpty(), osg::DirectionalLightBase::createEmpty(), osg::DepthClearBackgroundBase::createEmpty(), osg::DepthChunkBase::createEmpty(), osg::CubeTextureChunkBase::createEmpty(), osg::ComponentTransformBase::createEmpty(), osg::ColorMaskChunkBase::createEmpty(), osg::ColorDisplayFilterBase::createEmpty(), osg::ColorBufferViewportBase::createEmpty(), osg::ClusterWindowBase::createEmpty(), osg::ClipPlaneChunkBase::createEmpty(), osg::ClipPlaneBase::createEmpty(), osg::ChunkMaterialBase::createEmpty(), osg::BlendChunkBase::createEmpty(), osg::BillboardBase::createEmpty(), osg::XWindowBase::shallowCopy(), osg::WIN32WindowBase::shallowCopy(), osg::ViewportBase::shallowCopy(), osg::VertexProgramChunkBase::shallowCopy(), osg::TwoSidedLightingChunkBase::shallowCopy(), osg::TransformChunkBase::shallowCopy(), osg::TransformBase::shallowCopy(), osg::TileCameraDecoratorBase::shallowCopy(), osg::TextureTransformChunkBase::shallowCopy(), osg::TextureGrabForegroundBase::shallowCopy(), osg::TextureGrabBackgroundBase::shallowCopy(), osg::TextureChunkBase::shallowCopy(), osg::TextureBackgroundBase::shallowCopy(), osg::TexGenChunkBase::shallowCopy(), osg::SwitchMaterialBase::shallowCopy(), osg::SwitchBase::shallowCopy(), osg::SurfaceBase::shallowCopy(), osg::StringAttributeMapBase::shallowCopy(), osg::StereoBufferViewportBase::shallowCopy(), osg::StencilChunkBase::shallowCopy(), osg::StateSortingGroupBase::shallowCopy(), osg::StateBase::shallowCopy(), osg::SpotLightBase::shallowCopy(), osg::SortFirstWindowBase::shallowCopy(), osg::SolidBackgroundBase::shallowCopy(), osg::SlicesBase::shallowCopy(), osg::SkyBackgroundBase::shallowCopy(), osg::SimpleTexturedMaterialBase::shallowCopy(), osg::SimpleStatisticsForegroundBase::shallowCopy(), osg::SimpleMaterialBase::shallowCopy(), osg::SHLParameterChunkBase::shallowCopy(), osg::SHLChunkBase::shallowCopy(), osg::ShearedStereoCameraDecoratorBase::shallowCopy(), osg::ShaderParameterVec4fBase::shallowCopy(), osg::ShaderParameterVec3fBase::shallowCopy(), osg::ShaderParameterVec2fBase::shallowCopy(), osg::ShaderParameterStringBase::shallowCopy(), osg::ShaderParameterRealBase::shallowCopy(), osg::ShaderParameterMVec4fBase::shallowCopy(), osg::ShaderParameterMVec3fBase::shallowCopy(), osg::ShaderParameterMVec2fBase::shallowCopy(), osg::ShaderParameterMRealBase::shallowCopy(), osg::ShaderParameterMMatrixBase::shallowCopy(), osg::ShaderParameterMIntBase::shallowCopy(), osg::ShaderParameterMatrixBase::shallowCopy(), osg::ShaderParameterIntBase::shallowCopy(), osg::ShaderParameterBoolBase::shallowCopy(), osg::ShadeModelChunkBase::shallowCopy(), osg::ScreenGroupBase::shallowCopy(), osg::SClipPlaneChunkBase::shallowCopy(), osg::ResolutionDisplayFilterBase::shallowCopy(), osg::RenderOptionsBase::shallowCopy(), osg::RegisterCombinersChunkBase::shallowCopy(), osg::QTWindowBase::shallowCopy(), osg::ProxyGroupBase::shallowCopy(), osg::ProjectionCameraDecoratorBase::shallowCopy(), osg::PolygonForegroundBase::shallowCopy(), osg::PolygonChunkBase::shallowCopy(), osg::PolygonBackgroundBase::shallowCopy(), osg::PointLightBase::shallowCopy(), osg::PointChunkBase::shallowCopy(), osg::PhongMaterialBase::shallowCopy(), osg::PerspectiveCameraBase::shallowCopy(), osg::PassiveWindowBase::shallowCopy(), osg::PassiveViewportBase::shallowCopy(), osg::PassiveBackgroundBase::shallowCopy(), osg::ParticlesBase::shallowCopy(), osg::OrthographicCameraBase::shallowCopy(), osg::OffsetCameraDecoratorBase::shallowCopy(), osg::OffCenterPerspectiveCameraBase::shallowCopy(), osg::MultiSwitchBase::shallowCopy(), osg::MultiPassMaterialBase::shallowCopy(), osg::MultiDisplayWindowBase::shallowCopy(), osg::MatrixCameraDecoratorBase::shallowCopy(), osg::MatrixCameraBase::shallowCopy(), osg::MaterialPoolBase::shallowCopy(), osg::MaterialGroupBase::shallowCopy(), osg::MaterialChunkBase::shallowCopy(), osg::LogicOpChunkBase::shallowCopy(), osg::LineChunkBase::shallowCopy(), osg::LightModelChunkBase::shallowCopy(), osg::LightEnvBase::shallowCopy(), osg::LightChunkBase::shallowCopy(), osg::InverseTransformBase::shallowCopy(), osg::InlineBase::shallowCopy(), osg::ImageForegroundBase::shallowCopy(), osg::ImageBase::shallowCopy(), osg::ImageBackgroundBase::shallowCopy(), osg::GroupBase::shallowCopy(), osg::GraphicStatisticsForegroundBase::shallowCopy(), osg::GradientBackgroundBase::shallowCopy(), osg::GrabForegroundBase::shallowCopy(), osg::GLUTWindowBase::shallowCopy(), osg::GeometryBase::shallowCopy(), osg::FresnelMaterialBase::shallowCopy(), osg::FragmentProgramChunkBase::shallowCopy(), osg::FogChunkBase::shallowCopy(), osg::FogBase::shallowCopy(), osg::FileGrabForegroundBase::shallowCopy(), osg::FCPtrAttributeMapBase::shallowCopy(), osg::FBOViewportBase::shallowCopy(), osg::FatBorderChunkBase::shallowCopy(), osg::DVRVolumeTextureBase::shallowCopy(), osg::DVRVolumeBase::shallowCopy(), osg::DVRSimpleShaderBase::shallowCopy(), osg::DVRSimpleLUTShaderBase::shallowCopy(), osg::DVRMtexLUTShaderBase::shallowCopy(), osg::DVRLookupTableBase::shallowCopy(), osg::DVRIsoSurfaceBase::shallowCopy(), osg::DVRIsoShaderBase::shallowCopy(), osg::DVRGeometryBase::shallowCopy(), osg::DVRClipObjectsBase::shallowCopy(), osg::DVRClipGeometryBase::shallowCopy(), osg::DVRAppearanceBase::shallowCopy(), osg::DistortionDisplayFilterBase::shallowCopy(), osg::DistanceLODBase::shallowCopy(), osg::DisplayFilterForegroundBase::shallowCopy(), osg::DisplayCalibrationBase::shallowCopy(), osg::DirectionalLightBase::shallowCopy(), osg::DepthClearBackgroundBase::shallowCopy(), osg::DepthChunkBase::shallowCopy(), osg::CubeTextureChunkBase::shallowCopy(), osg::ComponentTransformBase::shallowCopy(), osg::ColorMaskChunkBase::shallowCopy(), osg::ColorDisplayFilterBase::shallowCopy(), osg::ColorBufferViewportBase::shallowCopy(), osg::ClusterWindowBase::shallowCopy(), osg::ClipPlaneChunkBase::shallowCopy(), osg::ClipPlaneBase::shallowCopy(), osg::ChunkMaterialBase::shallowCopy(), osg::BlendChunkBase::shallowCopy(), and osg::BillboardBase::shallowCopy().
00141 { 00142 typedef typename ObjectPtrT::StoredObjectType ObjectType; 00143 00144 UInt8 *pTmp; 00145 00146 result._containerSize = sizeof(ObjectType); 00147 00148 pTmp = 00149 static_cast<UInt8 *>(operator new( 00150 sizeof(Int32) + // ReferenceCount 00151 sizeof(UInt32) + // ContainerId 00152 sizeof(ObjectType) * ThreadManager::getNumAspects())); 00153 00154 *(reinterpret_cast<Int32 *>(pTmp)) = 0; 00155 00156 pTmp += sizeof(Int32); 00157 00158 result._storeP = (pTmp + sizeof(UInt32)); 00159 00160 #ifdef OSG_DEBUG_FCPTR 00161 result._typedStoreP = reinterpret_cast<FieldContainer *>(result._storeP); 00162 #endif 00163 00164 *(reinterpret_cast<UInt32 *>(pTmp)) = 00165 FieldContainerFactory::the()->registerFieldContainer(result); 00166 00167 #ifdef OSG_INVALID_PTR_CHECK 00168 result._id = *(reinterpret_cast<UInt32 *>(pTmp)); 00169 #endif 00170 00171 Thread::getCurrentChangeList()->addCreated( 00172 *(reinterpret_cast<UInt32 *>(pTmp))); 00173 00174 pTmp += sizeof(UInt32); 00175 00176 ObjectType *aObject = reinterpret_cast<ObjectType *>(pTmp); 00177 00178 for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++) 00179 { 00180 pTmp = 00181 reinterpret_cast<UInt8 *>(new (pTmp) ObjectType(*prototypeP)); 00182 00183 pTmp += sizeof(ObjectType); 00184 } 00185 00186 result->onCreate(prototypeP); 00187 00188 for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++) 00189 { 00190 aObject[i].onCreateAspect(aObject, prototypeP); 00191 } 00192 00193 #if defined(OSG_GV_BETA) && defined(OSG_DBG_MEM) 00194 00195 fprintf(stderr, "GV_MEM_FC_DBG : (%u) cc (%p|%u)\n", 00196 Thread::getAspect(), 00197 result._storeP, 00198 // ObjectType::getClassType().getCName(), 00199 ObjectType::getClassType().getId()); 00200 #endif 00201 00202 #ifdef OSG_DEBUG_TYPED_FCPTR 00203 result.updateTypedStore(); 00204 #endif 00205 }
| void osg::FieldContainer::newPtr | ( | ObjectPtrT & | result | ) | [inline, static, protected, inherited] |
Definition at line 208 of file OSGFieldContainerImpl.inl.
References osg::ChangeList::addCreated(), osg::PThreadBase::getAspect(), osg::PThreadBase::getCurrentChangeList(), osg::ThreadManager::getNumAspects(), osg::FieldContainerFactory::registerFieldContainer(), and osg::FieldContainerFactory::the().
00209 { 00210 typedef typename ObjectPtrT::StoredObjectType ObjectType; 00211 00212 UInt8 *pTmp; 00213 00214 result._containerSize = sizeof(ObjectType); 00215 00216 pTmp = 00217 static_cast<UInt8 *>(operator new( 00218 sizeof(Int32) + // ReferenceCount 00219 sizeof(UInt32) + // ContainerId 00220 sizeof(ObjectType) * ThreadManager::getNumAspects())); 00221 00222 *(reinterpret_cast<Int32 *>(pTmp)) = 0; 00223 00224 pTmp += sizeof(Int32); 00225 00226 result._storeP = (pTmp + sizeof(UInt32)); 00227 00228 #ifdef OSG_DEBUG_FCPTR 00229 result._typedStoreP = reinterpret_cast<FieldContainer *>(result._storeP); 00230 #endif 00231 00232 *(reinterpret_cast<UInt32 *>(pTmp)) = 00233 FieldContainerFactory::the()->registerFieldContainer(result); 00234 00235 #ifdef OSG_INVALID_PTR_CHECK 00236 result._id = *(reinterpret_cast<UInt32 *>(pTmp)); 00237 #endif 00238 00239 Thread::getCurrentChangeList()->addCreated( 00240 *(reinterpret_cast<UInt32 *>(pTmp))); 00241 00242 pTmp += sizeof(UInt32); 00243 00244 ObjectType *aObject = reinterpret_cast<ObjectType *>(pTmp); 00245 00246 for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++) 00247 { 00248 pTmp = reinterpret_cast<UInt8 *>(new (pTmp) ObjectType()); 00249 00250 pTmp += sizeof(ObjectType); 00251 } 00252 00253 result->onCreate(); 00254 00255 for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++) 00256 { 00257 aObject[i].onCreateAspect(aObject); 00258 } 00259 00260 #if defined(OSG_GV_BETA) && defined(OSG_DBG_MEM) 00261 fprintf(stderr, "GV_MEM_FC_DBG : (%u) c (%p|%u)\n", 00262 Thread::getAspect(), 00263 result._storeP, 00264 // ObjectType::getClassType().getCName(), 00265 ObjectType::getClassType().getId()); 00266 #endif 00267 00268 #ifdef OSG_DEBUG_TYPED_FCPTR 00269 result.updateTypedStore(); 00270 #endif 00271 }
| void osg::FieldContainer::beginEditX | ( | const BitVector & | whichField, | |
| FieldTypeT & | field | |||
| ) | [inline, protected, inherited] |
Definition at line 293 of file OSGFieldContainerImpl.inl.
| void osg::FieldContainer::endEditX | ( | const BitVector & | whichField, | |
| FieldTypeT & | field | |||
| ) | [inline, protected, inherited] |
Definition at line 299 of file OSGFieldContainerImpl.inl.
References osg::endEditCP().
00300 { 00301 FieldContainerPtr tmpPtr(this); 00302 endEditCP(tmpPtr, whichField); 00303 }
| void osg::FieldContainer::onCreate | ( | const FieldContainer * | source = NULL |
) | [inline, protected, inherited] |
Reimplemented in osg::Node, osg::Geometry, osg::FatBorderChunk, osg::Surface, osg::CubeTextureChunk, osg::FragmentProgramChunk, osg::ProgramChunk, osg::TextureChunk, osg::VertexProgramChunk, osg::FBOViewport, osg::SkyBackground, osg::Window, osg::ShaderParameterChunk, and osg::SHLChunk.
Definition at line 326 of file OSGFieldContainerImpl.inl.
Referenced by osg::SkyBackground::onCreate(), and osg::ShaderParameterChunk::onCreate().
| void osg::FieldContainer::onCreateAspect | ( | const FieldContainer * | aspect0, | |
| const FieldContainer * | source = NULL | |||
| ) | [inline, protected, inherited] |
Reimplemented in osg::Window.
Definition at line 331 of file OSGFieldContainerImpl.inl.
friend class FieldContainer [friend] |
Reimplemented from osg::MaterialPoolBase.
Definition at line 128 of file OSGMaterialPool.h.
friend class MaterialPoolBase [friend] |
Definition at line 129 of file OSGMaterialPool.h.
std::set<MaterialPtr> osg::MaterialPool::_mats [private] |
const osg::BitVector osg::MaterialPoolBase::MaterialsFieldMask [static, inherited] |
(TypeTraits<BitVector>::One << MaterialPoolBase::MaterialsFieldId)
Definition at line 98 of file OSGMaterialPoolBase.h.
Referenced by changed(), osg::MaterialPoolBase::copyFromBin(), osg::MaterialPoolBase::copyToBin(), osg::MaterialPoolBase::executeSyncImpl(), and osg::MaterialPoolBase::getBinSize().
const osg::BitVector osg::MaterialPoolBase::MTInfluenceMask [static, inherited] |
(Inherited::MTInfluenceMask) |
(static_cast<BitVector>(0x0) << Inherited::NextFieldId)
Reimplemented from osg::GroupBase.
Definition at line 101 of file OSGMaterialPoolBase.h.
MaterialPtr osg::MaterialPoolBase::_mfMaterials [protected, inherited] |
Definition at line 161 of file OSGMaterialPoolBase.h.
Referenced by add(), changed(), clear(), osg::MaterialPoolBase::copyFromBin(), osg::MaterialPoolBase::copyToBin(), osg::MaterialPoolBase::editMaterials(), osg::MaterialPoolBase::editMFMaterials(), osg::MaterialPoolBase::executeSyncImpl(), find(), get(), osg::MaterialPoolBase::getBinSize(), getCount(), osg::MaterialPoolBase::getMaterials(), osg::MaterialPoolBase::getMFMaterials(), onDestroy(), sub(), and sync().
const BitVector NodeCore::ParentsFieldMask = (1 << NodeCore::ParentsFieldId ) [static, inherited] |
Definition at line 99 of file OSGNodeCore.h.
Referenced by osg::NodeCore::copyFromBin(), osg::NodeCore::copyToBin(), osg::NodeCore::executeSyncImpl(), osg::NodeCore::getBinSize(), and osg::Node::~Node().
const bool osg::NodeCore::isNodeCore = true [static, inherited] |
Reimplemented from osg::FieldContainer.
Definition at line 156 of file OSGNodeCore.h.
MFNodePtr osg::NodeCore::_parents [protected, inherited] |
Definition at line 175 of file OSGNodeCore.h.
Referenced by osg::NodeCore::addParent(), osg::ProxyGroup::changed(), osg::Particles::changed(), osg::Geometry::changed(), osg::NodeCore::copyFromBin(), osg::NodeCore::copyToBin(), osg::NodeCore::dump(), osg::Geometry::dump(), osg::NodeCore::executeSyncImpl(), osg::NodeCore::getBinSize(), osg::NodeCore::getMFParents(), osg::NodeCore::getParents(), osg::NodeCore::invalidateVolume(), and osg::NodeCore::subParent().
const BitVector AttachmentContainer::AttachmentsFieldMask [static, inherited] |
(TypeTraits<BitVector>::One <<
AttachmentContainer::AttachmentsFieldId)
Definition at line 84 of file OSGAttachmentContainerImpl.h.
Referenced by osg::VRMLFile::beginNode(), osg::AttachmentContainer::changed(), osg::AttachmentContainer::copyFromBin(), osg::AttachmentContainer::copyToBin(), osg::deepCloneAttachments(), osg::VRMLAppearanceDesc::endNode(), osg::AttachmentContainer::executeSyncImpl(), and osg::AttachmentContainer::getBinSize().
SFAttachmentMap osg::AttachmentContainer::_attachmentMap [protected, inherited] |
Definition at line 161 of file OSGAttachmentContainerImpl.h.
Referenced by osg::AttachmentContainer::AttachmentContainer(), osg::AttachmentContainer::changed(), osg::AttachmentContainer::copyFromBin(), osg::AttachmentContainer::copyToBin(), osg::NodeCore::dump(), osg::Node::dump(), osg::Geometry::dump(), osg::AttachmentContainer::dump(), osg::AttachmentContainer::executeSyncImpl(), osg::AttachmentContainer::findAttachment(), osg::AttachmentContainer::getBinSize(), osg::AttachmentContainer::getSFAttachments(), osg::Node::onCreate(), osg::AttachmentContainer::subAttachment(), and osg::AttachmentContainer::~AttachmentContainer().
const BitVector osg::FieldContainer::NextFieldMask [static, inherited] |
(TypeTraits<BitVector>::One << NextFieldId)
Definition at line 75 of file OSGFieldContainerImpl.h.
UInt32 osg::FieldContainer::_shares [protected, inherited] |
Definition at line 199 of file OSGFieldContainerImpl.h.
1.6.1