Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

osg::Inline Class Reference

#include <OSGInline.h>

Inheritance diagram for osg::Inline:

osg::InlineBase osg::NodeCore osg::AttachmentContainer osg::FieldContainer List of all members.

Public Types

typedef InlinePtr Ptr
enum  { UrlFieldId = Inherited::NextFieldId, LoadedFieldId = UrlFieldId + 1, NextFieldId = LoadedFieldId + 1 }

Public Member Functions

Sync
*virtual void changed (BitVector whichField, UInt32 origin)
Dump
*virtual void dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const
FieldContainer Get
*virtual FieldContainerTypegetType (void)
virtual const FieldContainerTypegetType (void) const
virtual UInt32 getContainerSize (void) const
Field Get
*MFStringgetMFUrl (void)
 Get the Inline::_mfUrl field.
SFBoolgetSFLoaded (void)
 Get the Inline::_sfLoaded field.
bool & getLoaded (void)
 Get the value of the Inline::_sfLoaded field.
const bool & getLoaded (void) const
 Get the value of the Inline::_sfLoaded field.
std::string & getUrl (const UInt32 index)
 Get the value of the index element the Inline::_mfUrl field.
MFStringgetUrl (void)
 Get the Inline::_mfUrl field.
const MFStringgetUrl (void) const
 Get the Inline::_mfUrl field.
Field Set
*void setLoaded (const bool &value)
 Set the value of the Inline::_sfLoaded field.
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

Static Public Member Functions

Class Get
*static FieldContainerTypegetClassType (void)
 access the type of the class
static UInt32 getClassTypeId (void)
 access the numerical type of the class
Construction
*static InlinePtr create (void)
 create a new instance of the class
static InlinePtr createEmpty (void)
 create an empty new instance of the class, do not copy the prototype

Static Public Attributes

static const osg::BitVector UrlFieldMask
static const osg::BitVector LoadedFieldMask
static const osg::BitVector MTInfluenceMask
static const BitVector ParentsFieldMask = (1 << NodeCore::ParentsFieldId )
static const BitVector AttachmentsFieldMask
static const BitVector NextFieldMask

Protected Types

typedef InlineBase Inherited

Protected Member Functions

Draw
*Action::ResultE drawEnter (Action *action)
Action::ResultE drawLeave (Action *action)
Constructors
Inline (void)
 Inline (const Inline &source)
Destructors
*virtual ~Inline (void)
Sync
*void executeSyncImpl (InlineBase *pOther, const BitVector &whichField)
virtual void executeSync (FieldContainer &other, const BitVector &whichField)

Protected Attributes

Fields
*MFString _mfUrl
SFBool _sfLoaded

Private Member Functions

void operator= (const Inline &source)
 prohibit default function (move to 'public' if needed)

Static Private Member Functions

Init
*static void initMethod (void)

Friends

class FieldContainer
class InlineBase

Detailed Description

Definition at line 52 of file OSGInline.h.


Member Typedef Documentation

typedef InlineBase osg::Inline::Inherited [protected]
 

Reimplemented from osg::InlineBase.

Definition at line 76 of file OSGInline.h.

typedef InlinePtr osg::InlineBase::Ptr [inherited]
 

Definition at line 91 of file OSGInlineBase.h.


Member Enumeration Documentation

anonymous enum [inherited]
 

Enumerator:
UrlFieldId 
LoadedFieldId 
NextFieldId 

Reimplemented from osg::NodeCore.

Definition at line 93 of file OSGInlineBase.h.

00094     {
00095         UrlFieldId    = Inherited::NextFieldId,
00096         LoadedFieldId = UrlFieldId    + 1,
00097         NextFieldId   = LoadedFieldId + 1
00098     };


Constructor & Destructor Documentation

Inline::Inline void   )  [protected]
 

Definition at line 72 of file OSGInline.cpp.

00072                    :
00073     Inherited()
00074 {
00075 }

Inline::Inline const Inline source  )  [protected]
 

Definition at line 77 of file OSGInline.cpp.

00077                                    :
00078     Inherited(source)
00079 {
00080 }

Inline::~Inline void   )  [protected, virtual]
 

Definition at line 85 of file OSGInline.cpp.

00086 {
00087 }


Member Function Documentation

void Inline::changed BitVector  whichField,
UInt32  origin
[virtual]
 

Reimplemented from osg::AttachmentContainer.

