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

osg::GroupBase Class Reference

Group Base Class.

#include <OSGGroupBase.h>

Inheritance diagram for osg::GroupBase:

osg::NodeCore osg::AttachmentContainer osg::FieldContainer osg::Group osg::BillboardBase osg::DistanceLODBase osg::InverseTransformBase osg::MaterialGroupBase osg::MaterialPoolBase osg::ProxyGroupBase osg::SwitchBase osg::TransformBase List of all members.

Sync

*void executeSyncImpl (GroupBase *pOther, const BitVector &whichField)
virtual void executeSync (FieldContainer &other, const BitVector &whichField)

Public Types

typedef GroupPtr Ptr
enum  { ParentsFieldId = Inherited::NextFieldId, NextFieldId = ParentsFieldId + 1 }

Public Member Functions

FieldContainer Get
*virtual FieldContainerTypegetType (void)
virtual const FieldContainerTypegetType (void) const
virtual UInt32 getContainerSize (void) const
Binary Access
*virtual UInt32 getBinSize (const BitVector &whichField)
virtual void copyToBin (BinaryDataHandler &pMem, const BitVector &whichField)
virtual void copyFromBin (BinaryDataHandler &pMem, const BitVector &whichField)
Copy
*virtual FieldContainerPtr shallowCopy (void) const

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 GroupPtr create (void)
 create a new instance of the class
static GroupPtr createEmpty (void)
 create an empty new instance of the class, do not copy the prototype

Static Public Attributes

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

Protected Member Functions

Constructors
GroupBase (void)
 GroupBase (const GroupBase &source)
Destructors
*virtual ~GroupBase (void)

Private Types

typedef NodeCore Inherited

Private Member Functions

void operator= (const GroupBase &source)

Static Private Attributes

static FieldContainerType _type

Friends

class FieldContainer

Detailed Description

Definition at line 80 of file OSGGroupBase.h.


Member Typedef Documentation

typedef NodeCore osg::GroupBase::Inherited [private]
 

Reimplemented from osg::NodeCore.

Reimplemented in osg::Group, osg::Billboard, osg::BillboardBase, osg::ComponentTransform, osg::ComponentTransformBase, osg::DistanceLOD, osg::DistanceLODBase, osg::InverseTransform, osg::InverseTransformBase, osg::MaterialGroup, osg::MaterialGroupBase, osg::MaterialPool, osg::MaterialPoolBase, osg::ProxyGroup, osg::ProxyGroupBase, osg::Switch, osg::SwitchBase, osg::Transform, and osg::TransformBase.

Definition at line 84 of file OSGGroupBase.h.

typedef GroupPtr osg::GroupBase::Ptr
 

Reimplemented in osg::BillboardBase, osg::ComponentTransformBase, osg::DistanceLODBase, osg::InverseTransformBase, osg::MaterialGroupBase, osg::MaterialPoolBase, osg::ProxyGroupBase, osg::SwitchBase, and osg::TransformBase.

Definition at line 89 of file OSGGroupBase.h.


Member Enumeration Documentation

anonymous enum [inherited]
 

Enumerator:
ParentsFieldId 
NextFieldId 

Reimplemented from osg::AttachmentContainer.

Definition at line 87 of file OSGNodeCore.h.

00088     { 
00089         ParentsFieldId     = Inherited::NextFieldId, 
00090         NextFieldId        = ParentsFieldId + 1
00091     };


Constructor & Destructor Documentation

GroupBase::GroupBase void   )  [protected]
 

Definition at line 144 of file OSGGroupBase.cpp.

00144                          :
00145     Inherited() 
00146 {
00147 }

GroupBase::GroupBase const GroupBase source  )  [protected]
 

Definition at line 153 of file OSGGroupBase.cpp.

00153                                             :
00154     Inherited                 (source)
00155 {
00156 }

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

Definition at line 160 of file OSGGroupBase.cpp.

00161 {
00162 }


Member Function Documentation

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

Reimplemented from osg::NodeCore.

Reimplemented in osg::BillboardBase, osg::ComponentTransformBase, osg::DistanceLODBase, osg::InverseTransformBase, osg::MaterialGroupBase, osg::MaterialPoolBase, osg::ProxyGroupBase, osg::SwitchBase, and osg::TransformBase.

