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

osg::MaterialDrawable Class Reference

*put brief class description here*

#include <OSGMaterialDrawable.h>

Inheritance diagram for osg::MaterialDrawable:

osg::MaterialDrawableBase osg::Drawable osg::DrawableBase osg::NodeCore osg::AttachmentContainer osg::FieldContainer osg::GeometryBase osg::ParticlesBase osg::SlicesBase osg::Geometry osg::Particles osg::Slices osg::DVRGeometryBase osg::SurfaceBase osg::DVRGeometry osg::Surface List of all members.

Public Types

typedef MaterialDrawablePtr Ptr
enum  { MaterialFieldId = Inherited::NextFieldId, NextFieldId = MaterialFieldId + 1 }

Public Member Functions

action handler
*virtual Action::ResultE drawPrimitives (DrawActionBase *action)
 initialize the static features of the class, e.g. action callbacks
Action::ResultE drawActionHandler (Action *action)
 initialize the static features of the class, e.g. action callbacks
Action::ResultE renderActionHandler (Action *action)
 initialize the static features of the class, e.g. action callbacks
Sync
*virtual void changed (BitVector whichField, UInt32 origin)
 react to field changes
Output
*virtual void dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const
 output the instance for debug purposes
Field Set
*void setMaterial (const MaterialPtr &value)
 Set the value of the MaterialDrawable::_sfMaterial field.
FieldContainer Get
*virtual FieldContainerTypegetType (void)
virtual const FieldContainerTypegetType (void) const
virtual UInt32 getContainerSize (void) const
Field Get
*SFMaterialPtrgetSFMaterial (void)
 Get the MaterialDrawable::_sfMaterial field.
MaterialPtrgetMaterial (void)
 Get the value of the MaterialDrawable::_sfMaterial field.
const MaterialPtrgetMaterial (void) const
 Get the value of the MaterialDrawable::_sfMaterial 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)
Clone
*virtual FieldContainerPtr shallowCopy (void) const =0

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

Static Public Attributes

static const osg::BitVector MaterialFieldMask
static const osg::BitVector MTInfluenceMask
static const BitVector ParentsFieldMask = (1 << NodeCore::ParentsFieldId )
static const BitVector AttachmentsFieldMask
static const BitVector NextFieldMask
static stat elem
*static StatElemDesc< StatIntElemstatNTriangles
static StatElemDesc< StatIntElemstatNLines
static StatElemDesc< StatIntElemstatNPoints
static StatElemDesc< StatIntElemstatNVertices
static StatElemDesc< StatIntElemstatNPrimitives

Protected Member Functions

Constructors
MaterialDrawable (void)
 Constructor.
 MaterialDrawable (const MaterialDrawable &source)
 Copy Constructor.
Destructors
*virtual ~MaterialDrawable (void)
 Destructor.
Sync
*void executeSyncImpl (MaterialDrawableBase *pOther, const BitVector &whichField)
virtual void executeSync (FieldContainer &other, const BitVector &whichField)
Sync
*void executeSyncImpl (DrawableBase *pOther, const BitVector &whichField)

Protected Attributes

Fields
*SFMaterialPtr _sfMaterial

Private Types

typedef MaterialDrawableBase Inherited

Private Member Functions

void operator= (const MaterialDrawable &source)

Static Private Member Functions

static void initMethod (void)
 initialize the static features of the class, e.g. action callbacks

Friends

class FieldContainer
class MaterialDrawableBase

Detailed Description

Definition at line 57 of file OSGMaterialDrawable.h.


Member Typedef Documentation

typedef MaterialDrawableBase osg::MaterialDrawable::Inherited [private]
 

Reimplemented from osg::MaterialDrawableBase.

Reimplemented in osg::Geometry, osg::GeometryBase, osg::Slices, osg::SlicesBase, osg::Particles, osg::ParticlesBase, osg::DVRGeometry, osg::DVRGeometryBase, osg::Surface, and osg::SurfaceBase.

Definition at line 61 of file OSGMaterialDrawable.h.

typedef MaterialDrawablePtr osg::MaterialDrawableBase::Ptr [inherited]
 

Reimplemented from osg::DrawableBase.

Reimplemented in osg::GeometryBase, osg::SlicesBase, osg::ParticlesBase, osg::DVRGeometryBase, and osg::SurfaceBase.

Definition at line 90 of file OSGMaterialDrawableBase.h.


Member Enumeration Documentation

anonymous enum [inherited]
 