Definition at line 55 of file OSGInline.cpp.

References osg::AttachmentContainer::changed().

00056 {
00057     Inherited::changed(whichField, origin);
00058 }

void Inline::dump UInt32  uiIndent = 0,
const BitVector  bvFlags = 0
const [virtual]
 

Reimplemented from osg::NodeCore.

Definition at line 63 of file OSGInline.cpp.

References SLOG.

00065 {
00066     SLOG << "Dump Inline NI" << std::endl;
00067 }

Action::ResultE Inline::drawEnter Action action  )  [protected]
 

Definition at line 92 of file OSGInline.cpp.

References osg::Action::Continue, osg::DrawActionBase::selectVisibles(), and osg::Action::Skip.

Referenced by initMethod().

00093 {
00094     DrawAction *da = dynamic_cast<DrawAction *>(action);
00095 
00096     if(da->selectVisibles() == 0)
00097         return Action::Skip;
00098     
00099     return Action::Continue;
00100 }

Action::ResultE Inline::drawLeave Action action  )  [protected]
 

Definition at line 102 of file OSGInline.cpp.

References osg::Action::Continue.

Referenced by initMethod().

00103 {
00104     return Action::Continue;
00105 }

void Inline::initMethod void   )  [static, private]
 

Definition at line 110 of file OSGInline.cpp.

References drawEnter(), drawLeave(), osg::InlineBase::getClassType(), osg::osgTypedMethodFunctor2BaseCPtrRef(), osg::DrawAction::registerEnterDefault(), and osg::DrawAction::registerLeaveDefault().

void osg::Inline::operator= const Inline source  )  [private]
 

osg::FieldContainerType & osg::InlineBase::getClassType void   )  [inline, static, inherited]
 

Reimplemented from osg::NodeCore.

Definition at line 58 of file OSGInlineBase.inl.

References osg::InlineBase::_type.

Referenced by osg::InlineBase::create(), and initMethod().

00059 {
00060     return _type; 
00061 } 

osg::UInt32 osg::InlineBase::getClassTypeId void   )  [inline, static, inherited]
 

Reimplemented from osg::NodeCore.

Definition at line 65 of file OSGInlineBase.inl.

References osg::InlineBase::_type, and osg::TypeBase::getId().

00066 {
00067     return _type.getId(); 
00068 } 

FieldContainerType & InlineBase::getType void   )  [virtual, inherited]
 

Reimplemented from osg::NodeCore.

Definition at line 117 of file OSGInlineBase.cpp.

References osg::InlineBase::_type.

00118 {
00119     return _type; 
00120 } 

const FieldContainerType & InlineBase::getType void   )  const [virtual, inherited]
 

Reimplemented from osg::NodeCore.

Definition at line 122 of file OSGInlineBase.cpp.

References osg::InlineBase::_type.

00123 {
00124     return _type;
00125 } 

UInt32 InlineBase::getContainerSize void   )  const [virtual, inherited]
 

Reimplemented from osg::NodeCore.

Definition at line 137 of file OSGInlineBase.cpp.

00138 { 
00139     return sizeof(Inline); 
00140 }

MFString * osg::InlineBase::getMFUrl void   )  [inline, inherited]
 

Definition at line 101 of file OSGInlineBase.inl.

References osg::InlineBase::_mfUrl.

00102 {
00103     return &_mfUrl;
00104 }

SFBool * osg::InlineBase::getSFLoaded void   )  [inline, inherited]
 

Definition at line 108 of file OSGInlineBase.inl.

References osg::InlineBase::_sfLoaded.

00109 {
00110     return &_sfLoaded;
00111 }

bool & osg::InlineBase::getLoaded void   )  [inline, inherited]
 

Definition at line 116 of file OSGInlineBase.inl.

References osg::InlineBase::_sfLoaded, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00117 {
00118     return _sfLoaded.getValue();
00119 }

const bool & osg::InlineBase::getLoaded void   )  const [inline, inherited]
 

Definition at line 123 of file OSGInlineBase.inl.

References osg::InlineBase::_sfLoaded, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00124 {
00125     return _sfLoaded.getValue();
00126 }

std::string & osg::InlineBase::getUrl const UInt32  index  )  [inline, inherited]
 

Definition at line 138 of file OSGInlineBase.inl.

References osg::InlineBase::_mfUrl.

00139 {
00140     return _mfUrl[index];
00141 }

