#include <OSGNodeCore.h>
Inheritance diagram for osg::NodeCore:

General Fieldcontainer Declaration | |
| *virtual osg::FieldContainerType & | getType (void) |
| virtual const osg::FieldContainerType & | getType (void) const |
| virtual osg::UInt32 | getContainerSize (void) const |
| static osg::FieldContainerType & | getClassType (void) |
| static osg::UInt32 | getClassTypeId (void) |
Public Types | |
| enum | { ParentsFieldId = Inherited::NextFieldId, NextFieldId = ParentsFieldId + 1 } |
Public Member Functions | |
Parents | |
| *MFNodePtr & | getParents (void) |
| const MFNodePtr & | getParents (void) const |
| MFNodePtr * | getMFParents (void) |
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 |
Volume | |
| *virtual void | invalidateVolume (void) |
Changed | |
| *virtual void | changed (BitVector whichField, UInt32 origin) |
Clone | |
| *virtual FieldContainerPtr | shallowCopy (void) const =0 |
Static Public Attributes | |
| static const BitVector | ParentsFieldMask = (1 << NodeCore::ParentsFieldId ) |
| static const BitVector | AttachmentsFieldMask |
| static const BitVector | NextFieldMask |
| static const BitVector | MTInfluenceMask = 0x00 |
CoredNodePtr helper | |
| *static const bool | isNodeCore = true |
Protected Types | |
| typedef AttachmentContainer | Inherited |
Protected Member Functions | |
Constructors | |
| * | NodeCore (void) |
| NodeCore (const NodeCore &obj) | |
Destructor | |
| *virtual | ~NodeCore (void) |
MT Destruction | |
| *virtual void | onDestroy (void) |
Set / Get Parents | |
| *void | addParent (const NodePtr &parent) |
| void | subParent (const NodePtr &parent) |
Pointer | |
| *NodeCorePtr | getPtr (void) const |
Sync | |
| *virtual void | executeSync (FieldContainer &other, const BitVector &whichField) |
| void | executeSyncImpl (NodeCore *pOther, const BitVector &whichField) |
Transformation | |
| *virtual void | accumulateMatrix (Matrix &result) |
Volume | |
| *virtual void | adjustVolume (Volume &volume) |
Protected Attributes | |
Fields | |
| *MFNodePtr | _parents |
Static Protected Attributes | |
Type information | |
| *static FieldDescription * | _desc [] |
| static FieldContainerType | _type |
Private Member Functions | |
| void | operator= (const NodeCore &source) |
Friends | |
| class | Node |
| class | Attachment |
| class | FieldContainer |
Definition at line 75 of file OSGNodeCore.h.
|
|
|
Reimplemented from osg::AttachmentContainer. Definition at line 87 of file OSGNodeCore.h. 00088 { 00089 ParentsFieldId = Inherited::NextFieldId, 00090 NextFieldId = ParentsFieldId + 1 00091 };
|
|
|
Definition at line 117 of file OSGNodeCore.inl.
|
|
|
Definition at line 124 of file OSGNodeCore.inl.
|
|
|
Definition at line 134 of file OSGNodeCore.inl.
|
|
|
|
|
|
|
|
Definition at line 56 of file OSGNodeCore.inl. Referenced by osg::Surface::FindClosestPoint(). 00057 { 00058 return _parents; 00059 }
|
|
|
Definition at line 62 of file OSGNodeCore.inl. References _parents. 00063 { 00064 return _parents; 00065 }
|
|
|
Definition at line 68 of file OSGNodeCore.inl. References _parents. 00069 { 00070 return &_parents; 00071 }
|
|
|
||||||||||||
|
||||||||||||
|
||||||||||||
|
|
Definition at line 237 of file OSGNodeCore.inl. References _parents, and osg::MField< FieldTypeT, fieldNameSpace >::size(). Referenced by osg::Transform::changed(). 00238 { 00239 for(UInt32 i = 0; i < _parents.size(); i++) 00240 { 00241 _parents[i]->invalidateVolume(); 00242 } 00243 }
|
|
|
Reimplemented from osg::FieldContainer. Reimplemented in osg::MaterialPool. Definition at line 142 of file OSGNodeCore.inl.
|
|
|
Definition at line 150 of file OSGNodeCore.inl. References _parents, and osg::MField< FieldTypeT, fieldNameSpace >::push_back(). 00151 { 00152 _parents.push_back(parent); 00153 }
|
|
|
Definition at line 156 of file OSGNodeCore.inl. References _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 }
|
|
|
Reimplemented in osg::Geometry. Definition at line 170 of file OSGNodeCore.inl. Referenced by osg::MaterialPool::add(), dump(), and osg::MaterialPool::sub().
|
|
||||||||||||
|
Reimplemented from osg::AttachmentContainer. Reimplemented in osg::DrawableBase, osg::MaterialDrawableBase, osg::GeometryBase, osg::SlicesBase, osg::ParticlesBase, osg::DVRGeometryBase, osg::DVRVolumeBase, osg::SurfaceBase, osg::GroupBase, osg::DirectionalLightBase, osg::LightBase, osg::LightEnvBase, osg::PointLightBase, osg::SpotLightBase, osg::BillboardBase, osg::ComponentTransformBase, osg::DistanceLODBase, osg::InlineBase, osg::InverseTransformBase, osg::MaterialGroupBase, osg::MaterialPoolBase, osg::ProxyGroupBase, osg::StateSortingGroupBase, osg::SwitchBase, and osg::TransformBase. Definition at line 192 of file OSGNodeCore.inl. References executeSyncImpl(). 00194 { 00195 this->executeSyncImpl((NodeCore *) &other, whichField); 00196 }
|
|
||||||||||||
|
Definition at line 180 of file OSGNodeCore.inl. References _parents, osg::AttachmentContainer::executeSyncImpl(), osg::FieldBits::NoField, ParentsFieldMask, and osg::MField< FieldTypeT, fieldNameSpace >::syncWith(). Referenced by executeSync(), osg::StateSortingGroupBase::executeSyncImpl(), osg::LightEnvBase::executeSyncImpl(), osg::LightBase::executeSyncImpl(), osg::InlineBase::executeSyncImpl(), osg::GroupBase::executeSyncImpl(), osg::DVRVolumeBase::executeSyncImpl(), and osg::DrawableBase::executeSyncImpl(). 00182 { 00183 Inherited::executeSyncImpl(pOther, whichField); 00184 00185 if(FieldBits::NoField != (ParentsFieldMask & whichField)) 00186 { 00187 _parents.syncWith(pOther->_parents); 00188 } 00189 }
|
|
|
Reimplemented in osg::Billboard, osg::InverseTransform, and osg::Transform. Definition at line 224 of file OSGNodeCore.inl.
|
|
|
Reimplemented in osg::Geometry, osg::Slices, osg::Particles, osg::DVRVolume, osg::Surface, osg::Billboard, osg::InverseTransform, osg::ProxyGroup, and osg::Transform. Definition at line 232 of file OSGNodeCore.inl. Referenced by osg::Billboard::adjustVolume().
|
|
|
|
|
||||||||||||
|
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 }
|
|
||||||||||||
|
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 }
|
|
||||||||||||
|
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 }
|
|
||||||||||||
|
Definition at line 57 of file OSGAttachmentContainerImpl.inl. 00060 { 00061 return findAttachment(type.getGroupId(), binding); 00062 }
|
|
|
Definition at line 170 of file OSGAttachmentContainer.cpp. References osg::AttachmentContainer::_attachmentMap. 00171 { 00172 return &_attachmentMap; 00173 }
|
|
||||||||||||