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

osg::ShaderParameter Class Reference

ShaderParameter class. See PageSystemShaderParameter for a description.

#include <OSGShaderParameter.h>

Inheritance diagram for osg::ShaderParameter:

osg::ShaderParameterBase osg::AttachmentContainer osg::FieldContainer osg::ShaderParameterBoolBase osg::ShaderParameterIntBase osg::ShaderParameterMatrixBase osg::ShaderParameterRealBase osg::ShaderParameterStringBase osg::ShaderParameterVec2fBase osg::ShaderParameterVec3fBase osg::ShaderParameterVec4fBase List of all members.

TypeId's

enum  SHPType {
  SHPTypeUnknown = 0, SHPTypeBool, SHPTypeInt, SHPTypeReal,
  SHPTypeVec2s, SHPTypeVec3s, SHPTypeVec4s, SHPTypeVec2f,
  SHPTypeVec3f, SHPTypeVec4f, SHPTypeMatrix, SHPTypeString
}
SHPType getTypeId (void)

Output

*virtual void dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const
bool hasChanged (void)
void resetChanged (void)

Destructors

*virtual ~ShaderParameter (void)
void setTypeId (SHPType type)
void setChanged (void)

Sync

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

Public Types

typedef ShaderParameterPtr Ptr
enum  { NameFieldId = Inherited::NextFieldId, NextFieldId = NameFieldId + 1 }

Public Member Functions

Clone
*virtual FieldContainerPtr shallowCopy (void) const =0
Clone
*virtual FieldContainerPtr shallowCopy (void) const =0
Sync
*virtual void changed (BitVector whichField, UInt32 origin)
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)
Clone
*virtual FieldContainerPtr shallowCopy (void) const =0
Clone
*virtual FieldContainerPtr shallowCopy (void) const =0
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 NameFieldMask
static const osg::BitVector MTInfluenceMask
static const BitVector AttachmentsFieldMask
static const BitVector NextFieldMask

Protected Member Functions

Constructors
ShaderParameter (void)
 ShaderParameter (const ShaderParameter &source)

Private Types

typedef ShaderParameterBase Inherited

Private Member Functions

void operator= (const ShaderParameter &source)

Static Private Member Functions

static void initMethod (void)

Private Attributes

bool _changed
SHPType _typeid

Friends

class FieldContainer
class ShaderParameterBase

Detailed Description

Definition at line 55 of file OSGShaderParameter.h.


Member Typedef Documentation

typedef ShaderParameterBase osg::ShaderParameter::Inherited [private]
 

Reimplemented from osg::ShaderParameterBase.

Reimplemented in osg::ShaderParameterBool, osg::ShaderParameterBoolBase, osg::ShaderParameterInt, osg::ShaderParameterIntBase, osg::ShaderParameterMatrix, osg::ShaderParameterMatrixBase, osg::ShaderParameterReal, osg::ShaderParameterRealBase, osg::ShaderParameterString, osg::ShaderParameterStringBase, osg::ShaderParameterVec2f, osg::ShaderParameterVec2fBase, osg::ShaderParameterVec3f, osg::ShaderParameterVec3fBase, osg::ShaderParameterVec4f, and osg::ShaderParameterVec4fBase.

Definition at line 59 of file OSGShaderParameter.h.

typedef ShaderParameterPtr osg::ShaderParameterBase::Ptr [inherited]
 

Reimplemented in osg::ShaderParameterBoolBase, osg::ShaderParameterIntBase, osg::ShaderParameterMatrixBase, osg::ShaderParameterRealBase, osg::ShaderParameterStringBase, osg::ShaderParameterVec2fBase, osg::ShaderParameterVec3fBase, and osg::ShaderParameterVec4fBase.

Definition at line 90 of file OSGShaderParameterBase.h.


Member Enumeration Documentation

enum osg::ShaderParameter::SHPType
 

Enumerator:
SHPTypeUnknown 
SHPTypeBool 
SHPTypeInt 
SHPTypeReal 
SHPTypeVec2s 
SHPTypeVec3s 
SHPTypeVec4s 
SHPTypeVec2f 
SHPTypeVec3f 
SHPTypeVec4f 
SHPTypeMatrix 
SHPTypeString 

Definition at line 87 of file OSGShaderParameter.h.