Enumerator:
MaterialFieldId 
NextFieldId 

Reimplemented from osg::NodeCore.

Definition at line 92 of file OSGMaterialDrawableBase.h.

00093     {
00094         MaterialFieldId = Inherited::NextFieldId,
00095         NextFieldId     = MaterialFieldId + 1
00096     };


Constructor & Destructor Documentation

MaterialDrawable::MaterialDrawable void   )  [protected]
 

Definition at line 65 of file OSGMaterialDrawable.cpp.

00065                                        :
00066     Inherited()
00067 {
00068 }

MaterialDrawable::MaterialDrawable const MaterialDrawable source  )  [protected]
 

Definition at line 72 of file OSGMaterialDrawable.cpp.

00072                                                                  :
00073     Inherited(source)
00074 {
00075 }

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

Definition at line 79 of file OSGMaterialDrawable.cpp.

00080 {
00081 }


Member Function Documentation

Action::ResultE MaterialDrawable::drawPrimitives DrawActionBase action  )  [virtual]
 

Reimplemented in osg::Geometry, osg::Slices, osg::Particles, and osg::Surface.

Definition at line 87 of file OSGMaterialDrawable.cpp.

References osg::Action::Continue, and FWARNING.

Referenced by drawActionHandler(), and renderActionHandler().

00088 {
00089   FWARNING (("You should overload drawPrimitives in your code\n"));
00090 
00091   return Action::Continue;
00092 }

Action::ResultE MaterialDrawable::drawActionHandler Action action  ) 
 

Definition at line 122 of file OSGMaterialDrawable.cpp.

References osg::Action::Continue, osg::Material::draw(), osg::Material::DrawFunctor, drawPrimitives(), FWARNING, osg::getDefaultMaterial(), osg::MaterialDrawableBase::getMaterial(), osg::DrawActionBase::getMaterial(), osg::NullFC, and osg::osgTypedMethodFunctor1ObjPtr().

Referenced by osg::Surface::initMethod(), osg::Slices::initMethod(), osg::Particles::initMethod(), and osg::Geometry::initMethod().

00123 {
00124     DrawAction *a = dynamic_cast<DrawAction*>(action);
00125     Material::DrawFunctor func;
00126 
00127     func=osgTypedMethodFunctor1ObjPtr(&(*this), 
00128                                       &MaterialDrawable::drawPrimitives);
00129 
00130     if(a->getMaterial() != NULL)
00131     {
00132         a->getMaterial()->draw(func, a);
00133     }
00134     else if ( getMaterial() != NullFC )
00135     {
00136         getMaterial()->draw( func, a );
00137     }
00138     else
00139     {
00140         getDefaultMaterial()->draw( func, a );
00141         FWARNING(("MaterialDrawable::draw:: no material!\n"));;
00142     }
00143     return Action::Continue;
00144 }

Action::ResultE MaterialDrawable::renderActionHandler Action action  ) 
 

Definition at line 94 of file OSGMaterialDrawable.cpp.

References osg::Action::Continue, osg::Material::DrawFunctor, drawPrimitives(), osg::RenderAction::dropFunctor(), FNOTICE, osg::AttachmentContainerPtr::getCPtr(), osg::getDefaultMaterial(), osg::MaterialDrawableBase::getMaterial(), osg::DrawActionBase::getMaterial(), osg::NullFC, and osg::osgTypedMethodFunctor1ObjPtr().

Referenced by osg::Surface::initMethod(), osg::Slices::initMethod(), osg::Particles::initMethod(), and osg::Geometry::initMethod().

00095 {
00096     RenderAction *a = dynamic_cast<RenderAction *>(action);
00097 
00098     Material::DrawFunctor func;
00099     func = osgTypedMethodFunctor1ObjPtr(this, 
00100                                         &MaterialDrawable::drawPrimitives);
00101 
00102     Material* m = a->getMaterial();
00103 
00104     if(m == NULL)
00105     {
00106         if(getMaterial() != NullFC)
00107         {
00108             m = getMaterial().getCPtr();
00109         }
00110         else
00111         {
00112             m = getDefaultMaterial().getCPtr();
00113             FNOTICE(("MaterialDrawable::render: no Material!?!\n"));
00114         }
00115     }
00116 
00117     a->dropFunctor(func, m);
00118 
00119     return Action::Continue;
00120 }

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

Reimplemented from osg::Drawable.

Reimplemented in osg::Geometry, osg::Slices, osg::Particles, osg::DVRGeometry, and osg::Surface.