MFString & osg::InlineBase::getUrl void   )  [inline, inherited]
 

Definition at line 145 of file OSGInlineBase.inl.

References osg::InlineBase::_mfUrl.

00146 {
00147     return _mfUrl;
00148 }

const MFString & osg::InlineBase::getUrl void   )  const [inline, inherited]
 

Definition at line 152 of file OSGInlineBase.inl.

References osg::InlineBase::_mfUrl.

00153 {
00154     return _mfUrl;
00155 }

void osg::InlineBase::setLoaded const bool &  value  )  [inline, inherited]
 

Definition at line 130 of file OSGInlineBase.inl.

References osg::InlineBase::_sfLoaded, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00131 {
00132     _sfLoaded.setValue(value);
00133 }

UInt32 InlineBase::getBinSize const BitVector whichField  )  [virtual, inherited]
 

Reimplemented from osg::NodeCore.

Definition at line 202 of file OSGInlineBase.cpp.

References osg::InlineBase::_mfUrl, osg::InlineBase::_sfLoaded, osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::MField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::NodeCore::getBinSize(), osg::InlineBase::LoadedFieldMask, osg::FieldBits::NoField, and osg::InlineBase::UrlFieldMask.

00203 {
00204     UInt32 returnValue = Inherited::getBinSize(whichField);
00205 
00206     if(FieldBits::NoField != (UrlFieldMask & whichField))
00207     {
00208         returnValue += _mfUrl.getBinSize();
00209     }
00210 
00211     if(FieldBits::NoField != (LoadedFieldMask & whichField))
00212     {
00213         returnValue += _sfLoaded.getBinSize();
00214     }
00215 
00216 
00217     return returnValue;
00218 }

void InlineBase::copyToBin BinaryDataHandler pMem,
const BitVector whichField
[virtual, inherited]
 

Reimplemented from osg::NodeCore.

Definition at line 220 of file OSGInlineBase.cpp.

References osg::InlineBase::_mfUrl, osg::InlineBase::_sfLoaded, osg::SField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::MField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::NodeCore::copyToBin(), osg::InlineBase::LoadedFieldMask, osg::FieldBits::NoField, and osg::InlineBase::UrlFieldMask.

00222 {
00223     Inherited::copyToBin(pMem, whichField);
00224 
00225     if(FieldBits::NoField != (UrlFieldMask & whichField))
00226     {
00227         _mfUrl.copyToBin(pMem);
00228     }
00229 
00230     if(FieldBits::NoField != (LoadedFieldMask & whichField))
00231     {
00232         _sfLoaded.copyToBin(pMem);
00233     }
00234 
00235 
00236 }

void InlineBase::copyFromBin BinaryDataHandler pMem,
const BitVector whichField
[virtual, inherited]
 

Reimplemented from osg::NodeCore.

Definition at line 238 of file OSGInlineBase.cpp.

References osg::InlineBase::_mfUrl, osg::InlineBase::_sfLoaded, osg::SField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::MField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::NodeCore::copyFromBin(), osg::InlineBase::LoadedFieldMask, osg::FieldBits::NoField, and osg::InlineBase::UrlFieldMask.

00240 {
00241     Inherited::copyFromBin(pMem, whichField);
00242 
00243     if(FieldBits::NoField != (UrlFieldMask & whichField))
00244     {
00245         _mfUrl.copyFromBin(pMem);
00246     }
00247 
00248     if(FieldBits::NoField != (LoadedFieldMask & whichField))
00249     {
00250         _sfLoaded.copyFromBin(pMem);
00251     }
00252 
00253 
00254 }

InlinePtr osg::InlineBase::create void   )  [inline, static, inherited]
 

Definition at line 72 of file OSGInlineBase.inl.

References osg::AttachmentContainerPtr::dcast(), osg::InlineBase::getClassType(), osg::FieldContainerType::getPrototype(), osg::NullFC, and osg::InlineBase::shallowCopy().

Referenced by osg::VRMLInlineDesc::init().

00073 {
00074     InlinePtr fc; 
00075 
00076     if(getClassType().getPrototype() != OSG::NullFC) 
00077     {
00078         fc = InlinePtr::dcast(
00079             getClassType().getPrototype()-> shallowCopy()); 
00080     }
00081     
00082     return fc; 
00083 }

InlinePtr osg::InlineBase::createEmpty void   )  [inline, static, inherited]
 