00088     {
00089         SHPTypeUnknown = 0,
00090         SHPTypeBool,
00091         SHPTypeInt,
00092         SHPTypeReal,
00093         SHPTypeVec2s,
00094         SHPTypeVec3s,
00095         SHPTypeVec4s,
00096         SHPTypeVec2f,
00097         SHPTypeVec3f,
00098         SHPTypeVec4f,
00099         SHPTypeMatrix,
00100         SHPTypeString
00101     };

anonymous enum [inherited]
 

Enumerator:
NameFieldId 
NextFieldId 

Reimplemented from osg::AttachmentContainer.

Definition at line 92 of file OSGShaderParameterBase.h.

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


Constructor & Destructor Documentation

ShaderParameter::ShaderParameter void   )  [protected]
 

Definition at line 83 of file OSGShaderParameter.cpp.

00083                                      :
00084     Inherited(),
00085     _changed(false),
00086     _typeid(SHPTypeUnknown)
00087 {
00088 }

ShaderParameter::ShaderParameter const ShaderParameter source  )  [protected]
 

Definition at line 90 of file OSGShaderParameter.cpp.

00090                                                               :
00091     Inherited(source),
00092     _changed(source._changed),
00093     _typeid(source._typeid)
00094 {
00095 }

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

Definition at line 97 of file OSGShaderParameter.cpp.

00098 {
00099 }


Member Function Documentation

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

Reimplemented from osg::AttachmentContainer.

Reimplemented in osg::ShaderParameterBool, osg::ShaderParameterInt, osg::ShaderParameterMatrix, osg::ShaderParameterReal, osg::ShaderParameterString, osg::ShaderParameterVec2f, osg::ShaderParameterVec3f, and osg::ShaderParameterVec4f.

Definition at line 128 of file OSGShaderParameter.cpp.

References osg::AttachmentContainer::changed().

Referenced by osg::ShaderParameterVec4f::changed(), osg::ShaderParameterVec3f::changed(), osg::ShaderParameterVec2f::changed(), osg::ShaderParameterString::changed(), osg::ShaderParameterReal::changed(), osg::ShaderParameterMatrix::changed(), osg::ShaderParameterInt::changed(), and osg::ShaderParameterBool::changed().

00129 {
00130     Inherited::changed(whichField, origin);
00131 }

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

Reimplemented from osg::AttachmentContainer.

Reimplemented in osg::ShaderParameterBool, osg::ShaderParameterInt, osg::ShaderParameterMatrix, osg::ShaderParameterReal, osg::ShaderParameterString, osg::ShaderParameterVec2f, osg::ShaderParameterVec3f, and osg::ShaderParameterVec4f.

Definition at line 133 of file OSGShaderParameter.cpp.

References SLOG.

00135 {
00136     SLOG << "Dump ShaderParameter NI" << std::endl;
00137 }

bool ShaderParameter::hasChanged void   ) 
 

Definition at line 111 of file OSGShaderParameter.cpp.

References _changed.

00112 {
00113     return _changed;
00114 }

void ShaderParameter::resetChanged void   ) 
 

Definition at line 116 of file OSGShaderParameter.cpp.

References _changed.

00117 {
00118     _changed = false;
00119 }

ShaderParameter::SHPType ShaderParameter::getTypeId void   ) 
 

Definition at line 106 of file OSGShaderParameter.cpp.

References _typeid.

00107 {
00108     return _typeid;
00109 }

void osg::ShaderParameter::setTypeId SHPType  type  )  [protected]
 

Referenced by osg::ShaderParameterBool::ShaderParameterBool(), osg::ShaderParameterInt::ShaderParameterInt(), osg::ShaderParameterMatrix::ShaderParameterMatrix(), osg::ShaderParameterReal::ShaderParameterReal(), osg::ShaderParameterString::ShaderParameterString(), osg::ShaderParameterVec2f::ShaderParameterVec2f(), osg::ShaderParameterVec3f::ShaderParameterVec3f(), and osg::ShaderParameterVec4f::ShaderParameterVec4f().

void ShaderParameter::setChanged void   )  [protected]
 

Definition at line 121 of file OSGShaderParameter.cpp.

References _changed.

Referenced by osg::ShaderParameterVec4f::changed(), osg::ShaderParameterVec3f::changed(), osg::ShaderParameterVec2f::changed(), osg::ShaderParameterString::changed(), osg::ShaderParameterReal::changed(), osg::ShaderParameterMatrix::changed(), osg::ShaderParameterInt::changed(), and osg::ShaderParameterBool::changed().

00122 {
00123     _changed = true;
00124 }

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