Definition at line 153 of file OSGMaterialDrawable.cpp.

References osg::Drawable::changed().

Referenced by osg::Particles::changed(), and osg::Geometry::changed().

00154 {
00155     Inherited::changed(whichField, origin);
00156 }

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

Reimplemented from osg::Drawable.

Reimplemented in osg::Geometry, osg::Slices, osg::Particles, osg::DVRGeometry, and osg::Surface.

Definition at line 160 of file OSGMaterialDrawable.cpp.

References SLOG.

00162 {
00163     SLOG << "Dump MaterialDrawable NI" << std::endl;
00164 }

void osg::MaterialDrawable::setMaterial const MaterialPtr value  )  [inline]
 

Reimplemented from osg::MaterialDrawableBase.

Reimplemented in osg::Geometry, osg::Slices, and osg::Particles.

Definition at line 46 of file OSGMaterialDrawable.inl.

References osg::MaterialDrawableBase::_sfMaterial, osg::SField< FieldTypeT, fieldNameSpace >::getValue(), and osg::setRefdCP().

00047 {
00048     setRefdCP(_sfMaterial.getValue(), value);
00049 }

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

Reimplemented from osg::Drawable.

Reimplemented in osg::Geometry, osg::Slices, osg::Particles, osg::DVRGeometry, and osg::Surface.

Definition at line 147 of file OSGMaterialDrawable.cpp.

00148 {
00149 }

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

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

Reimplemented from osg::DrawableBase.

Reimplemented in osg::GeometryBase, osg::SlicesBase, osg::ParticlesBase, osg::DVRGeometryBase, and osg::SurfaceBase.

Definition at line 58 of file OSGMaterialDrawableBase.inl.

References osg::MaterialDrawableBase::_type.

00059 {
00060     return _type; 
00061 } 

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

Reimplemented from osg::DrawableBase.

Reimplemented in osg::GeometryBase, osg::SlicesBase, osg::ParticlesBase, osg::DVRGeometryBase, and osg::SurfaceBase.

Definition at line 65 of file OSGMaterialDrawableBase.inl.

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

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

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

Reimplemented from osg::DrawableBase.

Reimplemented in osg::GeometryBase, osg::SlicesBase, osg::ParticlesBase, osg::DVRGeometryBase, and osg::SurfaceBase.

Definition at line 106 of file OSGMaterialDrawableBase.cpp.

References osg::MaterialDrawableBase::_type.

00107 {
00108     return _type; 
00109 } 

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

Reimplemented from osg::DrawableBase.

Reimplemented in osg::GeometryBase, osg::SlicesBase, osg::ParticlesBase, osg::DVRGeometryBase, and osg::SurfaceBase.

Definition at line 111 of file OSGMaterialDrawableBase.cpp.

References osg::MaterialDrawableBase::_type.

00112 {
00113     return _type;
00114 } 

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

Reimplemented from osg::DrawableBase.

Reimplemented in osg::GeometryBase, osg::SlicesBase, osg::ParticlesBase, osg::DVRGeometryBase, and osg::SurfaceBase.

Definition at line 117 of file OSGMaterialDrawableBase.cpp.

00118 { 
00119     return sizeof(MaterialDrawable); 
00120 }

SFMaterialPtr * osg::MaterialDrawableBase::getSFMaterial void   )  [inline, inherited]
 

Definition at line 75 of file OSGMaterialDrawableBase.inl.

References osg::MaterialDrawableBase::_sfMaterial.

00076 {
00077     return &_sfMaterial;
00078 }

MaterialPtr & osg::MaterialDrawableBase::getMaterial void   )  [inline, inherited]
 

Definition at line 83 of file OSGMaterialDrawableBase.inl.

References osg::MaterialDrawableBase::_sfMaterial, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by osg::Surface::buildSurface(), osg::Surface::clone(), osg::Geometry::clone(), drawActionHandler(), osg::RenderAction::dropGeometry(), osg::Geometry::dump(), osg::Geometry::MergeIndex(), and renderActionHandler().

00084 {
00085     return _sfMaterial.getValue();
00086 }

const MaterialPtr & osg::MaterialDrawableBase::getMaterial void   )  const [inline, inherited]
 

Definition at line 90 of file OSGMaterialDrawableBase.inl.

References osg::MaterialDrawableBase::_sfMaterial, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00091 {
00092     return _sfMaterial.getValue();
00093 }

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

Reimplemented from osg::DrawableBase.