Definition at line 58 of file OSGGroupBase.inl.

References _type.

Referenced by create(), osg::VRMLWriteAction::initializeAction(), osg::Group::initMethod(), osg::SplitGraphOp::isGroup(), and osg::MergeGraphOp::isGroup().

00059 {
00060     return _type; 
00061 } 

osg::UInt32 osg::GroupBase::getClassTypeId void   )  [inline, static]
 

Reimplemented from osg::NodeCore.

Reimplemented in osg::BillboardBase, osg::ComponentTransformBase, osg::DistanceLODBase, osg::InverseTransformBase, osg::MaterialGroupBase, osg::MaterialPoolBase, osg::ProxyGroupBase, osg::SwitchBase, and osg::TransformBase.

Definition at line 65 of file OSGGroupBase.inl.

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

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

FieldContainerType & GroupBase::getType void   )  [virtual]
 

Reimplemented from osg::NodeCore.

Reimplemented in osg::BillboardBase, osg::ComponentTransformBase, osg::DistanceLODBase, osg::InverseTransformBase, osg::MaterialGroupBase, osg::MaterialPoolBase, osg::ProxyGroupBase, osg::SwitchBase, and osg::TransformBase.

Definition at line 86 of file OSGGroupBase.cpp.

References _type.

00087 {
00088     return _type; 
00089 } 

const FieldContainerType & GroupBase::getType void   )  const [virtual]
 

Reimplemented from osg::NodeCore.

Reimplemented in osg::BillboardBase, osg::ComponentTransformBase, osg::DistanceLODBase, osg::InverseTransformBase, osg::MaterialGroupBase, osg::MaterialPoolBase, osg::ProxyGroupBase, osg::SwitchBase, and osg::TransformBase.

Definition at line 91 of file OSGGroupBase.cpp.

References _type.

00092 {
00093     return _type;
00094 } 

UInt32 GroupBase::getContainerSize void   )  const [virtual]
 

Reimplemented from osg::NodeCore.

Reimplemented in osg::BillboardBase, osg::ComponentTransformBase, osg::DistanceLODBase, osg::InverseTransformBase, osg::MaterialGroupBase, osg::MaterialPoolBase, osg::ProxyGroupBase, osg::SwitchBase, and osg::TransformBase.

Definition at line 106 of file OSGGroupBase.cpp.

00107 { 
00108     return sizeof(Group); 
00109 }

UInt32 GroupBase::getBinSize const BitVector whichField  )  [virtual]
 

Reimplemented from osg::NodeCore.

Reimplemented in osg::BillboardBase, osg::ComponentTransformBase, osg::DistanceLODBase, osg::InverseTransformBase, osg::MaterialGroupBase, osg::MaterialPoolBase, osg::ProxyGroupBase, osg::SwitchBase, and osg::TransformBase.

Definition at line 166 of file OSGGroupBase.cpp.

References osg::NodeCore::getBinSize().

Referenced by osg::TransformBase::getBinSize(), osg::SwitchBase::getBinSize(), osg::ProxyGroupBase::getBinSize(), osg::MaterialPoolBase::getBinSize(), osg::MaterialGroupBase::getBinSize(), osg::InverseTransformBase::getBinSize(), osg::DistanceLODBase::getBinSize(), and osg::BillboardBase::getBinSize().

00167 {
00168     UInt32 returnValue = Inherited::getBinSize(whichField);
00169 
00170 
00171     return returnValue;
00172 }

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

Reimplemented from osg::NodeCore.

Reimplemented in osg::BillboardBase, osg::ComponentTransformBase, osg::DistanceLODBase, osg::InverseTransformBase, osg::MaterialGroupBase, osg::MaterialPoolBase, osg::ProxyGroupBase, osg::SwitchBase, and osg::TransformBase.

Definition at line 174 of file OSGGroupBase.cpp.

References osg::NodeCore::copyToBin().

Referenced by osg::TransformBase::copyToBin(), osg::SwitchBase::copyToBin(), osg::ProxyGroupBase::copyToBin(), osg::MaterialPoolBase::copyToBin(), osg::MaterialGroupBase::copyToBin(), osg::InverseTransformBase::copyToBin(), osg::DistanceLODBase::copyToBin(), and osg::BillboardBase::copyToBin().