Reimplemented in osg::ShaderParameterBool, osg::ShaderParameterInt, osg::ShaderParameterMatrix, osg::ShaderParameterReal, osg::ShaderParameterString, osg::ShaderParameterVec2f, osg::ShaderParameterVec3f, and osg::ShaderParameterVec4f.

Definition at line 68 of file OSGShaderParameter.cpp.

00069 {
00070 }

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

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

Reimplemented from osg::AttachmentContainer.

Reimplemented in osg::ShaderParameterBoolBase, osg::ShaderParameterIntBase, osg::ShaderParameterMatrixBase, osg::ShaderParameterRealBase, osg::ShaderParameterStringBase, osg::ShaderParameterVec2fBase, osg::ShaderParameterVec3fBase, and osg::ShaderParameterVec4fBase.

Definition at line 58 of file OSGShaderParameterBase.inl.

References osg::ShaderParameterBase::_type.

00059 {
00060     return _type; 
00061 } 

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

Reimplemented from osg::AttachmentContainer.

Reimplemented in osg::ShaderParameterBoolBase, osg::ShaderParameterIntBase, osg::ShaderParameterMatrixBase, osg::ShaderParameterRealBase, osg::ShaderParameterStringBase, osg::ShaderParameterVec2fBase, osg::ShaderParameterVec3fBase, and osg::ShaderParameterVec4fBase.

Definition at line 65 of file OSGShaderParameterBase.inl.

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

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

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

Reimplemented from osg::AttachmentContainer.

Reimplemented in osg::ShaderParameterBoolBase, osg::ShaderParameterIntBase, osg::ShaderParameterMatrixBase, osg::ShaderParameterRealBase, osg::ShaderParameterStringBase, osg::ShaderParameterVec2fBase, osg::ShaderParameterVec3fBase, and osg::ShaderParameterVec4fBase.

Definition at line 106 of file OSGShaderParameterBase.cpp.

References osg::ShaderParameterBase::_type.

00107 {
00108     return _type; 
00109 } 

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

Reimplemented from osg::AttachmentContainer.

Reimplemented in osg::ShaderParameterBoolBase, osg::ShaderParameterIntBase, osg::ShaderParameterMatrixBase, osg::ShaderParameterRealBase, osg::ShaderParameterStringBase, osg::ShaderParameterVec2fBase, osg::ShaderParameterVec3fBase, and osg::ShaderParameterVec4fBase.

Definition at line 111 of file OSGShaderParameterBase.cpp.

References osg::ShaderParameterBase::_type.

00112 {
00113     return _type;
00114 } 

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

Reimplemented from osg::AttachmentContainer.

Reimplemented in osg::ShaderParameterBoolBase, osg::ShaderParameterIntBase, osg::ShaderParameterMatrixBase, osg::ShaderParameterRealBase, osg::ShaderParameterStringBase, osg::ShaderParameterVec2fBase, osg::ShaderParameterVec3fBase, and osg::ShaderParameterVec4fBase.

Definition at line 117 of file OSGShaderParameterBase.cpp.

00118 { 
00119     return sizeof(ShaderParameter); 
00120 }

SFString * osg::ShaderParameterBase::getSFName void   )  [inline, inherited]
 

Definition at line 75 of file OSGShaderParameterBase.inl.

References osg::ShaderParameterBase::_sfName.

00076 {
00077     return &_sfName;
00078 }

std::string & osg::ShaderParameterBase::getName void   )  [inline, inherited]
 

Definition at line 83 of file OSGShaderParameterBase.inl.

References osg::ShaderParameterBase::_sfName, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

const std::string & osg::ShaderParameterBase::getName void   )  const [inline, inherited]
 

Definition at line 90 of file OSGShaderParameterBase.inl.

References osg::ShaderParameterBase::_sfName, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

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

void osg::ShaderParameterBase::setName const std::string &  value  )  [inline, inherited]
 

Definition at line 97 of file OSGShaderParameterBase.inl.

References osg::ShaderParameterBase::_sfName, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00098 {
00099     _sfName.setValue(value);
00100 }

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

Reimplemented from osg::AttachmentContainer.

Reimplemented in osg::ShaderParameterBoolBase, osg::ShaderParameterIntBase, osg::ShaderParameterMatrixBase, osg::ShaderParameterRealBase, osg::ShaderParameterStringBase, osg::ShaderParameterVec2fBase, osg::ShaderParameterVec3fBase, and osg::ShaderParameterVec4fBase.

Definition at line 179 of file OSGShaderParameterBase.cpp.