Reimplemented in osg::GeometryBase, osg::SlicesBase, osg::ParticlesBase, osg::DVRGeometryBase, and osg::SurfaceBase.

Definition at line 179 of file OSGMaterialDrawableBase.cpp.

References osg::MaterialDrawableBase::_sfMaterial, osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::DrawableBase::getBinSize(), osg::MaterialDrawableBase::MaterialFieldMask, and osg::FieldBits::NoField.

Referenced by osg::SlicesBase::getBinSize(), osg::ParticlesBase::getBinSize(), and osg::GeometryBase::getBinSize().

00180 {
00181     UInt32 returnValue = Inherited::getBinSize(whichField);
00182 
00183     if(FieldBits::NoField != (MaterialFieldMask & whichField))
00184     {
00185         returnValue += _sfMaterial.getBinSize();
00186     }
00187 
00188 
00189     return returnValue;
00190 }

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

Reimplemented from osg::DrawableBase.

Reimplemented in osg::GeometryBase, osg::SlicesBase, osg::ParticlesBase, osg::DVRGeometryBase, and osg::SurfaceBase.

Definition at line 192 of file OSGMaterialDrawableBase.cpp.

References osg::MaterialDrawableBase::_sfMaterial, osg::SField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::DrawableBase::copyToBin(), osg::MaterialDrawableBase::MaterialFieldMask, and osg::FieldBits::NoField.

Referenced by osg::SlicesBase::copyToBin(), osg::ParticlesBase::copyToBin(), and osg::GeometryBase::copyToBin().

00194 {
00195     Inherited::copyToBin(pMem, whichField);
00196 
00197     if(FieldBits::NoField != (MaterialFieldMask & whichField))
00198     {
00199         _sfMaterial.copyToBin(pMem);
00200     }
00201 
00202 
00203 }

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

Reimplemented from osg::DrawableBase.

Reimplemented in osg::GeometryBase, osg::SlicesBase, osg::ParticlesBase, osg::DVRGeometryBase, and osg::SurfaceBase.

Definition at line 205 of file OSGMaterialDrawableBase.cpp.

References osg::MaterialDrawableBase::_sfMaterial, osg::SField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::DrawableBase::copyFromBin(), osg::MaterialDrawableBase::MaterialFieldMask, and osg::FieldBits::NoField.

Referenced by osg::SlicesBase::copyFromBin(), osg::ParticlesBase::copyFromBin(), and osg::GeometryBase::copyFromBin().

00207 {
00208     Inherited::copyFromBin(pMem, whichField);
00209 
00210     if(FieldBits::NoField != (MaterialFieldMask & whichField))
00211     {
00212         _sfMaterial.copyFromBin(pMem);
00213     }
00214 
00215 
00216 }

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

Definition at line 219 of file OSGMaterialDrawableBase.cpp.

References osg::MaterialDrawableBase::_sfMaterial, osg::DrawableBase::executeSyncImpl(), osg::MaterialDrawableBase::MaterialFieldMask, osg::FieldBits::NoField, and osg::SField< FieldTypeT, fieldNameSpace >::syncWith().

Referenced by osg::MaterialDrawableBase::executeSync(), osg::SlicesBase::executeSyncImpl(), osg::ParticlesBase::executeSyncImpl(), and osg::GeometryBase::executeSyncImpl().

00221 {
00222 
00223     Inherited::executeSyncImpl(pOther, whichField);
00224 
00225     if(FieldBits::NoField != (MaterialFieldMask & whichField))
00226         _sfMaterial.syncWith(pOther->_sfMaterial);
00227 
00228 
00229 }

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

Definition at line 182 of file OSGDrawableBase.cpp.

References osg::NodeCore::executeSyncImpl().

Referenced by osg::DrawableBase::executeSync(), and osg::MaterialDrawableBase::executeSyncImpl().

00184 {
00185 
00186     Inherited::executeSyncImpl(pOther, whichField);
00187 
00188 
00189 }

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 MaterialDrawableBase::executeSync FieldContainer other,
const BitVector whichField
[protected, virtual, inherited]
 

Reimplemented from osg::DrawableBase.

Reimplemented in osg::GeometryBase, osg::SlicesBase, osg::ParticlesBase, osg::DVRGeometryBase, and osg::SurfaceBase.

Definition at line 124 of file OSGMaterialDrawableBase.cpp.

References osg::MaterialDrawableBase::executeSyncImpl().

00126 {
00127     this->executeSyncImpl((MaterialDrawableBase *) &other, whichField);
00128 }

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