00176 {
00177     Inherited::copyToBin(pMem, whichField);
00178 
00179 
00180 }

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

Reimplemented from osg::NodeCore.

Reimplemented in osg::BillboardBase, osg::ComponentTransformBase, osg::DistanceLODBase, osg::InverseTransformBase, osg::MaterialGroupBase, osg::MaterialPoolBase, osg::ProxyGroupBase, osg::SwitchBase, and osg::TransformBase.

Definition at line 182 of file OSGGroupBase.cpp.

References osg::NodeCore::copyFromBin().

Referenced by osg::TransformBase::copyFromBin(), osg::SwitchBase::copyFromBin(), osg::ProxyGroupBase::copyFromBin(), osg::MaterialPoolBase::copyFromBin(), osg::MaterialGroupBase::copyFromBin(), osg::InverseTransformBase::copyFromBin(), osg::DistanceLODBase::copyFromBin(), and osg::BillboardBase::copyFromBin().

00184 {
00185     Inherited::copyFromBin(pMem, whichField);
00186 
00187 
00188 }

GroupPtr osg::GroupBase::create void   )  [inline, static]
 

Reimplemented in osg::BillboardBase, osg::ComponentTransformBase, osg::DistanceLODBase, osg::InverseTransformBase, osg::MaterialGroupBase, osg::MaterialPoolBase, osg::ProxyGroupBase, osg::SwitchBase, and osg::TransformBase.

Definition at line 72 of file OSGGroupBase.inl.

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

Referenced by osg::VRMLFile::beginNode(), osg::OSGLoader::beginNode(), osg::DisplayCalibration::createCMViewports(), osg::VRMLGeometryPointSetDesc::endNode(), osg::VRMLGeometryDesc::endNode(), osg::VRMLFile::endNode(), osg::OSGLoader::endNode(), osg::VRMLGroupDesc::init(), osg::VRMLNodeDesc::init(), osg::OBJSceneFileType::read(), osg::VerifyGraphOp::repairGeometry(), and osg::VerifyGraphOp::traverseEnter().

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

GroupPtr osg::GroupBase::createEmpty void   )  [inline, static]
 

Reimplemented in osg::BillboardBase, osg::ComponentTransformBase, osg::DistanceLODBase, osg::InverseTransformBase, osg::MaterialGroupBase, osg::MaterialPoolBase, osg::ProxyGroupBase, osg::SwitchBase, and osg::TransformBase.

Definition at line 87 of file OSGGroupBase.inl.

References osg::FieldContainer::newPtr().

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

FieldContainerPtr GroupBase::shallowCopy void   )  const [virtual]
 

Implements osg::FieldContainer.

Reimplemented in osg::BillboardBase, osg::ComponentTransformBase, osg::DistanceLODBase, osg::InverseTransformBase, osg::MaterialGroupBase, osg::MaterialPoolBase, osg::ProxyGroupBase, osg::SwitchBase, and osg::TransformBase.

Definition at line 97 of file OSGGroupBase.cpp.

References osg::FieldContainer::newPtr().

Referenced by create().

00098 { 
00099     GroupPtr returnValue; 
00100 
00101     newPtr(returnValue, dynamic_cast<const Group *>(this)); 
00102 
00103     return returnValue; 
00104 }

void GroupBase::executeSyncImpl GroupBase pOther,
const BitVector whichField
[protected]
 

Definition at line 191 of file OSGGroupBase.cpp.

References osg::NodeCore::executeSyncImpl().

Referenced by executeSync(), osg::TransformBase::executeSyncImpl(), osg::SwitchBase::executeSyncImpl(), osg::ProxyGroupBase::executeSyncImpl(), osg::MaterialPoolBase::executeSyncImpl(), osg::MaterialGroupBase::executeSyncImpl(), osg::InverseTransformBase::executeSyncImpl(), osg::DistanceLODBase::executeSyncImpl(), and osg::BillboardBase::executeSyncImpl().

00193 {
00194 
00195     Inherited::executeSyncImpl(pOther, whichField);
00196 
00197 
00198 }

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

Reimplemented from osg::NodeCore.

Reimplemented in osg::BillboardBase, osg::ComponentTransformBase, osg::DistanceLODBase, osg::InverseTransformBase, osg::MaterialGroupBase, osg::MaterialPoolBase, osg::ProxyGroupBase, osg::SwitchBase, and osg::TransformBase.

