#include <OSGNodeImpl.h>

General Fieldcontainer Declaration | |
| virtual osg::FieldContainerType & | getType (void) |
| virtual const osg::FieldContainerType & | getType (void) const |
| virtual osg::FieldContainerPtr | shallowCopy (void) const |
| virtual osg::UInt32 | getContainerSize (void) const |
| static osg::FieldContainerType & | getClassType (void) |
| static osg::UInt32 | getClassTypeId (void) |
| static NodePtr | create (void) |
| static NodePtr | createEmpty (void) |
Public Types | |
| enum | { VolumeFieldId = Inherited::NextFieldId, TravMaskFieldId = VolumeFieldId + 1, ParentFieldId = TravMaskFieldId + 1, ChildrenFieldId = ParentFieldId + 1, CoreFieldId = ChildrenFieldId + 1, NextFieldId = CoreFieldId + 1 } |
| typedef NodePtr | Ptr |
| enum | { AttachmentsFieldId = Inherited::NextFieldId, NextFieldId = AttachmentsFieldId + 1 } |
| enum | { NextFieldId = 1 } |
Public Member Functions | |
Core | |
| NodeCorePtr | getCore (void) |
| NodeCorePtr | getCore (void) const |
| void | setCore (const NodeCorePtr &core) |
Parent | |
| NodePtr | getParent (void) |
Children | |
| UInt32 | getNChildren (void) const |
| void | addChild (const NodePtr &childP) |
| void | insertChild (UInt32 childIndex, const NodePtr &childP) |
| void | replaceChild (UInt32 childIndex, const NodePtr &childP) |
| bool | replaceChildBy (const NodePtr &childP, const NodePtr &newChildP) |
| return true on success, false on child not found | |
| Int32 | findChild (const NodePtr &childP) const |
| void | subChild (const NodePtr &childP) |
| void | subChild (UInt32 childIndex) |
| NodePtr | getChild (UInt32 childIndex) |
Active / TravMask | |
| bool | getActive (void) const |
| void | setActive (bool val) |
| void | setTravMask (UInt32 val) |
| UInt32 | getTravMask (void) const |
| void | setOcclusionMask (UInt8 val) |
| UInt8 | getOcclusionMask (void) const |
Children | |
| NodePtr | clone (void) |
Access Fields | |
| SFDynamicVolume * | getSFVolume (void) |
| SFUInt32 * | getSFTravMask (void) |
| SFNodePtr * | getSFParent (void) |
| SFNodeCorePtr * | getSFCore (void) |
| MFNodePtr * | getMFChildren (void) |
Transformation | |
| Matrix | getToWorld (void) |
| void | getToWorld (Matrix &result) |
Volume | |
| DynamicVolume & | getVolume (bool update) |
| const DynamicVolume & | getVolume (void) const |
| void | getWorldVolume (DynamicVolume &result) |
| void | updateVolume (void) |
| void | invalidateVolume (void) |
Changed | |
| virtual void | changed (BitVector whichField, UInt32 origin) |
Binary Access | |
| virtual UInt32 | getBinSize (const BitVector &whichField) |
| virtual void | copyToBin (BinaryDataHandler &pMem, const BitVector &whichField) |
| virtual void | copyFromBin (BinaryDataHandler &pMem, const BitVector &whichField) |
Dump | |
| virtual void | dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const |
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 | |
Get Class Type Information | |
| static UInt16 | getClassGroupId (void) |
Static Public Attributes | |
| static const BitVector | VolumeFieldMask |
| static const BitVector | TravMaskFieldMask |
| static const BitVector | ParentFieldMask |
| static const BitVector | ChildrenFieldMask |
| static const BitVector | CoreFieldMask |
| static const BitVector | AttachmentsFieldMask |
| static const BitVector | NextFieldMask |
| static const BitVector | MTInfluenceMask = 0x00 |
CoredNodePtr helper | |
| static const bool | isNodeCore = false |
Protected Types | |
| typedef AttachmentContainer | Inherited |
Protected Member Functions | |
Constructors | |
| Node (void) | |
| Node (const Node &source) | |
Destructor | |
| virtual | ~Node (void) |
MT Construction | |
| void | setParent (const NodePtr &parent) |
| void | onCreate (const Node *source=NULL) |
Sync | |
| virtual void | executeSync (FieldContainer &other, const BitVector &whichField) |
| void | executeSyncImpl (Node *pOther, const BitVector &whichField) |
Pointer | |
| NodePtr | getPtr (void) const |
Sync | |
| void | executeSyncImpl (AttachmentContainer *pOther, const BitVector &whichField) |
Sync | |
| void | executeSyncImpl (FieldContainer *pOther, const BitVector &whichField) |
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) |
MT Destruction | |
| virtual void | onDestroy (void) |
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 | |
| SFDynamicVolume | _sfVolume |
| SFUInt32 | _sfTravMask |
| SFNodePtr | _sfParent |
| MFNodePtr | _mfChildren |
| SFNodeCorePtr | _sfCore |
| UInt8 | _occlusionMask |
Fields | |
| SFAttachmentMap | _attachmentMap |
Member | |
| UInt32 | _shares |
Static Protected Attributes | |
Type information | |
| static FieldDescription * | _desc [] |
| static FieldContainerType | _type |
| static const NodePtr | NullNode |
Private Member Functions | |
| void | operator= (const Node &source) |
Friends | |
| class | FieldContainer |
| class | FieldContainerType |
Definition at line 75 of file OSGNodeImpl.h.
typedef AttachmentContainer osg::Node::Inherited [protected] |
| typedef NodePtr osg::Node::Ptr |
Definition at line 103 of file OSGNodeImpl.h.
| anonymous enum |
Definition at line 87 of file OSGNodeImpl.h.
00088 { 00089 VolumeFieldId = Inherited::NextFieldId, 00090 TravMaskFieldId = VolumeFieldId + 1, 00091 ParentFieldId = TravMaskFieldId + 1, 00092 ChildrenFieldId = ParentFieldId + 1, 00093 CoreFieldId = ChildrenFieldId + 1, 00094 NextFieldId = CoreFieldId + 1 00095 };
anonymous enum [inherited] |
Definition at line 78 of file OSGAttachmentContainerImpl.h.
00079 { 00080 AttachmentsFieldId = Inherited::NextFieldId, 00081 NextFieldId = AttachmentsFieldId + 1 00082 };
anonymous enum [inherited] |
| Node::Node | ( | void | ) | [protected] |
Definition at line 625 of file OSGNode.cpp.
00625 : 00626 Inherited (), 00627 _sfVolume (), 00628 _sfTravMask (TypeTraits<UInt32>::getMax()), 00629 _sfParent (), 00630 _mfChildren (), 00631 _sfCore (), 00632 _occlusionMask(0) 00633 { 00634 }
| Node::Node | ( | const Node & | source | ) | [protected] |
Definition at line 636 of file OSGNode.cpp.
00636 : 00637 Inherited (source), 00638 _sfVolume (source._sfVolume), 00639 _sfTravMask (source._sfTravMask), 00640 _sfParent (), 00641 _mfChildren (), 00642 _sfCore (), 00643 _occlusionMask (source._occlusionMask) 00644 { 00645 }
| Node::~Node | ( | void | ) | [protected, virtual] |
Definition at line 650 of file OSGNode.cpp.
References _mfChildren, _sfCore, osg::MField< FieldTypeT, fieldNameSpace >::begin(), osg::beginEditCP(), osg::MField< FieldTypeT, fieldNameSpace >::end(), osg::endEditCP(), getPtr(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::NullFC, NullNode, ParentFieldMask, osg::NodeCore::ParentsFieldMask, and osg::subRefCP().
00651 { 00652 if(_sfCore.getValue() != NullFC) 00653 { 00654 NodePtr thisP = getPtr(); 00655 00656 beginEditCP(_sfCore.getValue(), NodeCore::ParentsFieldMask); 00657 { 00658 _sfCore.getValue()->subParent(thisP); 00659 } 00660 endEditCP (_sfCore.getValue(), NodeCore::ParentsFieldMask); 00661 00662 subRefCP(_sfCore.getValue()); 00663 } 00664 00665 MFNodePtr::iterator vChildIt = _mfChildren.begin(); 00666 MFNodePtr::const_iterator endChildren = _mfChildren.end (); 00667 00668 while(vChildIt != endChildren) 00669 { 00670 beginEditCP(*vChildIt, Node::ParentFieldMask); 00671 { 00672 (*vChildIt)->setParent(NullNode); 00673 } 00674 endEditCP (*vChildIt, Node::ParentFieldMask); 00675 00676 subRefCP(*vChildIt); 00677 00678 ++vChildIt; 00679 } 00680 }
| osg::FieldContainerType & Node::getType | ( | void | ) | [virtual] |
| const osg::FieldContainerType & Node::getType | ( | void | ) | const [virtual] |
| static osg ::FieldContainerType& osg::Node::getClassType | ( | void | ) | [static] |
Reimplemented from osg::AttachmentContainer.
Referenced by osg::BINWriter::doIndexFC(), and osg::FieldContainerType::initBaseType().
| static osg ::UInt32 osg::Node::getClassTypeId | ( | void | ) | [static] |
Reimplemented from osg::AttachmentContainer.
| static NodePtr osg::Node::create | ( | void | ) | [static] |
Referenced by osg::VRMLFile::beginNode(), osg::OSGLoader::beginNode(), osg::calcFaceNormalsGeo(), osg::cloneTree(), osg::DisplayCalibration::createCMViewports(), osg::deepCloneTree(), osg::DisplayFilterForeground::DisplayFilterGroup::DisplayFilterGroup(), osg::SimpleSceneManager::highlightChanged(), osg::VRMLViewpointDesc::init(), osg::VRMLInlineDesc::init(), osg::VRMLExtrusionDesc::init(), osg::VRMLGroupDesc::init(), osg::VRMLSwitchDesc::init(), osg::VRMLLODDesc::init(), osg::VRMLGeometryObjectDesc::init(), osg::VRMLGeometryPointSetDesc::init(), osg::VRMLGeometryDesc::init(), osg::VRMLShapeDesc::init(), osg::VRMLNodeDesc::init(), osg::SimpleSceneManager::initialize(), osg::makeBox(), osg::makeConicalFrustum(), osg::makeExtrusion(), osg::makeLatLongSphere(), osg::TextVectorFace::makeNode(), osg::TextTXFFace::makeNode(), osg::makeNodeFor(), osg::makePlane(), osg::makeSphere(), osg::makeTorus(), osg::MergeGraphOp::processGeometries(), osg::RAWSceneFileType::read(), osg::OFFSceneFileType::read(), osg::OBJSceneFileType::read(), osg::SceneFileHandler::readTopNodes(), osg::OSGLoader::setFieldContainerValue(), osg::SplitGraphOp::splitNode(), and osg::CoredNodePtr< Core >::updateNode().
| static NodePtr osg::Node::createEmpty | ( | void | ) | [static] |
| osg::FieldContainerPtr Node::shallowCopy | ( | void | ) | const [virtual] |
| osg::UInt32 Node::getContainerSize | ( | void | ) | const [virtual] |
| NodeCorePtr osg::Node::getCore | ( | void | ) | [inline] |
Definition at line 106 of file OSGNodePtrDepImpl.inl.
References _sfCore, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
Referenced by getToWorld(), onCreate(), updateVolume(), osg::VRMLWriteAction::writeComponentTransformEnter(), osg::VRMLWriteAction::writeMatGroupEnter(), and osg::VRMLWriteAction::writeTransformEnter().
00107 { 00108 return _sfCore.getValue(); 00109 }
| NodeCorePtr osg::Node::getCore | ( | void | ) | const [inline] |
Definition at line 112 of file OSGNodePtrDepImpl.inl.
References _sfCore, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
00113 { 00114 return _sfCore.getValue(); 00115 }
| void Node::setCore | ( | const NodeCorePtr & | core | ) |
Definition at line 125 of file OSGNode.cpp.
References osg::addRefCP(), osg::beginEditCP(), osg::endEditCP(), osg::NullFC, osg::FieldContainerPtrBase::setParentFieldPos(), and osg::subRefCP().
Referenced by onCreate().
00126 { 00127 NodePtr thisP = getPtr(); 00128 00129 thisP.setParentFieldPos(CoreFieldId); 00130 00131 addRefCP(core); 00132 00133 if(_sfCore.getValue() != NullFC) 00134 { 00135 beginEditCP(_sfCore.getValue(), NodeCore::ParentsFieldMask); 00136 { 00137 _sfCore.getValue()->subParent(thisP); 00138 } 00139 endEditCP (_sfCore.getValue(), NodeCore::ParentsFieldMask); 00140 00141 subRefCP(_sfCore.getValue()); 00142 } 00143 00144 _sfCore.setValue(core); 00145 00146 if(_sfCore.getValue() != NullFC) 00147 { 00148 beginEditCP(_sfCore.getValue(), NodeCore::ParentsFieldMask); 00149 { 00150 _sfCore.getValue()->addParent(thisP); 00151 } 00152 endEditCP (_sfCore.getValue(), NodeCore::ParentsFieldMask); 00153 } 00154 00155 // TODO Check if required (GV) 00156 invalidateVolume(); 00157 }
| NodePtr osg::Node::getParent | ( | void | ) | [inline] |
Definition at line 72 of file OSGNodeImpl.inl.
References _sfParent, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
Referenced by changed(), getToWorld(), getWorldVolume(), and invalidateVolume().
00073 { 00074 return _sfParent.getValue(); 00075 }
| UInt32 osg::Node::getNChildren | ( | void | ) | const [inline] |
Definition at line 78 of file OSGNodeImpl.inl.
References _mfChildren, and osg::MField< FieldTypeT, fieldNameSpace >::size().
00079 { 00080 return _mfChildren.size(); 00081 }
| void Node::addChild | ( | const NodePtr & | childP | ) |
Definition at line 162 of file OSGNode.cpp.
References _mfChildren, osg::addRefCP(), osg::beginEditCP(), ChildrenFieldMask, osg::endEditCP(), getPtr(), invalidateVolume(), osg::NullFC, ParentFieldMask, and osg::MField< FieldTypeT, fieldNameSpace >::push_back().
00163 { 00164 if(childP != NullFC) 00165 { 00166 // do the ref early, to prevent destroys on getParent(a)->addChild(a) 00167 addRefCP(childP); 00168 00169 // already somebody else's child? 00170 NodePtr parent = childP->getParent(); 00171 if(parent != NullFC) 00172 { 00173 beginEditCP(parent, Node::ChildrenFieldMask); 00174 parent->subChild(childP); 00175 endEditCP (parent, Node::ChildrenFieldMask); 00176 } 00177 00178 _mfChildren.push_back(childP); 00179 00180 beginEditCP(childP, Node::ParentFieldMask); 00181 { 00182 childP->setParent(getPtr()); 00183 } 00184 endEditCP (childP, Node::ParentFieldMask); 00185 00186 // TODO Check if required (GV) 00187 #ifndef OSG_GV_BETA 00188 invalidateVolume(); 00189 #endif 00190 } 00191 }
Definition at line 193 of file OSGNode.cpp.
References _mfChildren, osg::addRefCP(), osg::MField< FieldTypeT, fieldNameSpace >::begin(), osg::beginEditCP(), ChildrenFieldMask, osg::endEditCP(), getPtr(), osg::MField< FieldTypeT, fieldNameSpace >::insert(), invalidateVolume(), osg::NullFC, and ParentFieldMask.
00194 { 00195 MFNodePtr::iterator childIt = _mfChildren.begin(); 00196 00197 if(childP != NullFC) 00198 { 00199 // do the ref early, to prevent destroys on getParent(a)->addChild(a) 00200 addRefCP(childP); 00201 00202 // already somebody else's child? 00203 NodePtr parent = childP->getParent(); 00204 if(parent != NullFC) 00205 { 00206 beginEditCP(parent, Node::ChildrenFieldMask); 00207 parent->subChild(childP); 00208 endEditCP (parent, Node::ChildrenFieldMask); 00209 } 00210 00211 childIt += childIndex; 00212 00213 _mfChildren.insert(childIt, childP); 00214 00215 beginEditCP(childP, Node::ParentFieldMask); 00216 { 00217 childP->setParent(getPtr()); 00218 } 00219 endEditCP (childP, Node::ParentFieldMask); 00220 } 00221 00222 // TODO check if required (GV) 00223 #ifndef OSG_GV_BETA 00224 invalidateVolume(); 00225 #endif 00226 }
Definition at line 228 of file OSGNode.cpp.
References _mfChildren, osg::addRefCP(), osg::beginEditCP(), ChildrenFieldMask, osg::endEditCP(), getPtr(), invalidateVolume(), osg::NullFC, NullNode, ParentFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::size(), and osg::subRefCP().
00229 { 00230 if(childP != NullFC && childIndex < _mfChildren.size()) 00231 { 00232 // do the ref early, to prevent destroys on getParent(a)->addChild(a) 00233 addRefCP(childP); 00234 // already somebody else's child? 00235 // moved it up could be a child of childIndex. 00236 NodePtr parent = childP->getParent(); 00237 if(parent != NullFC) 00238 { 00239 beginEditCP(parent, Node::ChildrenFieldMask); 00240 parent->subChild(childP); 00241 endEditCP (parent, Node::ChildrenFieldMask); 00242 } 00243 00244 // remove the current child 00245 beginEditCP(_mfChildren[childIndex], Node::ParentFieldMask); 00246 { 00247 _mfChildren[childIndex]->setParent(NullNode); 00248 } 00249 endEditCP (_mfChildren[childIndex], Node::ParentFieldMask); 00250 00251 subRefCP(_mfChildren[childIndex]); 00252 00253 // set the new child 00254 _mfChildren[childIndex] = childP; 00255 00256 beginEditCP(childP, Node::ParentFieldMask); 00257 { 00258 childP->setParent(getPtr()); 00259 } 00260 endEditCP (childP, Node::ParentFieldMask); 00261 } 00262 00263 // TODO check if required (GV) 00264 #ifndef OSG_GV_BETA 00265 invalidateVolume(); 00266 #endif 00267 }
Definition at line 271 of file OSGNode.cpp.
References _mfChildren, osg::addRefCP(), osg::beginEditCP(), ChildrenFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::end(), osg::endEditCP(), osg::MField< FieldTypeT, fieldNameSpace >::find(), getPtr(), invalidateVolume(), osg::NullFC, NullNode, ParentFieldMask, and osg::subRefCP().
00273 { 00274 MFNodePtr::iterator childIt = _mfChildren.find(childP); 00275 00276 if(newChildP != NullFC) 00277 { 00278 if(childIt != _mfChildren.end()) 00279 { 00280 // do the ref early, to prevent destroys on 00281 // getParent(a)->addChild(a) 00282 00283 addRefCP(newChildP); 00284 // already somebody else's child? 00285 // moved it up could be a child of childP. 00286 NodePtr parent = newChildP->getParent(); 00287 if(parent != NullFC) 00288 { 00289 beginEditCP(parent, Node::ChildrenFieldMask); 00290 parent->subChild(newChildP); 00291 endEditCP (parent, Node::ChildrenFieldMask); 00292 } 00293 00294 beginEditCP(childP, Node::ParentFieldMask); 00295 { 00296 childP->setParent(NullNode); 00297 } 00298 endEditCP (childP, Node::ParentFieldMask); 00299 00300 subRefCP(childP); 00301 00302 (*childIt) = newChildP; 00303 00304 beginEditCP(newChildP, Node::ParentFieldMask); 00305 { 00306 newChildP->setParent(getPtr()); 00307 } 00308 endEditCP (newChildP, Node::ParentFieldMask); 00309 00310 // TODO check if required (GV) 00311 #ifndef OSG_GV_BETA 00312 invalidateVolume(); 00313 #endif 00314 00315 return true; 00316 } 00317 } 00318 00319 return false; 00320 }
Definition at line 322 of file OSGNode.cpp.
References _mfChildren, and osg::MField< FieldTypeT, fieldNameSpace >::size().
00323 { 00324 UInt32 index; 00325 00326 for(index = 0; index < _mfChildren.size(); index++) 00327 { 00328 if( _mfChildren[index] == childP) 00329 break; 00330 } 00331 00332 if(index < _mfChildren.size()) 00333 return index; 00334 else 00335 return -1; 00336 }
| void Node::subChild | ( | const NodePtr & | childP | ) |
Definition at line 338 of file OSGNode.cpp.
References _mfChildren, osg::beginEditCP(), osg::MField< FieldTypeT, fieldNameSpace >::end(), osg::endEditCP(), osg::MField< FieldTypeT, fieldNameSpace >::erase(), osg::MField< FieldTypeT, fieldNameSpace >::find(), invalidateVolume(), NullNode, ParentFieldMask, osg::subRefCP(), and SWARNING.
00339 { 00340 MFNodePtr::iterator childIt = _mfChildren.find(childP); 00341 00342 if(childIt != _mfChildren.end()) 00343 { 00344 beginEditCP(childP, Node::ParentFieldMask); 00345 { 00346 childP->setParent(NullNode); 00347 } 00348 endEditCP (childP, Node::ParentFieldMask); 00349 00350 subRefCP(childP); 00351 00352 _mfChildren.erase(childIt); 00353 } 00354 else 00355 { 00356 SWARNING << "Node(" << this << ")::subChild: " << childP 00357 << " is not one of my children!" << std::endl; 00358 } 00359 00360 // TODO check if required (GV) 00361 #ifndef OSG_GV_BETA 00362 invalidateVolume(); 00363 #endif 00364 }
| void Node::subChild | ( | UInt32 | childIndex | ) |
Definition at line 366 of file OSGNode.cpp.
References _mfChildren, osg::MField< FieldTypeT, fieldNameSpace >::begin(), osg::beginEditCP(), osg::MField< FieldTypeT, fieldNameSpace >::end(), osg::endEditCP(), osg::MField< FieldTypeT, fieldNameSpace >::erase(), invalidateVolume(), NullNode, ParentFieldMask, and osg::subRefCP().
00367 { 00368 MFNodePtr::iterator childIt = _mfChildren.begin(); 00369 00370 childIt += childIndex; 00371 00372 if(childIt != _mfChildren.end()) 00373 { 00374 beginEditCP(*childIt, Node::ParentFieldMask); 00375 { 00376 (*childIt)->setParent(NullNode); 00377 } 00378 endEditCP (*childIt, Node::ParentFieldMask); 00379 00380 subRefCP(*childIt); 00381 00382 _mfChildren.erase(childIt); 00383 } 00384 00385 // TODO check if required (GV) 00386 #ifndef OSG_GV_BETA 00387 invalidateVolume(); 00388 #endif 00389 }
Definition at line 84 of file OSGNodeImpl.inl.
References _mfChildren, OSG_ASSERT, and osg::MField< FieldTypeT, fieldNameSpace >::size().
00085 { 00086 OSG_ASSERT((childIndex < _mfChildren.size())); 00087 00088 return _mfChildren[childIndex]; 00089 }
| bool osg::Node::getActive | ( | void | ) | const [inline] |
Definition at line 105 of file OSGNodeImpl.inl.
References getTravMask().
00106 { 00107 return getTravMask() == TypeTraits<UInt32>::getMax(); 00108 }
| void osg::Node::setActive | ( | bool | val | ) | [inline] |
Definition at line 111 of file OSGNodeImpl.inl.
References _sfTravMask, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().
00112 { 00113 _sfTravMask.setValue(val ? TypeTraits<UInt32>::getMax() : 00114 TypeTraits<UInt32>::getZeroElement() ); 00115 }
| void osg::Node::setTravMask | ( | UInt32 | val | ) | [inline] |
Definition at line 99 of file OSGNodeImpl.inl.
References _sfTravMask, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().
00100 { 00101 _sfTravMask.setValue(val); 00102 }
| UInt32 osg::Node::getTravMask | ( | void | ) | const [inline] |
Definition at line 93 of file OSGNodeImpl.inl.
References _sfTravMask, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
Referenced by getActive(), and updateVolume().
00094 { 00095 return _sfTravMask.getValue(); 00096 }
| void osg::Node::setOcclusionMask | ( | UInt8 | val | ) | [inline] |
Definition at line 118 of file OSGNodeImpl.inl.
References _occlusionMask.
00119 { 00120 _occlusionMask = val; 00121 }
| UInt8 osg::Node::getOcclusionMask | ( | void | ) | const [inline] |
Definition at line 124 of file OSGNodeImpl.inl.
References _occlusionMask.
00125 { 00126 return _occlusionMask; 00127 }
| NodePtr osg::Node::clone | ( | void | ) | [inline] |
| SFDynamicVolume * osg::Node::getSFVolume | ( | void | ) | [inline] |
Definition at line 133 of file OSGNodeImpl.inl.
References _sfVolume.
00134 { 00135 return &_sfVolume; 00136 }
| SFUInt32 * osg::Node::getSFTravMask | ( | void | ) | [inline] |
Definition at line 139 of file OSGNodeImpl.inl.
References _sfTravMask.
00140 { 00141 return &_sfTravMask; 00142 }
| SFNodePtr * osg::Node::getSFParent | ( | void | ) | [inline] |
Definition at line 145 of file OSGNodeImpl.inl.
References _sfParent.
00146 { 00147 return &_sfParent; 00148 }
| SFNodeCorePtr * osg::Node::getSFCore | ( | void | ) | [inline] |
Definition at line 151 of file OSGNodeImpl.inl.
References _sfCore.
00152 { 00153 return &_sfCore; 00154 }
| MFNodePtr * osg::Node::getMFChildren | ( | void | ) | [inline] |
Definition at line 157 of file OSGNodeImpl.inl.
References _mfChildren.
00158 { 00159 return &_mfChildren; 00160 }
| Matrix Node::getToWorld | ( | void | ) |
Definition at line 395 of file OSGNode.cpp.
00396 { 00397 Matrix tmp; 00398 00399 getToWorld(tmp); 00400 00401 return tmp; 00402 }
| void Node::getToWorld | ( | Matrix & | result | ) |
Definition at line 404 of file OSGNode.cpp.
References getCore(), getParent(), osg::NullFC, and osg::TransformationMatrix< ValueTypeT >::setIdentity().
00405 { 00406 if(getParent() != NullFC) 00407 { 00408 getParent()->getToWorld(result); 00409 } 00410 else 00411 { 00412 result.setIdentity(); 00413 } 00414 00415 if(getCore() != NullFC) 00416 getCore()->accumulateMatrix(result); 00417 }
| DynamicVolume & osg::Node::getVolume | ( | bool | update | ) | [inline] |
Definition at line 63 of file OSGNodeImpl.inl.
References _sfVolume, osg::SField< FieldTypeT, fieldNameSpace >::getValue(), and updateVolume().
Referenced by osg::RenderAction::isVisible().
00064 { 00065 if(update == true) 00066 updateVolume(); 00067 00068 return _sfVolume.getValue(); 00069 }
| const DynamicVolume & osg::Node::getVolume | ( | void | ) | const [inline] |
Definition at line 57 of file OSGNodeImpl.inl.
References _sfVolume, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
Referenced by getWorldVolume().
00058 { 00059 return _sfVolume.getValue(); 00060 }
| void Node::getWorldVolume | ( | DynamicVolume & | result | ) |
Definition at line 422 of file OSGNode.cpp.
References getParent(), getVolume(), osg::NullFC, osg::TransformationMatrix< ValueTypeT >::setIdentity(), osg::DynamicVolume::transform(), and updateVolume().
Referenced by osg::DrawAction::isVisible().
00423 { 00424 Matrix m; 00425 00426 if(getParent() != NullFC) 00427 { 00428 getParent()->getToWorld(m); 00429 } 00430 else 00431 { 00432 m.setIdentity(); 00433 } 00434 00435 updateVolume(); 00436 00437 result = getVolume(); 00438 result.transform(m); 00439 /* 00440 Pnt3f low,high; 00441 result.getBounds(low,high); 00442 fprintf(stderr,"%p: node 0x%p gwv (%f %f %f %f %f %f)\n", 00443 Thread::getCurrent(), this, 00444 low[0], low[1], low[2], 00445 high[0], high[1], high[2] ); 00446 */ 00447 }
| void Node::updateVolume | ( | void | ) |
Definition at line 449 of file OSGNode.cpp.
References _mfChildren, _sfVolume, osg::MField< FieldTypeT, fieldNameSpace >::begin(), osg::beginEditCP(), osg::MField< FieldTypeT, fieldNameSpace >::end(), osg::endEditCP(), osg::Volume::extendBy(), getCore(), osg::DynamicVolume::getInstance(), getPtr(), getTravMask(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::DynamicVolume::instanceChanged(), osg::NullFC, osg::Volume::setEmpty(), osg::SField< FieldTypeT, fieldNameSpace >::setValue(), and VolumeFieldMask.
Referenced by getVolume(), getWorldVolume(), and osg::RenderAction::isVisible().
00450 { 00451 if(_sfVolume.getValue().getInstance().isValid() == true || 00452 getTravMask() == 0x0000) 00453 { 00454 return; // still valid, nothing to do 00455 } 00456 00457 // be careful to not change the real volume. If two threads 00458 // are updating the same aspect this will lead to chaos 00459 00460 DynamicVolume vol = _sfVolume.getValue(); 00461 00462 //fprintf(stderr,"%p: node 0x%p update needed\n", Thread::getCurrent(), this); 00463 00464 MFNodePtr::iterator it; 00465 00466 vol.getInstance().setEmpty(); 00467 00468 for(it = _mfChildren.begin(); it != _mfChildren.end(); ++it) 00469 { 00470 if((*it)->getTravMask()) 00471 { 00472 (*it)->updateVolume(); 00473 vol.getInstance().extendBy((*it)->getVolume()); 00474 } 00475 } 00476 00477 // test for null core. Shouldn't happen, but just in case... 00478 if(getCore() != NullFC) 00479 getCore()->adjustVolume(vol.getInstance()); 00480 00481 NodePtr thisP = getPtr(); 00482 00483 beginEditCP(thisP, VolumeFieldMask); 00484 00485 vol.instanceChanged(); 00486 00487 _sfVolume.setValue(vol); 00488 00489 endEditCP(thisP, VolumeFieldMask); 00490 }
| void Node::invalidateVolume | ( | void | ) |
Definition at line 492 of file OSGNode.cpp.
References _sfVolume, osg::beginEditCP(), osg::endEditCP(), getParent(), getPtr(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::Volume::isStatic(), osg::Volume::isValid(), osg::NullFC, osg::Volume::setValid(), and VolumeFieldMask.
Referenced by addChild(), changed(), insertChild(), replaceChild(), replaceChildBy(), and subChild().
00493 { 00494 Volume &vol=_sfVolume.getValue().getInstance(); 00495 00496 if(vol.isValid() == true && vol.isStatic() == false) 00497 { 00498 NodePtr thisP = getPtr(); 00499 00500 beginEditCP(thisP, VolumeFieldMask); 00501 00502 vol.setValid(false); 00503 _sfVolume.getValue().instanceChanged(); 00504 00505 endEditCP(thisP, VolumeFieldMask); 00506 00507 if(getParent() != NullFC) 00508 { 00509 getParent()->invalidateVolume(); 00510 } 00511 } 00512 }
Reimplemented from osg::AttachmentContainer.
Definition at line 167 of file OSGNodeImpl.inl.
References _mfChildren, _sfCore, osg::ChangedOrigin::Abstract, osg::ChangedOrigin::AbstrIncRefCount, osg::addRefCP(), osg::MField< FieldTypeT, fieldNameSpace >::begin(), osg::beginEditCP(), osg::AttachmentContainer::changed(), ChildrenFieldMask, CoreFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::end(), osg::endEditCP(), getParent(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), invalidateVolume(), osg::NullFC, TravMaskFieldMask, and VolumeFieldMask.
00169 { 00170 Inherited::changed(whichField, origin); 00171 00172 if(whichField & CoreFieldMask) 00173 { 00174 invalidateVolume(); 00175 00176 if(origin & ChangedOrigin::Abstract) 00177 { 00178 if(origin & ChangedOrigin::AbstrIncRefCount) 00179 { 00180 addRefCP(_sfCore.getValue()); 00181 } 00182 } 00183 } 00184 00185 if(whichField & TravMaskFieldMask) 00186 { 00187 beginEditCP(getParent(), Node::VolumeFieldMask); 00188 if(getParent() != NullFC) 00189 { 00190 getParent()->invalidateVolume(); 00191 } 00192 else 00193 { 00194 invalidateVolume(); 00195 } 00196 endEditCP(getParent(), Node::VolumeFieldMask); 00197 } 00198 00199 if(whichField & ChildrenFieldMask) 00200 { 00201 invalidateVolume(); 00202 00203 if(origin & ChangedOrigin::Abstract) 00204 { 00205 if(origin & ChangedOrigin::AbstrIncRefCount) 00206 { 00207 MFNodePtr::iterator vChildIt = _mfChildren.begin(); 00208 MFNodePtr::const_iterator endChildren = _mfChildren.end (); 00209 00210 while(vChildIt != endChildren) 00211 { 00212 addRefCP(*vChildIt); 00213 00214 ++vChildIt; 00215 } 00216 } 00217 } 00218 } 00219 }
Reimplemented from osg::AttachmentContainer.
Definition at line 225 of file OSGNodeImpl.inl.
References _mfChildren, _sfCore, _sfParent, _sfTravMask, _sfVolume, ChildrenFieldMask, CoreFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::AttachmentContainer::getBinSize(), osg::FieldBits::NoField, ParentFieldMask, TravMaskFieldMask, and VolumeFieldMask.
00226 { 00227 UInt32 returnValue = Inherited::getBinSize(whichField); 00228 00229 if(FieldBits::NoField != (VolumeFieldMask & whichField)) 00230 { 00231 returnValue += _sfVolume .getBinSize(); 00232 } 00233 00234 if(FieldBits::NoField != (TravMaskFieldMask & whichField)) 00235 { 00236 returnValue += _sfTravMask .getBinSize(); 00237 } 00238 00239 if(FieldBits::NoField != (ParentFieldMask & whichField)) 00240 { 00241 returnValue += _sfParent .getBinSize(); 00242 } 00243 00244 if(FieldBits::NoField != (ChildrenFieldMask & whichField)) 00245 { 00246 returnValue += _mfChildren .getBinSize(); 00247 } 00248 00249 if(FieldBits::NoField != (CoreFieldMask & whichField)) 00250 { 00251 returnValue += _sfCore .getBinSize(); 00252 } 00253 00254 return returnValue; 00255 }
| void osg::Node::copyToBin | ( | BinaryDataHandler & | pMem, | |
| const BitVector & | whichField | |||
| ) | [inline, virtual] |
Reimplemented from osg::AttachmentContainer.
Definition at line 258 of file OSGNodeImpl.inl.
References _mfChildren, _sfCore, _sfParent, _sfTravMask, _sfVolume, ChildrenFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::SField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::AttachmentContainer::copyToBin(), CoreFieldMask, osg::FieldBits::NoField, ParentFieldMask, TravMaskFieldMask, and VolumeFieldMask.
00260 { 00261 Inherited::copyToBin(pMem, whichField); 00262 00263 if(FieldBits::NoField != (VolumeFieldMask & whichField)) 00264 { 00265 _sfVolume.copyToBin(pMem); 00266 } 00267 00268 if(FieldBits::NoField != (TravMaskFieldMask & whichField)) 00269 { 00270 _sfTravMask.copyToBin(pMem); 00271 } 00272 00273 if(FieldBits::NoField != (ParentFieldMask & whichField)) 00274 { 00275 _sfParent.copyToBin(pMem); 00276 } 00277 00278 if(FieldBits::NoField != (ChildrenFieldMask & whichField)) 00279 { 00280 _mfChildren.copyToBin(pMem); 00281 } 00282 00283 if(FieldBits::NoField != (CoreFieldMask & whichField)) 00284 { 00285 _sfCore.copyToBin(pMem); 00286 } 00287 }
| void osg::Node::copyFromBin | ( | BinaryDataHandler & | pMem, | |
| const BitVector & | whichField | |||
| ) | [inline, virtual] |
Reimplemented from osg::AttachmentContainer.
Definition at line 290 of file OSGNodeImpl.inl.
References _mfChildren, _sfCore, _sfParent, _sfTravMask, _sfVolume, ChildrenFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::SField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::AttachmentContainer::copyFromBin(), CoreFieldMask, osg::FieldBits::NoField, ParentFieldMask, TravMaskFieldMask, and VolumeFieldMask.
00292 { 00293 Inherited::copyFromBin(pMem, whichField); 00294 00295 if(FieldBits::NoField != (VolumeFieldMask & whichField)) 00296 { 00297 _sfVolume.copyFromBin(pMem); 00298 } 00299 00300 if(FieldBits::NoField != (TravMaskFieldMask & whichField)) 00301 { 00302 _sfTravMask.copyFromBin(pMem); 00303 } 00304 00305 if(FieldBits::NoField != (ParentFieldMask & whichField)) 00306 { 00307 _sfParent.copyFromBin(pMem); 00308 } 00309 00310 if(FieldBits::NoField != (ChildrenFieldMask & whichField)) 00311 { 00312 _mfChildren.copyFromBin(pMem); 00313 } 00314 00315 if(FieldBits::NoField != (CoreFieldMask & whichField)) 00316 { 00317 _sfCore.copyFromBin(pMem); 00318 } 00319 }
Reimplemented from osg::AttachmentContainer.
Definition at line 517 of file OSGNode.cpp.
References osg::AttachmentContainer::_attachmentMap, _mfChildren, _sfCore, _sfParent, osg::MField< FieldTypeT, fieldNameSpace >::dump(), osg::AttachmentContainer::dump(), osg::FieldContainerPtrBase::getFieldContainerId(), getPtr(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::indentLog(), osg::NullFC, PLOG, and osg::MField< FieldTypeT, fieldNameSpace >::size().
00519 { 00520 UInt32 i; 00521 00522 NodePtr thisP = getPtr(); 00523 00524 indentLog(uiIndent, PLOG); 00525 00526 PLOG << "Node" 00527 << "(" 00528 << thisP.getFieldContainerId() 00529 << ") : " 00530 << _mfChildren.size() 00531 << " children | " 00532 << _attachmentMap.getValue().size() 00533 << " attachments | " 00534 << "Parent : " << std::hex; 00535 00536 if(_sfParent.getValue() != NullFC) 00537 PLOG << "0x" << &(*(_sfParent.getValue())) << " | "; 00538 else 00539 PLOG << "NULL | "; 00540 00541 PLOG << "0x" << this << std::dec << std::endl; 00542 00543 indentLog(uiIndent, PLOG); 00544 00545 PLOG << "[" << std::endl; 00546 00547 if(_sfCore.getValue() != NullFC) 00548 { 00549 _sfCore.getValue()->dump(uiIndent + 4, bvFlags); 00550 } 00551 else 00552 { 00553 indentLog(uiIndent + 4, PLOG); 00554 PLOG << "Core : " << "NULL" << std::endl; 00555 } 00556 00557 Inherited::dump(uiIndent, bvFlags); 00558 00559 indentLog(uiIndent, PLOG); 00560 PLOG << "]" << std::endl; 00561 00562 indentLog(uiIndent, PLOG); 00563 00564 PLOG << "{" << std::endl; 00565 00566 for(i = 0; i < _mfChildren.size(); i++) 00567 { 00568 _mfChildren[i]->dump(uiIndent + 4, bvFlags); 00569 PLOG << std::endl; 00570 } 00571 00572 00573 indentLog(uiIndent, PLOG); 00574 00575 PLOG << "}" << std::endl; 00576 00577 /* 00578 for(i = 0; i < indent; i++) 00579 { 00580 cerr << " "; 00581 } 00582 cerr << " Parent : "; 00583 00584 00585 for(i = 0; i < indent; i++) 00586 { 00587 cerr << " "; 00588 } 00589 00590 for(i = 0; i < indent; i++) 00591 fprintf(stderr, " "); 00592 00593 fprintf(stderr, "NAttachments : \n"); 00594 00595 map<UInt32, AttachmentPtr>::const_iterator fcI; 00596 00597 fcI = _attachmentMap.getValue().begin(); 00598 00599 while(fcI != _attachmentMap.getValue().end()) 00600 { 00601 (*fcI).second->dump(indent + 2); 00602 ++fcI; 00603 } 00604 00605 for(i = 0; i < indent; i++) 00606 { 00607 cerr << " "; 00608 } 00609 00610 cerr << "{" << std::endl; 00611 00612 00613 for(i = 0; i < indent; i++) 00614 { 00615 cerr << " "; 00616 } 00617 00618 cerr << "}" << std::endl; 00619 */ 00620 }
| void osg::Node::setParent | ( | const NodePtr & | parent | ) | [inline, protected] |
Definition at line 326 of file OSGNodeImpl.inl.
References _sfParent, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().
00327 { 00328 _sfParent.setValue(parent); 00329 }
| void osg::Node::onCreate | ( | const Node * | source = NULL |
) | [inline, protected] |
Definition at line 133 of file OSGNodePtrDepImpl.inl.
References osg::AttachmentContainer::_attachmentMap, osg::AttachmentContainer::addAttachment(), getCore(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), and setCore().
00134 { 00135 if(source == NULL) 00136 return; 00137 00138 setCore(source->getCore()); 00139 00140 AttachmentMap::const_iterator fcI = 00141 source->_attachmentMap.getValue().begin(); 00142 AttachmentMap::const_iterator fcEnd = 00143 source->_attachmentMap.getValue().end(); 00144 00145 while(fcI != fcEnd) 00146 { 00147 addAttachment((*fcI).second); 00148 00149 ++fcI; 00150 } 00151 }
| void osg::Node::executeSync | ( | FieldContainer & | other, | |
| const BitVector & | whichField | |||
| ) | [inline, protected, virtual] |
Reimplemented from osg::AttachmentContainer.
Definition at line 368 of file OSGNodeImpl.inl.
References executeSyncImpl().
00370 { 00371 this->executeSyncImpl((Node *) &other, whichField); 00372 }
Definition at line 336 of file OSGNodeImpl.inl.
References _mfChildren, _sfCore, _sfParent, _sfTravMask, _sfVolume, ChildrenFieldMask, CoreFieldMask, osg::AttachmentContainer::executeSyncImpl(), osg::FieldBits::NoField, ParentFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::syncWith(), osg::SField< FieldTypeT, fieldNameSpace >::syncWith(), TravMaskFieldMask, and VolumeFieldMask.
Referenced by executeSync().
00338 { 00339 Inherited::executeSyncImpl(pOther, whichField); 00340 00341 if (FieldBits::NoField != (VolumeFieldMask & whichField)) 00342 { 00343 _sfVolume.syncWith(pOther->_sfVolume); 00344 } 00345 00346 if (FieldBits::NoField != (TravMaskFieldMask & whichField)) 00347 { 00348 _sfTravMask.syncWith(pOther->_sfTravMask); 00349 } 00350 00351 if (FieldBits::NoField != (ParentFieldMask & whichField)) 00352 { 00353 _sfParent.syncWith(pOther->_sfParent); 00354 } 00355 00356 if (FieldBits::NoField != (ChildrenFieldMask & whichField)) 00357 { 00358 _mfChildren.syncWith(pOther->_mfChildren); 00359 } 00360 00361 if (FieldBits::NoField != (CoreFieldMask & whichField)) 00362 { 00363 _sfCore.syncWith(pOther->_sfCore); 00364 } 00365 }
| NodePtr osg::Node::getPtr | ( | void | ) | const [inline, protected] |
Definition at line 100 of file OSGNodePtrDepImpl.inl.
Referenced by addChild(), clone(), dump(), insertChild(), invalidateVolume(), replaceChild(), replaceChildBy(), updateVolume(), and ~Node().
| void osg::Node::operator= | ( | const Node & | source | ) | [private] |
| 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(), 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 }
| void AttachmentContainer::executeSyncImpl | ( | AttachmentContainer * | pOther, | |
| const BitVector & | whichField | |||
| ) | [protected, inherited] |
Definition at line 316 of file OSGAttachmentContainer.cpp.
References osg::AttachmentContainer::_attachmentMap, osg::AttachmentContainer::AttachmentsFieldMask, osg::FieldContainer::executeSyncImpl(), osg::FieldBits::NoField, and osg::SField< FieldTypeT, fieldNameSpace >::syncWith().
Referenced by osg::AttachmentContainer::executeSync(), osg::WindowBase::executeSyncImpl(), osg::ViewportBase::executeSyncImpl(), osg::ShaderParameterBase::executeSyncImpl(), executeSyncImpl(), osg::NodeCore::executeSyncImpl(), osg::MaterialBase::executeSyncImpl(), osg::ImageComposerBase::executeSyncImpl(), osg::ImageBase::executeSyncImpl(), osg::ForegroundBase::executeSyncImpl(), osg::DisplayFilterBase::executeSyncImpl(), osg::DisplayCalibrationBase::executeSyncImpl(), osg::CameraBase::executeSyncImpl(), and osg::BackgroundBase::executeSyncImpl().
00319 { 00320 Inherited::executeSyncImpl(pOther, whichField); 00321 00322 if (FieldBits::NoField != (AttachmentsFieldMask & whichField)) 00323 { 00324 _attachmentMap.syncWith(pOther->_attachmentMap); 00325 } 00326 }
| void osg::FieldContainer::executeSyncImpl | ( | FieldContainer * | pOther, | |
| const BitVector & | whichField | |||
| ) | [inline, protected, inherited] |
Definition at line 333 of file OSGFieldContainerImpl.inl.
Referenced by osg::StateBase::executeSyncImpl(), osg::DVRShaderBase::executeSyncImpl(), osg::DVRClipGeometryBase::executeSyncImpl(), osg::AttachmentContainer::executeSyncImpl(), and osg::Attachment::executeSyncImpl().
| AttachmentContainerPtr AttachmentContainer::getPtr | ( | void | ) | [protected, inherited] |
Definition at line 352 of file OSGAttachmentContainer.cpp.
Referenced by osg::FileGrabForeground::draw(), osg::FBOViewport::render(), osg::AttachmentContainer::subAttachment(), and osg::AttachmentContainer::~AttachmentContainer().
00353 { 00354 return AttachmentContainerPtr(*this); 00355 }
| 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::fcptrAttributeMap(), osg::Image::setAttachmentField(), and osg::stringAttributeMap().
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::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::OffCenterPerspectiveCameraBase::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::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::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::OffCenterPerspectiveCameraBase::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::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 Thread::getCurrentChangeList()->addCreated( 00168 *(reinterpret_cast<UInt32 *>(pTmp))); 00169 00170 pTmp += sizeof(UInt32); 00171 00172 ObjectType *aObject = reinterpret_cast<ObjectType *>(pTmp); 00173 00174 for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++) 00175 { 00176 pTmp = 00177 reinterpret_cast<UInt8 *>(new (pTmp) ObjectType(*prototypeP)); 00178 00179 pTmp += sizeof(ObjectType); 00180 } 00181 00182 result->onCreate(prototypeP); 00183 00184 for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++) 00185 { 00186 aObject[i].onCreateAspect(aObject, prototypeP); 00187 } 00188 00189 #if defined(OSG_GV_BETA) && defined(OSG_DBG_MEM) 00190 00191 fprintf(stderr, "GV_MEM_FC_DBG : (%u) cc (%p|%u)\n", 00192 Thread::getAspect(), 00193 result._storeP, 00194 // ObjectType::getClassType().getCName(), 00195 ObjectType::getClassType().getId()); 00196 #endif 00197 00198 #ifdef OSG_DEBUG_TYPED_FCPTR 00199 result.updateTypedStore(); 00200 #endif 00201 }
| void osg::FieldContainer::newPtr | ( | ObjectPtrT & | result | ) | [inline, static, protected, inherited] |
Definition at line 204 of file OSGFieldContainerImpl.inl.
References osg::ChangeList::addCreated(), osg::PThreadBase::getAspect(), osg::PThreadBase::getCurrentChangeList(), osg::ThreadManager::getNumAspects(), osg::FieldContainerFactory::registerFieldContainer(), and osg::FieldContainerFactory::the().
00205 { 00206 typedef typename ObjectPtrT::StoredObjectType ObjectType; 00207 00208 UInt8 *pTmp; 00209 00210 result._containerSize = sizeof(ObjectType); 00211 00212 pTmp = 00213 static_cast<UInt8 *>(operator new( 00214 sizeof(Int32) + // ReferenceCount 00215 sizeof(UInt32) + // ContainerId 00216 sizeof(ObjectType) * ThreadManager::getNumAspects())); 00217 00218 *(reinterpret_cast<Int32 *>(pTmp)) = 0; 00219 00220 pTmp += sizeof(Int32); 00221 00222 result._storeP = (pTmp + sizeof(UInt32)); 00223 00224 #ifdef OSG_DEBUG_FCPTR 00225 result._typedStoreP = reinterpret_cast<FieldContainer *>(result._storeP); 00226 #endif 00227 00228 *(reinterpret_cast<UInt32 *>(pTmp)) = 00229 FieldContainerFactory::the()->registerFieldContainer(result); 00230 00231 Thread::getCurrentChangeList()->addCreated( 00232 *(reinterpret_cast<UInt32 *>(pTmp))); 00233 00234 pTmp += sizeof(UInt32); 00235 00236 ObjectType *aObject = reinterpret_cast<ObjectType *>(pTmp); 00237 00238 for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++) 00239 { 00240 pTmp = reinterpret_cast<UInt8 *>(new (pTmp) ObjectType()); 00241 00242 pTmp += sizeof(ObjectType); 00243 } 00244 00245 result->onCreate(); 00246 00247 for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++) 00248 { 00249 aObject[i].onCreateAspect(aObject); 00250 } 00251 00252 #if defined(OSG_GV_BETA) && defined(OSG_DBG_MEM) 00253 fprintf(stderr, "GV_MEM_FC_DBG : (%u) c (%p|%u)\n", 00254 Thread::getAspect(), 00255 result._storeP, 00256 // ObjectType::getClassType().getCName(), 00257 ObjectType::getClassType().getId()); 00258 #endif 00259 00260 #ifdef OSG_DEBUG_TYPED_FCPTR 00261 result.updateTypedStore(); 00262 #endif 00263 }
| void osg::FieldContainer::beginEditX | ( | const BitVector & | whichField, | |
| FieldTypeT & | field | |||
| ) | [inline, protected, inherited] |
| void osg::FieldContainer::endEditX | ( | const BitVector & | whichField, | |
| FieldTypeT & | field | |||
| ) | [inline, protected, inherited] |
Definition at line 291 of file OSGFieldContainerImpl.inl.
References osg::endEditCP().
00292 { 00293 FieldContainerPtr tmpPtr(this); 00294 endEditCP(tmpPtr, whichField); 00295 }
| void osg::FieldContainer::onCreate | ( | const FieldContainer * | source = NULL |
) | [inline, protected, inherited] |
Definition at line 318 of file OSGFieldContainerImpl.inl.
Referenced by osg::ShaderParameterChunk::onCreate().
| void osg::FieldContainer::onCreateAspect | ( | const FieldContainer * | aspect0, | |
| const FieldContainer * | source = NULL | |||
| ) | [inline, protected, inherited] |
| void FieldContainer::onDestroy | ( | void | ) | [protected, virtual, inherited] |
Reimplemented in osg::NodeCore, osg::Attachment, osg::Geometry, osg::Surface, osg::MaterialPool, osg::CubeTextureChunk, osg::TextureChunk, osg::FBOViewport, osg::Window, osg::ShaderParameterChunk, and osg::SHLChunk.
Definition at line 98 of file OSGFieldContainer.cpp.
friend class FieldContainer [friend] |
friend class FieldContainerType [friend] |
const BitVector Node::VolumeFieldMask [static] |
Initial value:
(TypeTraits<BitVector>::One << Node::VolumeFieldId )
Definition at line 97 of file OSGNodeImpl.h.
Referenced by changed(), copyFromBin(), copyToBin(), osg::BINWriter::doIndexFC(), executeSyncImpl(), getBinSize(), invalidateVolume(), and updateVolume().
const BitVector Node::TravMaskFieldMask [static] |
Initial value:
(TypeTraits<BitVector>::One << Node::TravMaskFieldId )
Definition at line 98 of file OSGNodeImpl.h.
Referenced by changed(), copyFromBin(), copyToBin(), executeSyncImpl(), and getBinSize().
const BitVector Node::ParentFieldMask [static] |
Initial value:
(TypeTraits<BitVector>::One << Node::ParentFieldId )
Definition at line 99 of file OSGNodeImpl.h.
Referenced by addChild(), copyFromBin(), copyToBin(), executeSyncImpl(), getBinSize(), insertChild(), replaceChild(), replaceChildBy(), subChild(), and ~Node().
const BitVector Node::ChildrenFieldMask [static] |
Initial value:
(TypeTraits<BitVector>::One << Node::ChildrenFieldId )
Definition at line 100 of file OSGNodeImpl.h.
Referenced by addChild(), osg::VRMLFile::beginNode(), osg::OSGLoader::beginNode(), changed(), copyFromBin(), copyToBin(), osg::VRMLInlineDesc::endNode(), executeSyncImpl(), getBinSize(), insertChild(), osg::MergeGraphOp::processGeometries(), osg::MergeGraphOp::processGroups(), osg::MergeGraphOp::processTransformations(), replaceChild(), replaceChildBy(), osg::SimpleSceneManager::setRoot(), and osg::SplitGraphOp::traverseLeave().
const BitVector Node::CoreFieldMask [static] |
Initial value:
(TypeTraits<BitVector>::One << Node::CoreFieldId )
Definition at line 101 of file OSGNodeImpl.h.
Referenced by osg::VRMLLODDesc::beginNode(), osg::VRMLShapeDesc::beginNode(), osg::VRMLNodeDesc::beginNode(), osg::VRMLFile::beginNode(), osg::OSGLoader::beginNode(), changed(), copyFromBin(), copyToBin(), osg::VRMLExtrusionDesc::endNode(), osg::VRMLGeometryObjectDesc::endNode(), osg::VRMLGeometryDesc::endNode(), osg::VRMLShapeDesc::endNode(), osg::VRMLFile::endNode(), executeSyncImpl(), getBinSize(), osg::TextVectorFace::makeNode(), osg::TextTXFFace::makeNode(), osg::makeNodeFor(), osg::RAWSceneFileType::read(), osg::OFFSceneFileType::read(), osg::VerifyGraphOp::repairGeometry(), osg::SplitGraphOp::splitNode(), and osg::CoredNodePtr< Core >::updateNode().
FieldDescription * Node::_desc [static, protected] |
FieldContainerType Node::_type [static, protected] |
const NodePtr Node::NullNode [static, protected] |
Definition at line 253 of file OSGNodeImpl.h.
Referenced by replaceChild(), replaceChildBy(), subChild(), and ~Node().
SFDynamicVolume osg::Node::_sfVolume [protected] |
Definition at line 260 of file OSGNodeImpl.h.
Referenced by copyFromBin(), copyToBin(), executeSyncImpl(), getBinSize(), getSFVolume(), getVolume(), invalidateVolume(), and updateVolume().
SFUInt32 osg::Node::_sfTravMask [protected] |
Definition at line 262 of file OSGNodeImpl.h.
Referenced by copyFromBin(), copyToBin(), executeSyncImpl(), getBinSize(), getSFTravMask(), getTravMask(), setActive(), and setTravMask().
SFNodePtr osg::Node::_sfParent [protected] |
Definition at line 264 of file OSGNodeImpl.h.
Referenced by copyFromBin(), copyToBin(), dump(), executeSyncImpl(), getBinSize(), getParent(), getSFParent(), and setParent().
MFNodePtr osg::Node::_mfChildren [protected] |
Definition at line 265 of file OSGNodeImpl.h.
Referenced by addChild(), changed(), copyFromBin(), copyToBin(), dump(), executeSyncImpl(), findChild(), getBinSize(), getChild(), getMFChildren(), getNChildren(), insertChild(), replaceChild(), replaceChildBy(), subChild(), updateVolume(), and ~Node().
SFNodeCorePtr osg::Node::_sfCore [protected] |
Definition at line 267 of file OSGNodeImpl.h.
Referenced by changed(), copyFromBin(), copyToBin(), dump(), executeSyncImpl(), getBinSize(), getCore(), getSFCore(), and ~Node().
UInt8 osg::Node::_occlusionMask [protected] |
Definition at line 269 of file OSGNodeImpl.h.
Referenced by getOcclusionMask(), and setOcclusionMask().
const BitVector AttachmentContainer::AttachmentsFieldMask [static, inherited] |
Initial value:
(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::AttachmentContainer::executeSyncImpl(), osg::fcptrAttributeMap(), osg::AttachmentContainer::getBinSize(), and osg::stringAttributeMap().
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(), dump(), osg::Geometry::dump(), osg::AttachmentContainer::dump(), osg::AttachmentContainer::executeSyncImpl(), osg::AttachmentContainer::findAttachment(), osg::AttachmentContainer::getBinSize(), osg::AttachmentContainer::getSFAttachments(), onCreate(), osg::AttachmentContainer::subAttachment(), and osg::AttachmentContainer::~AttachmentContainer().
const BitVector osg::FieldContainer::NextFieldMask [static, inherited] |
Initial value:
(TypeTraits<BitVector>::One << NextFieldId)
Definition at line 75 of file OSGFieldContainerImpl.h.
const BitVector osg::FieldContainer::MTInfluenceMask = 0x00 [static, inherited] |
Reimplemented in osg::RenderOptionsBase, osg::ClusterWindowBase, osg::DisplayCalibrationBase, osg::ImageComposerBase, osg::MultiDisplayWindowBase, osg::SortFirstWindowBase, osg::FCPtrAttributeMapBase, osg::StringAttributeMapBase, osg::ImageBase, osg::ChunkMaterialBase, osg::FresnelMaterialBase, osg::MaterialBase, osg::MultiPassMaterialBase, osg::PhongMaterialBase, osg::SimpleMaterialBase, osg::SimpleTexturedMaterialBase, osg::SwitchMaterialBase, osg::DrawableBase, osg::MaterialDrawableBase, osg::GeometryBase, osg::SlicesBase, osg::ParticlesBase, osg::DVRAppearanceBase, osg::DVRClipGeometryBase, osg::DVRClipObjectsBase, osg::DVRGeometryBase, osg::DVRIsoShaderBase, osg::DVRIsoSurfaceBase, osg::DVRLookupTableBase, osg::DVRMtexLUTShaderBase, osg::DVRShaderBase, osg::DVRSimpleLUTShaderBase, osg::DVRSimpleShaderBase, osg::DVRVolumeBase, osg::DVRVolumeTextureBase, osg::FatBorderChunkBase, osg::SurfaceBase, osg::GroupBase, osg::DirectionalLightBase, osg::LightBase, osg::LightEnvBase, osg::PointLightBase, osg::SpotLightBase, osg::BillboardBase, osg::ClipPlaneBase, osg::ComponentTransformBase, osg::DistanceLODBase, osg::InlineBase, osg::InverseTransformBase, osg::MaterialGroupBase, osg::MaterialPoolBase, osg::ProxyGroupBase, osg::ScreenGroupBase, osg::StateSortingGroupBase, osg::SwitchBase, osg::TransformBase, osg::BlendChunkBase, osg::ClipPlaneChunkBase, osg::ColorMaskChunkBase, osg::CubeTextureChunkBase, osg::DepthChunkBase, osg::FragmentProgramChunkBase, osg::LightChunkBase, osg::LightModelChunkBase, osg::LineChunkBase, osg::LogicOpChunkBase, osg::MaterialChunkBase, osg::PointChunkBase, osg::PolygonChunkBase, osg::ProgramChunkBase, osg::RegisterCombinersChunkBase, osg::SClipPlaneChunkBase, osg::StateBase, osg::StateChunkBase, osg::StencilChunkBase, osg::TexGenChunkBase, osg::TextureChunkBase, osg::TextureTransformChunkBase, osg::TransformChunkBase, osg::TwoSidedLightingChunkBase, osg::VertexProgramChunkBase, osg::GraphicStatisticsForegroundBase, osg::SimpleStatisticsForegroundBase, osg::StatisticsForegroundBase, osg::BackgroundBase, osg::CameraBase, osg::CameraDecoratorBase, osg::ColorBufferViewportBase, osg::ColorDisplayFilterBase, osg::DepthClearBackgroundBase, osg::DisplayFilterBase, osg::DisplayFilterForegroundBase, osg::DistortionDisplayFilterBase, osg::FBOViewportBase, osg::FileGrabForegroundBase, osg::ForegroundBase, osg::GrabForegroundBase, osg::GradientBackgroundBase, osg::ImageBackgroundBase, osg::ImageForegroundBase, osg::MatrixCameraBase, osg::MatrixCameraDecoratorBase, osg::OffCenterPerspectiveCameraBase, osg::OrthographicCameraBase, osg::PassiveBackgroundBase, osg::PassiveViewportBase, osg::PassiveWindowBase, osg::PerspectiveCameraBase, osg::PolygonBackgroundBase, osg::PolygonForegroundBase, osg::ProjectionCameraDecoratorBase, osg::ResolutionDisplayFilterBase, osg::ShearedStereoCameraDecoratorBase, osg::SkyBackgroundBase, osg::SolidBackgroundBase, osg::StereoBufferViewportBase, osg::StereoCameraDecoratorBase, osg::TextureBackgroundBase, osg::TextureGrabBackgroundBase, osg::TextureGrabForegroundBase, osg::TileCameraDecoratorBase, osg::ViewportBase, osg::WindowBase, osg::ShaderChunkBase, osg::ShaderParameterBase, osg::ShaderParameterBoolBase, osg::ShaderParameterChunkBase, osg::ShaderParameterIntBase, osg::ShaderParameterMatrixBase, osg::ShaderParameterMIntBase, osg::ShaderParameterMMatrixBase, osg::ShaderParameterMRealBase, osg::ShaderParameterMVec2fBase, osg::ShaderParameterMVec3fBase, osg::ShaderParameterMVec4fBase, osg::ShaderParameterRealBase, osg::ShaderParameterStringBase, osg::ShaderParameterVec2fBase, osg::ShaderParameterVec3fBase, osg::ShaderParameterVec4fBase, osg::SHLChunkBase, osg::SHLParameterChunkBase, osg::XWindowBase, osg::WIN32WindowBase, and osg::GLUTWindowBase.
Definition at line 77 of file OSGFieldContainerImpl.h.
const bool osg::FieldContainer::isNodeCore = false [static, inherited] |
UInt32 osg::FieldContainer::_shares [protected, inherited] |
Definition at line 199 of file OSGFieldContainerImpl.h.
1.5.5