Definition at line 87 of file OSGInlineBase.inl.

References osg::FieldContainer::newPtr().

00088 { 
00089     InlinePtr returnValue; 
00090     
00091     newPtr(returnValue); 
00092 
00093     return returnValue; 
00094 }

FieldContainerPtr InlineBase::shallowCopy void   )  const [virtual, inherited]
 

Implements osg::FieldContainer.

Definition at line 128 of file OSGInlineBase.cpp.

References osg::FieldContainer::newPtr().

Referenced by osg::InlineBase::create().

00129 { 
00130     InlinePtr returnValue; 
00131 
00132     newPtr(returnValue, dynamic_cast<const Inline *>(this)); 
00133 
00134     return returnValue; 
00135 }

void InlineBase::executeSyncImpl InlineBase pOther,
const BitVector whichField
[protected, inherited]
 

Definition at line 257 of file OSGInlineBase.cpp.

References osg::InlineBase::_mfUrl, osg::InlineBase::_sfLoaded, osg::NodeCore::executeSyncImpl(), osg::InlineBase::LoadedFieldMask, osg::FieldBits::NoField, osg::SField< FieldTypeT, fieldNameSpace >::syncWith(), osg::MField< FieldTypeT, fieldNameSpace >::syncWith(), and osg::InlineBase::UrlFieldMask.

Referenced by osg::InlineBase::executeSync().

00259 {
00260 
00261     Inherited::executeSyncImpl(pOther, whichField);
00262 
00263     if(FieldBits::NoField != (UrlFieldMask & whichField))
00264         _mfUrl.syncWith(pOther->_mfUrl);
00265 
00266     if(FieldBits::NoField != (LoadedFieldMask & whichField))
00267         _sfLoaded.syncWith(pOther->_sfLoaded);
00268 
00269 
00270 }

void osg::NodeCore::executeSyncImpl NodeCore pOther,
const BitVector whichField
[inline, protected, inherited]
 

Definition at line 180 of file OSGNodeCore.inl.

References osg::NodeCore::_parents, osg::AttachmentContainer::executeSyncImpl(), osg::FieldBits::NoField, osg::NodeCore::ParentsFieldMask, and osg::MField< FieldTypeT, fieldNameSpace >::syncWith().

Referenced by osg::NodeCore::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 }

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(), osg::Node::executeSyncImpl(), osg::NodeCore::executeSyncImpl(), osg::MaterialBase::executeSyncImpl(), osg::ImageComposerBase::executeSyncImpl(), osg::ImageBase::executeSyncImpl(), osg::ForegroundBase::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().

00335 {
00336 }

void InlineBase::executeSync FieldContainer other,
const BitVector whichField
[protected, virtual, inherited]
 

Reimplemented from osg::NodeCore.

Definition at line 144 of file OSGInlineBase.cpp.

References osg::InlineBase::executeSyncImpl().

00146 {
00147     this->executeSyncImpl((InlineBase *) &other, whichField);
00148 }

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::Transform::changed().

00238 {
00239     for(UInt32 i = 0; i < _parents.size(); i++)
00240     {
00241         _parents[i]->invalidateVolume();
00242     }
00243 }

void osg::NodeCore::onDestroy void   )  [inline, protected, virtual, inherited]
 

Reimplemented from osg::FieldContainer.

Reimplemented in osg::MaterialPool.

Definition at line 142 of file OSGNodeCore.inl.

00143 {
00144 }

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 osg::MaterialPool::add(), osg::NodeCore::dump(), and osg::MaterialPool::sub().

00171 {
00172     return NodeCorePtr(*this);
00173 }

AttachmentContainerPtr AttachmentContainer::getPtr void   )  [protected, inherited]
 

Definition at line 352 of file OSGAttachmentContainer.cpp.

Referenced by osg::AttachmentContainer::subAttachment(), and osg::AttachmentContainer::~AttachmentContainer().

00353 {
00354     return AttachmentContainerPtr(*this);
00355 }

void osg::NodeCore::accumulateMatrix Matrix result  )  [inline, protected, virtual, inherited]
 

Reimplemented in osg::Billboard, osg::InverseTransform, and osg::Transform.

Definition at line 224 of file OSGNodeCore.inl.

00225 {
00226 }

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, and osg::Transform.

Definition at line 232 of file OSGNodeCore.inl.

Referenced by osg::Billboard::adjustVolume().

00233 {
00234 }

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