Definition at line 113 of file OSGGroupBase.cpp.

References executeSyncImpl().

00115 {
00116     this->executeSyncImpl((GroupBase *) &other, whichField);
00117 }

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

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 NodeCore::dump UInt32  uiIndent = 0,
const BitVector  bvFlags = 0
const [virtual, inherited]
 

Reimplemented from osg::AttachmentContainer.

Reimplemented in osg::Drawable, osg::MaterialDrawable, osg::Geometry, osg::Slices, osg::Particles, osg::DVRGeometry, osg::DVRVolume, osg::Surface, osg::Group, osg::DirectionalLight, osg::Light, osg::LightEnv, osg::PointLight, osg::SpotLight, osg::Billboard, osg::ComponentTransform, osg::DistanceLOD, osg::Inline, osg::InverseTransform, osg::MaterialGroup, osg::MaterialPool, osg::ProxyGroup, osg::StateSortingGroup, osg::Switch, and osg::Transform.

Definition at line 87 of file OSGNodeCore.cpp.

References osg::AttachmentContainer::_attachmentMap, osg::NodeCore::_parents, osg::AttachmentContainer::dump(), osg::FieldContainerPtrBase::getFieldContainerId(), osg::TypeBase::getName(), osg::NodeCore::getPtr(), osg::NodeCore::getType(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::indentLog(), PLOG, and osg::MField< FieldTypeT, fieldNameSpace >::size().

Referenced by osg::StateSortingGroup::dump(), osg::LightEnv::dump(), osg::Light::dump(), and osg::Group::dump().

00089 {
00090     UInt32 i;
00091 
00092     NodeCorePtr thisP = getPtr();
00093 
00094 //    thisP.dump(0, FCDumpFlags::RefCount);
00095 
00096     indentLog(uiIndent, PLOG);
00097 
00098     PLOG << "Core"
00099          << "("
00100          << std::dec
00101          << thisP.getFieldContainerId()
00102          << ") : " << getType().getName()
00103          << " "
00104          << _attachmentMap.getValue().size()
00105          << " attachments | "
00106          << this
00107          << std::endl;
00108 
00109     indentLog(uiIndent, PLOG);
00110     PLOG << "[" << std::endl;
00111 
00112     indentLog(uiIndent + 4, PLOG);
00113     PLOG << "Parents : " << std::endl;
00114 
00115     for(i = 0; i < _parents.size(); i++)
00116     {
00117         indentLog(uiIndent + 4, PLOG);
00118         PLOG << "           " << i << ") " << &(*(_parents[i])) << std::endl;
00119     }
00120 
00121     indentLog(uiIndent, PLOG);
00122     PLOG << "]" << std::endl;
00123 
00124     indentLog(uiIndent, PLOG);
00125     PLOG << "{" << std::endl;
00126 
00127     Inherited::dump(uiIndent, bvFlags);
00128 
00129     indentLog(uiIndent, PLOG);
00130     PLOG << "}" << std::endl;
00131 }

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::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(), 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 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     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]
 

Definition at line 170 of file OSGAttachmentContainer.cpp.

References osg::AttachmentContainer::_attachmentMap.

00171 {
00172     return &_attachmentMap;
00173 }

void AttachmentContainer::changed BitVector  whichField,
UInt32  origin
[virtual, inherited]
 

Reimplemented from osg::FieldContainer.

Reimplemented in osg::ClusterWindow, osg::DisplayCalibration, osg::ImageComposer, osg::MultiDisplayWindow, osg::SortFirstWindow, osg::Node, osg::Image, osg::ChunkMaterial, osg::FresnelMaterial, osg::Material, osg::MultiPassMaterial, osg::PhongMaterial, osg::SimpleMaterial, osg::SimpleTexturedMaterial, osg::Drawable, osg::MaterialDrawable, osg::Geometry, osg::Slices, osg::Particles, osg::DVRAppearance, osg::DVRGeometry, osg::DVRVolume, osg::Surface, osg::Group, osg::DirectionalLight, osg::Light, osg::LightEnv, osg::PointLight, osg::SpotLight, osg::Billboard, osg::ComponentTransform, osg::DistanceLOD, osg::Inline, osg::InverseTransform, osg::MaterialGroup,