References osg::ShaderParameterBase::_sfName, osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::AttachmentContainer::getBinSize(), osg::ShaderParameterBase::NameFieldMask, and osg::FieldBits::NoField.

Referenced by osg::ShaderParameterVec4fBase::getBinSize(), osg::ShaderParameterVec3fBase::getBinSize(), osg::ShaderParameterVec2fBase::getBinSize(), osg::ShaderParameterStringBase::getBinSize(), osg::ShaderParameterRealBase::getBinSize(), osg::ShaderParameterMatrixBase::getBinSize(), osg::ShaderParameterIntBase::getBinSize(), and osg::ShaderParameterBoolBase::getBinSize().

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

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

Reimplemented from osg::AttachmentContainer.

Reimplemented in osg::ShaderParameterBoolBase, osg::ShaderParameterIntBase, osg::ShaderParameterMatrixBase, osg::ShaderParameterRealBase, osg::ShaderParameterStringBase, osg::ShaderParameterVec2fBase, osg::ShaderParameterVec3fBase, and osg::ShaderParameterVec4fBase.

Definition at line 192 of file OSGShaderParameterBase.cpp.

References osg::ShaderParameterBase::_sfName, osg::SField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::AttachmentContainer::copyToBin(), osg::ShaderParameterBase::NameFieldMask, and osg::FieldBits::NoField.

Referenced by osg::ShaderParameterVec4fBase::copyToBin(), osg::ShaderParameterVec3fBase::copyToBin(), osg::ShaderParameterVec2fBase::copyToBin(), osg::ShaderParameterStringBase::copyToBin(), osg::ShaderParameterRealBase::copyToBin(), osg::ShaderParameterMatrixBase::copyToBin(), osg::ShaderParameterIntBase::copyToBin(), and osg::ShaderParameterBoolBase::copyToBin().

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

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

Reimplemented from osg::AttachmentContainer.

Reimplemented in osg::ShaderParameterBoolBase, osg::ShaderParameterIntBase, osg::ShaderParameterMatrixBase, osg::ShaderParameterRealBase, osg::ShaderParameterStringBase, osg::ShaderParameterVec2fBase, osg::ShaderParameterVec3fBase, and osg::ShaderParameterVec4fBase.

Definition at line 205 of file OSGShaderParameterBase.cpp.

References osg::ShaderParameterBase::_sfName, osg::SField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::AttachmentContainer::copyFromBin(), osg::ShaderParameterBase::NameFieldMask, and osg::FieldBits::NoField.

Referenced by osg::ShaderParameterVec4fBase::copyFromBin(), osg::ShaderParameterVec3fBase::copyFromBin(), osg::ShaderParameterVec2fBase::copyFromBin(), osg::ShaderParameterStringBase::copyFromBin(), osg::ShaderParameterRealBase::copyFromBin(), osg::ShaderParameterMatrixBase::copyFromBin(), osg::ShaderParameterIntBase::copyFromBin(), and osg::ShaderParameterBoolBase::copyFromBin().

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

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

Definition at line 219 of file OSGShaderParameterBase.cpp.

References osg::ShaderParameterBase::_sfName, osg::AttachmentContainer::executeSyncImpl(), osg::ShaderParameterBase::NameFieldMask, osg::FieldBits::NoField, and osg::SField< FieldTypeT, fieldNameSpace >::syncWith().

Referenced by osg::ShaderParameterBase::executeSync(), osg::ShaderParameterVec4fBase::executeSyncImpl(), osg::ShaderParameterVec3fBase::executeSyncImpl(), osg::ShaderParameterVec2fBase::executeSyncImpl(), osg::ShaderParameterStringBase::executeSyncImpl(), osg::ShaderParameterRealBase::executeSyncImpl(), osg::ShaderParameterMatrixBase::executeSyncImpl(), osg::ShaderParameterIntBase::executeSyncImpl(), and osg::ShaderParameterBoolBase::executeSyncImpl().

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

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

Reimplemented from osg::AttachmentContainer.

Reimplemented in osg::ShaderParameterBoolBase, osg::ShaderParameterIntBase, osg::ShaderParameterMatrixBase, osg::ShaderParameterRealBase, osg::ShaderParameterStringBase, osg::ShaderParameterVec2fBase, osg::ShaderParameterVec3fBase, and osg::ShaderParameterVec4fBase.

Definition at line 124 of file OSGShaderParameterBase.cpp.

References osg::ShaderParameterBase::executeSyncImpl().

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

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 }

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 }