osg::MultiSwitchBase Class Reference

MultiSwitch Base Class.

#include <OSGMultiSwitchBase.h>

Inheritance diagram for osg::MultiSwitchBase:
osg::Group osg::GroupBase osg::NodeCore osg::AttachmentContainer osg::FieldContainer osg::MultiSwitch

List of all members.

Public Types

enum  { ChoicesFieldId = Inherited::NextFieldId, SwitchModeFieldId = ChoicesFieldId + 1, NextFieldId = SwitchModeFieldId + 1 }
typedef MultiSwitchPtr Ptr
enum  { ParentsFieldId = Inherited::NextFieldId, NextFieldId = ParentsFieldId + 1 }
typedef MFNodePtr ParentsField
typedef MFNodePtrParentsFieldPtr
typedef MFNodePtr::iterator ParentsFieldIt
enum  { AttachmentsFieldId = Inherited::NextFieldId, NextFieldId = AttachmentsFieldId + 1 }
enum  { NextFieldId = 1 }

Public Member Functions

FieldContainer Get



virtual FieldContainerTypegetType (void)
virtual const FieldContainerTypegetType (void) const
virtual UInt32 getContainerSize (void) const
Field Get



MFUInt32editMFChoices (void)
 Get the MultiSwitch::_mfChoices field.
const MFUInt32getMFChoices (void) const
 Get the MultiSwitch::_mfChoices field.
MFUInt32getMFChoices (void)
 Get the MultiSwitch::_mfChoices field.
SFInt32editSFSwitchMode (void)
 Get the MultiSwitch::_sfSwitchMode field.
const SFInt32getSFSwitchMode (void) const
 Get the MultiSwitch::_sfSwitchMode field.
SFInt32getSFSwitchMode (void)
 Get the MultiSwitch::_sfSwitchMode field.
Int32editSwitchMode (void)
 Get the value of the MultiSwitch::_sfSwitchMode field.
const Int32getSwitchMode (void) const
 Get the value of the MultiSwitch::_sfSwitchMode field.
Int32getSwitchMode (void)
 Get the value of the MultiSwitch::_sfSwitchMode field.
UInt32editChoices (const UInt32 index)
 Get the value of the index element the MultiSwitch::_mfChoices field.
const UInt32getChoices (const UInt32 index) const
 Get the value of the index element the MultiSwitch::_mfChoices field.
UInt32getChoices (const UInt32 index)
 Get the value of the index element the MultiSwitch::_mfChoices field.
MFUInt32getChoices (void)
 Get the MultiSwitch::_mfChoices field.
const MFUInt32getChoices (void) const
 Get the MultiSwitch::_mfChoices field.
Field Set



void setSwitchMode (const Int32 &value)
 Set the value of the MultiSwitch::_sfSwitchMode 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
Sync



virtual void changed (BitVector whichField, UInt32 origin)
Dump



virtual void dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const
Parents



MFNodePtrgetParents (void)
const MFNodePtrgetParents (void) const
MFNodePtrgetMFParents (void)
Transformation



virtual void accumulateMatrix (Matrix &result)
Handle Attachments



void addAttachment (const AttachmentPtr &fieldContainerP, UInt16 binding=0)
void subAttachment (const AttachmentPtr &fieldContainerP, UInt16 binding=0)
AttachmentPtr findAttachment (UInt32 groupId, UInt16 binding=0)
AttachmentPtr findAttachment (const FieldContainerType &type, UInt16 binding=0)



SFAttachmentMapgetSFAttachments (void)
Get Instance Type Information



UInt32 getTypeId (void) const
UInt16 getGroupId (void) const
const Char8getTypeName (void) const



FieldgetField (UInt32 fieldId)
FieldgetField (const Char8 *fieldName)

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



static UInt16 getClassGroupId (void)

Static Public Attributes

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



static const bool isNodeCore = true

Protected Member Functions

Constructors



 MultiSwitchBase (void)
 MultiSwitchBase (const MultiSwitchBase &source)
Destructors



virtual ~MultiSwitchBase (void)
Sync



void executeSyncImpl (MultiSwitchBase *pOther, const BitVector &whichField)
virtual void executeSync (FieldContainer &other, const BitVector &whichField)
Action Callbacks



Action::ResultE drawEnter (Action *action)
Action::ResultE drawLeave (Action *action)
Action::ResultE renderEnter (Action *action)
Action::ResultE renderLeave (Action *action)
Action::ResultE intersect (Action *action)
Sync



virtual void executeSync (FieldContainer &other, const BitVector &whichField)=0
MT Destruction



virtual void onDestroy (void)
Set / Get Parents



void addParent (const NodePtr &parent)
void subParent (const NodePtr &parent)
Pointer



NodeCorePtr getPtr (void) const
Pointer



AttachmentContainerPtr getPtr (void)
MT Edit



template<class FieldTypeT >
void beginEditX (const BitVector &whichField, FieldTypeT &field)
template<class FieldTypeT >
void endEditX (const BitVector &whichField, FieldTypeT &field)
MT Construction



void onCreate (const FieldContainer *source=NULL)
void onCreateAspect (const FieldContainer *aspect0, const FieldContainer *source=NULL)

Static Protected Member Functions

Create Fieldcontainer



template<class ObjectPtrT >
static void newPtr (ObjectPtrT &result, const typename ObjectPtrT::StoredObjectType *prototypeP)
template<class ObjectPtrT >
static void newPtr (ObjectPtrT &result)

Protected Attributes

Fields



MFUInt32 _mfChoices
SFInt32 _sfSwitchMode
Fields



MFNodePtr _parents
Fields



SFAttachmentMap _attachmentMap
Member



UInt32 _shares

Private Types

typedef Group Inherited

Private Member Functions

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

Static Private Attributes

static FieldDescription_desc []
 MultiSwitch description.
static FieldContainerType _type

Friends

class FieldContainer

Volume



virtual void invalidateVolume (void)
virtual void adjustVolume (Volume &volume)

Detailed Description

Definition at line 82 of file OSGMultiSwitchBase.h.


Member Typedef Documentation

Reimplemented from osg::Group.

Reimplemented in osg::MultiSwitch.

Definition at line 86 of file OSGMultiSwitchBase.h.

Reimplemented from osg::GroupBase.

Definition at line 91 of file OSGMultiSwitchBase.h.

Definition at line 85 of file OSGNodeCore.h.

Definition at line 86 of file OSGNodeCore.h.

Definition at line 87 of file OSGNodeCore.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
ChoicesFieldId 
SwitchModeFieldId 
NextFieldId 

Definition at line 93 of file OSGMultiSwitchBase.h.

00094     {
00095         ChoicesFieldId    = Inherited::NextFieldId,
00096         SwitchModeFieldId = ChoicesFieldId    + 1,
00097         NextFieldId       = SwitchModeFieldId + 1
00098     };

anonymous enum [inherited]
Enumerator:
ParentsFieldId 
NextFieldId 

Definition at line 93 of file OSGNodeCore.h.

00094     { 
00095         ParentsFieldId     = Inherited::NextFieldId, 
00096         NextFieldId        = ParentsFieldId + 1
00097     };

anonymous enum [inherited]
Enumerator:
AttachmentsFieldId 
NextFieldId 

Definition at line 78 of file OSGAttachmentContainerImpl.h.

anonymous enum [inherited]
Enumerator:
NextFieldId 

Definition at line 73 of file OSGFieldContainerImpl.h.

00073 { NextFieldId = 1 };


Constructor & Destructor Documentation

osg::MultiSwitchBase::MultiSwitchBase ( void   )  [protected]

Definition at line 177 of file OSGMultiSwitchBase.cpp.

00177                                      :
00178     _mfChoices                (), 
00179     _sfSwitchMode             (Int32(-1)), 
00180     Inherited() 
00181 {
00182 }

osg::MultiSwitchBase::MultiSwitchBase ( const MultiSwitchBase source  )  [protected]

Definition at line 188 of file OSGMultiSwitchBase.cpp.

00188                                                               :
00189     _mfChoices                (source._mfChoices                ), 
00190     _sfSwitchMode             (source._sfSwitchMode             ), 
00191     Inherited                 (source)
00192 {
00193 }

osg::MultiSwitchBase::~MultiSwitchBase ( void   )  [protected, virtual]

Definition at line 197 of file OSGMultiSwitchBase.cpp.

00198 {
00199 }


Member Function Documentation

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

Reimplemented from osg::GroupBase.

Definition at line 58 of file OSGMultiSwitchBase.inl.

References _type.

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

00059 {
00060     return _type; 
00061 } 

osg::UInt32 osg::MultiSwitchBase::getClassTypeId ( void   )  [inline, static]

Reimplemented from osg::GroupBase.

Definition at line 65 of file OSGMultiSwitchBase.inl.

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

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

FieldContainerType & osg::MultiSwitchBase::getType ( void   )  [virtual]

Reimplemented from osg::GroupBase.

Definition at line 117 of file OSGMultiSwitchBase.cpp.

References _type.

00118 {
00119     return _type; 
00120 } 

const FieldContainerType & osg::MultiSwitchBase::getType ( void   )  const [virtual]

Reimplemented from osg::GroupBase.

Definition at line 122 of file OSGMultiSwitchBase.cpp.

References _type.

00123 {
00124     return _type;
00125 } 

UInt32 osg::MultiSwitchBase::getContainerSize ( void   )  const [virtual]

Reimplemented from osg::GroupBase.

Definition at line 137 of file OSGMultiSwitchBase.cpp.

00138 { 
00139     return sizeof(MultiSwitch); 
00140 }

MFUInt32 * osg::MultiSwitchBase::editMFChoices ( void   )  [inline]

Definition at line 108 of file OSGMultiSwitchBase.inl.

References _mfChoices.

00109 {
00110     return &_mfChoices;
00111 }

const MFUInt32 * osg::MultiSwitchBase::getMFChoices ( void   )  const [inline]

Definition at line 101 of file OSGMultiSwitchBase.inl.

References _mfChoices.

00102 {
00103     return &_mfChoices;
00104 }

MFUInt32 * osg::MultiSwitchBase::getMFChoices ( void   )  [inline]

Definition at line 116 of file OSGMultiSwitchBase.inl.

References _mfChoices.

00117 {
00118     return &_mfChoices;
00119 }

SFInt32 * osg::MultiSwitchBase::editSFSwitchMode ( void   )  [inline]

Definition at line 131 of file OSGMultiSwitchBase.inl.

References _sfSwitchMode.

00132 {
00133     return &_sfSwitchMode;
00134 }

const SFInt32 * osg::MultiSwitchBase::getSFSwitchMode ( void   )  const [inline]

Definition at line 124 of file OSGMultiSwitchBase.inl.

References _sfSwitchMode.

00125 {
00126     return &_sfSwitchMode;
00127 }

SFInt32 * osg::MultiSwitchBase::getSFSwitchMode ( void   )  [inline]

Definition at line 139 of file OSGMultiSwitchBase.inl.

References _sfSwitchMode.

00140 {
00141     return &_sfSwitchMode;
00142 }

Int32 & osg::MultiSwitchBase::editSwitchMode ( void   )  [inline]

Definition at line 148 of file OSGMultiSwitchBase.inl.

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

00149 {
00150     return _sfSwitchMode.getValue();
00151 }

const Int32 & osg::MultiSwitchBase::getSwitchMode ( void   )  const [inline]

Definition at line 155 of file OSGMultiSwitchBase.inl.

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

Referenced by osg::MultiSwitch::draw(), and osg::MultiSwitch::intersect().

00156 {
00157     return _sfSwitchMode.getValue();
00158 }

Int32 & osg::MultiSwitchBase::getSwitchMode ( void   )  [inline]

Definition at line 163 of file OSGMultiSwitchBase.inl.

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

00164 {
00165     return _sfSwitchMode.getValue();
00166 }

UInt32 & osg::MultiSwitchBase::editChoices ( const UInt32  index  )  [inline]

Definition at line 179 of file OSGMultiSwitchBase.inl.

References _mfChoices.

00180 {
00181     return _mfChoices[index];
00182 }

const UInt32 & osg::MultiSwitchBase::getChoices ( const UInt32  index  )  const [inline]

Definition at line 186 of file OSGMultiSwitchBase.inl.

References _mfChoices.

00187 {
00188     return _mfChoices[index];
00189 }

UInt32 & osg::MultiSwitchBase::getChoices ( const UInt32  index  )  [inline]

Definition at line 194 of file OSGMultiSwitchBase.inl.

References _mfChoices.

00195 {
00196     return _mfChoices[index];
00197 }

MFUInt32 & osg::MultiSwitchBase::getChoices ( void   )  [inline]

Definition at line 201 of file OSGMultiSwitchBase.inl.

References _mfChoices.

00202 {
00203     return _mfChoices;
00204 }

const MFUInt32 & osg::MultiSwitchBase::getChoices ( void   )  const [inline]

Definition at line 208 of file OSGMultiSwitchBase.inl.

References _mfChoices.

00209 {
00210     return _mfChoices;
00211 }

void osg::MultiSwitchBase::setSwitchMode ( const Int32 value  )  [inline]

Definition at line 171 of file OSGMultiSwitchBase.inl.

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

00172 {
00173     _sfSwitchMode.setValue(value);
00174 }

UInt32 osg::MultiSwitchBase::getBinSize ( const BitVector whichField  )  [virtual]

Reimplemented from osg::GroupBase.

Definition at line 203 of file OSGMultiSwitchBase.cpp.

References _mfChoices, _sfSwitchMode, ChoicesFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::MField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::GroupBase::getBinSize(), osg::FieldBits::NoField, and SwitchModeFieldMask.

00204 {
00205     UInt32 returnValue = Inherited::getBinSize(whichField);
00206 
00207     if(FieldBits::NoField != (ChoicesFieldMask & whichField))
00208     {
00209         returnValue += _mfChoices.getBinSize();
00210     }
00211 
00212     if(FieldBits::NoField != (SwitchModeFieldMask & whichField))
00213     {
00214         returnValue += _sfSwitchMode.getBinSize();
00215     }
00216 
00217 
00218     return returnValue;
00219 }

void osg::MultiSwitchBase::copyToBin ( BinaryDataHandler pMem,
const BitVector whichField 
) [virtual]

Reimplemented from osg::GroupBase.

Definition at line 221 of file OSGMultiSwitchBase.cpp.

References _mfChoices, _sfSwitchMode, ChoicesFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::MField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::GroupBase::copyToBin(), osg::FieldBits::NoField, and SwitchModeFieldMask.

00223 {
00224     Inherited::copyToBin(pMem, whichField);
00225 
00226     if(FieldBits::NoField != (ChoicesFieldMask & whichField))
00227     {
00228         _mfChoices.copyToBin(pMem);
00229     }
00230 
00231     if(FieldBits::NoField != (SwitchModeFieldMask & whichField))
00232     {
00233         _sfSwitchMode.copyToBin(pMem);
00234     }
00235 
00236 
00237 }

void osg::MultiSwitchBase::copyFromBin ( BinaryDataHandler pMem,
const BitVector whichField 
) [virtual]

Reimplemented from osg::GroupBase.

Definition at line 239 of file OSGMultiSwitchBase.cpp.

References _mfChoices, _sfSwitchMode, ChoicesFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::MField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::GroupBase::copyFromBin(), osg::FieldBits::NoField, and SwitchModeFieldMask.

00241 {
00242     Inherited::copyFromBin(pMem, whichField);
00243 
00244     if(FieldBits::NoField != (ChoicesFieldMask & whichField))
00245     {
00246         _mfChoices.copyFromBin(pMem);
00247     }
00248 
00249     if(FieldBits::NoField != (SwitchModeFieldMask & whichField))
00250     {
00251         _sfSwitchMode.copyFromBin(pMem);
00252     }
00253 
00254 
00255 }

MultiSwitchPtr osg::MultiSwitchBase::create ( void   )  [inline, static]

Reimplemented from osg::GroupBase.

Definition at line 72 of file OSGMultiSwitchBase.inl.

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

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

MultiSwitchPtr osg::MultiSwitchBase::createEmpty ( void   )  [inline, static]

Reimplemented from osg::GroupBase.

Definition at line 87 of file OSGMultiSwitchBase.inl.

References osg::FieldContainer::newPtr().

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

FieldContainerPtr osg::MultiSwitchBase::shallowCopy ( void   )  const [virtual]

Reimplemented from osg::GroupBase.

Definition at line 128 of file OSGMultiSwitchBase.cpp.

References osg::FieldContainer::newPtr().

Referenced by create().

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

void osg::MultiSwitchBase::executeSyncImpl ( MultiSwitchBase pOther,
const BitVector whichField 
) [protected]

Reimplemented from osg::GroupBase.

Definition at line 258 of file OSGMultiSwitchBase.cpp.

References _mfChoices, _sfSwitchMode, ChoicesFieldMask, osg::GroupBase::executeSyncImpl(), osg::FieldBits::NoField, SwitchModeFieldMask, osg::SField< FieldTypeT, fieldNameSpace >::syncWith(), and osg::MField< FieldTypeT, fieldNameSpace >::syncWith().

Referenced by executeSync().

00260 {
00261 
00262     Inherited::executeSyncImpl(pOther, whichField);
00263 
00264     if(FieldBits::NoField != (ChoicesFieldMask & whichField))
00265         _mfChoices.syncWith(pOther->_mfChoices);
00266 
00267     if(FieldBits::NoField != (SwitchModeFieldMask & whichField))
00268         _sfSwitchMode.syncWith(pOther->_sfSwitchMode);
00269 
00270 
00271 }

void osg::MultiSwitchBase::executeSync ( FieldContainer other,
const BitVector whichField 
) [protected, virtual]

Reimplemented from osg::GroupBase.

Definition at line 144 of file OSGMultiSwitchBase.cpp.

References executeSyncImpl().

00146 {
00147     this->executeSyncImpl(static_cast<MultiSwitchBase *>(&other),
00148                           whichField);
00149 }

void osg::MultiSwitchBase::operator= ( const MultiSwitchBase source  )  [private]

Reimplemented from osg::Group.

Reimplemented in osg::MultiSwitch.

void Group::changed ( BitVector  whichField,
UInt32  origin 
) [virtual, inherited]
void Group::dump ( UInt32  uiIndent = 0,
const BitVector  bvFlags = 0 
) const [virtual, inherited]
Action::ResultE Group::drawEnter ( Action action  )  [protected, inherited]

Reimplemented in osg::DirectionalLight, osg::Light, osg::PointLight, osg::SpotLight, osg::Billboard, osg::Fog, osg::InverseTransform, osg::MaterialGroup, osg::ScreenGroup, and osg::Transform.

Definition at line 100 of file OSGGroup.cpp.

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

Referenced by osg::Group::initMethod().

00101 {
00102     DrawActionBase *da = dynamic_cast<DrawActionBase *>(action);
00103 
00104     if(da->selectVisibles() == 0)
00105         return Action::Skip;
00106     
00107     return Action::Continue;
00108 }

Action::ResultE Group::drawLeave ( Action action  )  [protected, inherited]
Action::ResultE Group::renderEnter ( Action action  )  [protected, inherited]

Reimplemented in osg::DirectionalLight, osg::Light, osg::PointLight, osg::SpotLight, osg::Billboard, osg::ClipPlane, osg::Fog, osg::InverseTransform, osg::MaterialGroup, osg::ScreenGroup, and osg::Transform.

Definition at line 118 of file OSGGroup.cpp.

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

Referenced by osg::Group::initMethod().

00119 {
00120     RenderAction *ra = dynamic_cast<RenderAction *>(action);
00121 
00122     if (ra->pushVisibility())
00123     {
00124         if(ra->selectVisibles() == 0)
00125         {
00126             ra->popVisibility();
00127             return Action::Skip;
00128         }
00129     }
00130 
00131     return Action::Continue;
00132 }

Action::ResultE Group::renderLeave ( Action action  )  [protected, inherited]
Action::ResultE Group::intersect ( Action action  )  [protected, inherited]

Reimplemented in osg::MultiSwitch, and osg::Switch.

Definition at line 146 of file OSGGroup.cpp.

References osg::Action::Continue, osg::Action::getActNode(), osg::IntersectAction::getLine(), osg::BoxVolume::intersect(), osg::Volume::isValid(), and osg::Action::Skip.

Referenced by osg::Group::initMethod(), and osg::Transform::intersectEnter().

00147 {
00148           IntersectAction *ia  = dynamic_cast<IntersectAction *>(action);
00149 #ifndef OSG_2_PREP
00150     const DynamicVolume   &vol = ia->getActNode()->getVolume();
00151 #else
00152     const BoxVolume       &vol = ia->getActNode()->getVolume();
00153 #endif
00154     
00155     if(vol.isValid() && ! vol.intersect(ia->getLine()))
00156     {
00157         return Action::Skip;  //bv missed -> can not hit children
00158     }
00159     
00160     return Action::Continue;
00161 }

virtual void osg::FieldContainer::executeSync ( FieldContainer other,
const BitVector whichField 
) [protected, pure virtual, inherited]
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::ScreenGroup::calcMatrix(), osg::Transform::changed(), osg::Slices::changed(), and osg::ComponentTransform::changed().

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

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

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

Definition at line 224 of file OSGNodeCore.inl.

00225 {
00226 }

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

Reimplemented from osg::FieldContainer.

Reimplemented in osg::Geometry, osg::Surface, and osg::MaterialPool.

Definition at line 142 of file OSGNodeCore.inl.

Referenced by osg::Geometry::onDestroy().

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]
void osg::NodeCore::adjustVolume ( Volume volume  )  [inline, protected, virtual, inherited]
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]

Field Access

Definition at line 170 of file OSGAttachmentContainer.cpp.

References osg::AttachmentContainer::_attachmentMap.

00171 {
00172     return &_attachmentMap;
00173 }

UInt16 osg::FieldContainer::getClassGroupId ( void   )  [inline, static, inherited]

Definition at line 71 of file OSGFieldContainerImpl.inl.

References osg::FieldContainer::_type, and osg::FieldContainerType::getGroupId().

00072 {
00073     return _type.getGroupId();
00074 }

UInt32 osg::FieldContainer::getTypeId ( void   )  const [inline, inherited]

Definition at line 77 of file OSGFieldContainerImpl.inl.

References osg::TypeBase::getId(), and osg::FieldContainer::getType().

Referenced by osg::TextureChunk::changeFrom(), and osg::CubeTextureChunk::changeFrom().

00078 {
00079     return getType().getId();
00080 }

UInt16 osg::FieldContainer::getGroupId ( void   )  const [inline, inherited]

Definition at line 83 of file OSGFieldContainerImpl.inl.

References osg::FieldContainerType::getGroupId(), and osg::FieldContainer::getType().

Referenced by osg::Image::setAttachmentField().

00084 {
00085     return getType().getGroupId();
00086 }

const Char8 * osg::FieldContainer::getTypeName ( void   )  const [inline, inherited]

Definition at line 89 of file OSGFieldContainerImpl.inl.

References osg::TypeBase::getCName(), and osg::FieldContainer::getType().

00090 {
00091     return getType().getCName();
00092 }

Field * osg::FieldContainer::getField ( UInt32  fieldId  )  [inline, inherited]

Generic Field Access

Definition at line 95 of file OSGFieldContainerImpl.inl.

References osg::FieldDescription::getField(), osg::FieldContainerType::getFieldDescription(), and osg::FieldContainer::getType().

Referenced by osg::QFCItem::expand(), osg::VRMLShapeDesc::getFieldAndDesc(), osg::QFieldViewBase::getFieldPtr(), osg::QFieldEditorBase::getFieldPtr(), osg::getParentsField(), and osg::QFCItem::setup().

00096 {
00097     const FieldDescription *desc = getType().getFieldDescription(fieldId);
00098 
00099     return desc ? desc->getField(*this) : NULL;
00100 }

Field * osg::FieldContainer::getField ( const Char8 fieldName  )  [inline, inherited]

Generic Field Access

Definition at line 103 of file OSGFieldContainerImpl.inl.

References osg::FieldContainerType::findFieldDescription(), osg::FieldDescription::getField(), and osg::FieldContainer::getType().

00104 {
00105     const FieldDescription *desc =getType().findFieldDescription(fieldName);
00106 
00107     return desc ? desc->getField(*this) : NULL;
00108 }

template<class ObjectPtrT >
void osg::FieldContainer::newPtr ( ObjectPtrT &  result,
const typename ObjectPtrT::StoredObjectType *  prototypeP 
) [inline, static, protected, inherited]

Definition at line 138 of file OSGFieldContainerImpl.inl.

References osg::ChangeList::addCreated(), osg::PThreadBase::getAspect(), osg::PThreadBase::getCurrentChangeList(), osg::ThreadManager::getNumAspects(), osg::FieldContainerFactory::registerFieldContainer(), and osg::FieldContainerFactory::the().

Referenced by osg::XWindowBase::createEmpty(), osg::WIN32WindowBase::createEmpty(), osg::ViewportBase::createEmpty(), osg::VertexProgramChunkBase::createEmpty(), osg::TwoSidedLightingChunkBase::createEmpty(), osg::TransformChunkBase::createEmpty(), osg::TransformBase::createEmpty(), osg::TileCameraDecoratorBase::createEmpty(), osg::TextureTransformChunkBase::createEmpty(), osg::TextureGrabForegroundBase::createEmpty(), osg::TextureGrabBackgroundBase::createEmpty(), osg::TextureChunkBase::createEmpty(), osg::TextureBackgroundBase::createEmpty(), osg::TexGenChunkBase::createEmpty(), osg::SwitchMaterialBase::createEmpty(), osg::SwitchBase::createEmpty(), osg::SurfaceBase::createEmpty(), osg::StringAttributeMapBase::createEmpty(), osg::StereoBufferViewportBase::createEmpty(), osg::StencilChunkBase::createEmpty(), osg::StateSortingGroupBase::createEmpty(), osg::StateBase::createEmpty(), osg::SpotLightBase::createEmpty(), osg::SortFirstWindowBase::createEmpty(), osg::SolidBackgroundBase::createEmpty(), osg::SlicesBase::createEmpty(), osg::SkyBackgroundBase::createEmpty(), osg::SimpleTexturedMaterialBase::createEmpty(), osg::SimpleStatisticsForegroundBase::createEmpty(), osg::SimpleMaterialBase::createEmpty(), osg::SHLParameterChunkBase::createEmpty(), osg::SHLChunkBase::createEmpty(), osg::ShearedStereoCameraDecoratorBase::createEmpty(), osg::ShaderParameterVec4fBase::createEmpty(), osg::ShaderParameterVec3fBase::createEmpty(), osg::ShaderParameterVec2fBase::createEmpty(), osg::ShaderParameterStringBase::createEmpty(), osg::ShaderParameterRealBase::createEmpty(), osg::ShaderParameterMVec4fBase::createEmpty(), osg::ShaderParameterMVec3fBase::createEmpty(), osg::ShaderParameterMVec2fBase::createEmpty(), osg::ShaderParameterMRealBase::createEmpty(), osg::ShaderParameterMMatrixBase::createEmpty(), osg::ShaderParameterMIntBase::createEmpty(), osg::ShaderParameterMatrixBase::createEmpty(), osg::ShaderParameterIntBase::createEmpty(), osg::ShaderParameterBoolBase::createEmpty(), osg::ShadeModelChunkBase::createEmpty(), osg::ScreenGroupBase::createEmpty(), osg::SClipPlaneChunkBase::createEmpty(), osg::ResolutionDisplayFilterBase::createEmpty(), osg::RenderOptionsBase::createEmpty(), osg::RegisterCombinersChunkBase::createEmpty(), osg::QTWindowBase::createEmpty(), osg::ProxyGroupBase::createEmpty(), osg::ProjectionCameraDecoratorBase::createEmpty(), osg::PolygonForegroundBase::createEmpty(), osg::PolygonChunkBase::createEmpty(), osg::PolygonBackgroundBase::createEmpty(), osg::PointLightBase::createEmpty(), osg::PointChunkBase::createEmpty(), osg::PhongMaterialBase::createEmpty(), osg::PerspectiveCameraBase::createEmpty(), osg::PassiveWindowBase::createEmpty(), osg::PassiveViewportBase::createEmpty(), osg::PassiveBackgroundBase::createEmpty(), osg::ParticlesBase::createEmpty(), osg::OrthographicCameraBase::createEmpty(), osg::OffsetCameraDecoratorBase::createEmpty(), osg::OffCenterPerspectiveCameraBase::createEmpty(), createEmpty(), osg::MultiPassMaterialBase::createEmpty(), osg::MultiDisplayWindowBase::createEmpty(), osg::MatrixCameraDecoratorBase::createEmpty(), osg::MatrixCameraBase::createEmpty(), osg::MaterialPoolBase::createEmpty(), osg::MaterialGroupBase::createEmpty(), osg::MaterialChunkBase::createEmpty(), osg::LogicOpChunkBase::createEmpty(), osg::LineChunkBase::createEmpty(), osg::LightModelChunkBase::createEmpty(), osg::LightEnvBase::createEmpty(), osg::LightChunkBase::createEmpty(), osg::InverseTransformBase::createEmpty(), osg::InlineBase::createEmpty(), osg::ImageForegroundBase::createEmpty(), osg::ImageBase::createEmpty(), osg::ImageBackgroundBase::createEmpty(), osg::GroupBase::createEmpty(), osg::GraphicStatisticsForegroundBase::createEmpty(), osg::GradientBackgroundBase::createEmpty(), osg::GrabForegroundBase::createEmpty(), osg::GLUTWindowBase::createEmpty(), osg::GeometryBase::createEmpty(), osg::FresnelMaterialBase::createEmpty(), osg::FragmentProgramChunkBase::createEmpty(), osg::FogChunkBase::createEmpty(), osg::FogBase::createEmpty(), osg::FileGrabForegroundBase::createEmpty(), osg::FCPtrAttributeMapBase::createEmpty(), osg::FBOViewportBase::createEmpty(), osg::FatBorderChunkBase::createEmpty(), osg::DVRVolumeTextureBase::createEmpty(), osg::DVRVolumeBase::createEmpty(), osg::DVRSimpleShaderBase::createEmpty(), osg::DVRSimpleLUTShaderBase::createEmpty(), osg::DVRMtexLUTShaderBase::createEmpty(), osg::DVRLookupTableBase::createEmpty(), osg::DVRIsoSurfaceBase::createEmpty(), osg::DVRIsoShaderBase::createEmpty(), osg::DVRGeometryBase::createEmpty(), osg::DVRClipObjectsBase::createEmpty(), osg::DVRClipGeometryBase::createEmpty(), osg::DVRAppearanceBase::createEmpty(), osg::DistortionDisplayFilterBase::createEmpty(), osg::DistanceLODBase::createEmpty(), osg::DisplayFilterForegroundBase::createEmpty(), osg::DisplayCalibrationBase::createEmpty(), osg::DirectionalLightBase::createEmpty(), osg::DepthClearBackgroundBase::createEmpty(), osg::DepthChunkBase::createEmpty(), osg::CubeTextureChunkBase::createEmpty(), osg::ComponentTransformBase::createEmpty(), osg::ColorMaskChunkBase::createEmpty(), osg::ColorDisplayFilterBase::createEmpty(), osg::ColorBufferViewportBase::createEmpty(), osg::ClusterWindowBase::createEmpty(), osg::ClipPlaneChunkBase::createEmpty(), osg::ClipPlaneBase::createEmpty(), osg::ChunkMaterialBase::createEmpty(), osg::BlendChunkBase::createEmpty(), osg::BillboardBase::createEmpty(), osg::XWindowBase::shallowCopy(), osg::WIN32WindowBase::shallowCopy(), osg::ViewportBase::shallowCopy(), osg::VertexProgramChunkBase::shallowCopy(), osg::TwoSidedLightingChunkBase::shallowCopy(), osg::TransformChunkBase::shallowCopy(), osg::TransformBase::shallowCopy(), osg::TileCameraDecoratorBase::shallowCopy(), osg::TextureTransformChunkBase::shallowCopy(), osg::TextureGrabForegroundBase::shallowCopy(), osg::TextureGrabBackgroundBase::shallowCopy(), osg::TextureChunkBase::shallowCopy(), osg::TextureBackgroundBase::shallowCopy(), osg::TexGenChunkBase::shallowCopy(), osg::SwitchMaterialBase::shallowCopy(), osg::SwitchBase::shallowCopy(), osg::SurfaceBase::shallowCopy(), osg::StringAttributeMapBase::shallowCopy(), osg::StereoBufferViewportBase::shallowCopy(), osg::StencilChunkBase::shallowCopy(), osg::StateSortingGroupBase::shallowCopy(), osg::StateBase::shallowCopy(), osg::SpotLightBase::shallowCopy(), osg::SortFirstWindowBase::shallowCopy(), osg::SolidBackgroundBase::shallowCopy(), osg::SlicesBase::shallowCopy(), osg::SkyBackgroundBase::shallowCopy(), osg::SimpleTexturedMaterialBase::shallowCopy(), osg::SimpleStatisticsForegroundBase::shallowCopy(), osg::SimpleMaterialBase::shallowCopy(), osg::SHLParameterChunkBase::shallowCopy(), osg::SHLChunkBase::shallowCopy(), osg::ShearedStereoCameraDecoratorBase::shallowCopy(), osg::ShaderParameterVec4fBase::shallowCopy(), osg::ShaderParameterVec3fBase::shallowCopy(), osg::ShaderParameterVec2fBase::shallowCopy(), osg::ShaderParameterStringBase::shallowCopy(), osg::ShaderParameterRealBase::shallowCopy(), osg::ShaderParameterMVec4fBase::shallowCopy(), osg::ShaderParameterMVec3fBase::shallowCopy(), osg::ShaderParameterMVec2fBase::shallowCopy(), osg::ShaderParameterMRealBase::shallowCopy(), osg::ShaderParameterMMatrixBase::shallowCopy(), osg::ShaderParameterMIntBase::shallowCopy(), osg::ShaderParameterMatrixBase::shallowCopy(), osg::ShaderParameterIntBase::shallowCopy(), osg::ShaderParameterBoolBase::shallowCopy(), osg::ShadeModelChunkBase::shallowCopy(), osg::ScreenGroupBase::shallowCopy(), osg::SClipPlaneChunkBase::shallowCopy(), osg::ResolutionDisplayFilterBase::shallowCopy(), osg::RenderOptionsBase::shallowCopy(), osg::RegisterCombinersChunkBase::shallowCopy(), osg::QTWindowBase::shallowCopy(), osg::ProxyGroupBase::shallowCopy(), osg::ProjectionCameraDecoratorBase::shallowCopy(), osg::PolygonForegroundBase::shallowCopy(), osg::PolygonChunkBase::shallowCopy(), osg::PolygonBackgroundBase::shallowCopy(), osg::PointLightBase::shallowCopy(), osg::PointChunkBase::shallowCopy(), osg::PhongMaterialBase::shallowCopy(), osg::PerspectiveCameraBase::shallowCopy(), osg::PassiveWindowBase::shallowCopy(), osg::PassiveViewportBase::shallowCopy(), osg::PassiveBackgroundBase::shallowCopy(), osg::ParticlesBase::shallowCopy(), osg::OrthographicCameraBase::shallowCopy(), osg::OffsetCameraDecoratorBase::shallowCopy(), osg::OffCenterPerspectiveCameraBase::shallowCopy(), shallowCopy(), osg::MultiPassMaterialBase::shallowCopy(), osg::MultiDisplayWindowBase::shallowCopy(), osg::MatrixCameraDecoratorBase::shallowCopy(), osg::MatrixCameraBase::shallowCopy(), osg::MaterialPoolBase::shallowCopy(), osg::MaterialGroupBase::shallowCopy(), osg::MaterialChunkBase::shallowCopy(), osg::LogicOpChunkBase::shallowCopy(), osg::LineChunkBase::shallowCopy(), osg::LightModelChunkBase::shallowCopy(), osg::LightEnvBase::shallowCopy(), osg::LightChunkBase::shallowCopy(), osg::InverseTransformBase::shallowCopy(), osg::InlineBase::shallowCopy(), osg::ImageForegroundBase::shallowCopy(), osg::ImageBase::shallowCopy(), osg::ImageBackgroundBase::shallowCopy(), osg::GroupBase::shallowCopy(), osg::GraphicStatisticsForegroundBase::shallowCopy(), osg::GradientBackgroundBase::shallowCopy(), osg::GrabForegroundBase::shallowCopy(), osg::GLUTWindowBase::shallowCopy(), osg::GeometryBase::shallowCopy(), osg::FresnelMaterialBase::shallowCopy(), osg::FragmentProgramChunkBase::shallowCopy(), osg::FogChunkBase::shallowCopy(), osg::FogBase::shallowCopy(), osg::FileGrabForegroundBase::shallowCopy(), osg::FCPtrAttributeMapBase::shallowCopy(), osg::FBOViewportBase::shallowCopy(), osg::FatBorderChunkBase::shallowCopy(), osg::DVRVolumeTextureBase::shallowCopy(), osg::DVRVolumeBase::shallowCopy(), osg::DVRSimpleShaderBase::shallowCopy(), osg::DVRSimpleLUTShaderBase::shallowCopy(), osg::DVRMtexLUTShaderBase::shallowCopy(), osg::DVRLookupTableBase::shallowCopy(), osg::DVRIsoSurfaceBase::shallowCopy(), osg::DVRIsoShaderBase::shallowCopy(), osg::DVRGeometryBase::shallowCopy(), osg::DVRClipObjectsBase::shallowCopy(), osg::DVRClipGeometryBase::shallowCopy(), osg::DVRAppearanceBase::shallowCopy(), osg::DistortionDisplayFilterBase::shallowCopy(), osg::DistanceLODBase::shallowCopy(), osg::DisplayFilterForegroundBase::shallowCopy(), osg::DisplayCalibrationBase::shallowCopy(), osg::DirectionalLightBase::shallowCopy(), osg::DepthClearBackgroundBase::shallowCopy(), osg::DepthChunkBase::shallowCopy(), osg::CubeTextureChunkBase::shallowCopy(), osg::ComponentTransformBase::shallowCopy(), osg::ColorMaskChunkBase::shallowCopy(), osg::ColorDisplayFilterBase::shallowCopy(), osg::ColorBufferViewportBase::shallowCopy(), osg::ClusterWindowBase::shallowCopy(), osg::ClipPlaneChunkBase::shallowCopy(), osg::ClipPlaneBase::shallowCopy(), osg::ChunkMaterialBase::shallowCopy(), osg::BlendChunkBase::shallowCopy(), and osg::BillboardBase::shallowCopy().

00141 {
00142     typedef typename ObjectPtrT::StoredObjectType ObjectType;
00143     
00144     UInt8 *pTmp;
00145     
00146     result._containerSize = sizeof(ObjectType);
00147     
00148     pTmp        = 
00149         static_cast<UInt8 *>(operator new(
00150             sizeof(Int32)      + // ReferenceCount
00151             sizeof(UInt32)     + // ContainerId
00152             sizeof(ObjectType) * ThreadManager::getNumAspects()));
00153     
00154     *(reinterpret_cast<Int32 *>(pTmp)) = 0;
00155     
00156     pTmp += sizeof(Int32);
00157     
00158     result._storeP = (pTmp + sizeof(UInt32));
00159 
00160 #ifdef OSG_DEBUG_FCPTR
00161     result._typedStoreP = reinterpret_cast<FieldContainer *>(result._storeP);
00162 #endif
00163 
00164     *(reinterpret_cast<UInt32 *>(pTmp)) = 
00165         FieldContainerFactory::the()->registerFieldContainer(result);
00166 
00167 #ifdef OSG_INVALID_PTR_CHECK
00168     result._id = *(reinterpret_cast<UInt32 *>(pTmp));
00169 #endif
00170 
00171     Thread::getCurrentChangeList()->addCreated(
00172         *(reinterpret_cast<UInt32 *>(pTmp)));
00173     
00174     pTmp += sizeof(UInt32);
00175     
00176     ObjectType *aObject = reinterpret_cast<ObjectType *>(pTmp);
00177 
00178     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00179     {
00180         pTmp = 
00181             reinterpret_cast<UInt8 *>(new (pTmp) ObjectType(*prototypeP));
00182         
00183         pTmp += sizeof(ObjectType);
00184     }
00185     
00186     result->onCreate(prototypeP);
00187 
00188     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00189     {
00190         aObject[i].onCreateAspect(aObject, prototypeP);
00191     }
00192 
00193 #if defined(OSG_GV_BETA) && defined(OSG_DBG_MEM)
00194 
00195     fprintf(stderr, "GV_MEM_FC_DBG : (%u) cc (%p|%u)\n", 
00196             Thread::getAspect(),
00197             result._storeP,
00198 //            ObjectType::getClassType().getCName(),
00199             ObjectType::getClassType().getId());
00200 #endif
00201 
00202 #ifdef OSG_DEBUG_TYPED_FCPTR
00203     result.updateTypedStore();
00204 #endif
00205 }

template<class ObjectPtrT >
void osg::FieldContainer::newPtr ( ObjectPtrT &  result  )  [inline, static, protected, inherited]

Definition at line 208 of file OSGFieldContainerImpl.inl.

References osg::ChangeList::addCreated(), osg::PThreadBase::getAspect(), osg::PThreadBase::getCurrentChangeList(), osg::ThreadManager::getNumAspects(), osg::FieldContainerFactory::registerFieldContainer(), and osg::FieldContainerFactory::the().

00209 {
00210     typedef typename ObjectPtrT::StoredObjectType ObjectType;
00211     
00212     UInt8 *pTmp;
00213     
00214     result._containerSize = sizeof(ObjectType);
00215     
00216     pTmp        =             
00217         static_cast<UInt8 *>(operator new(
00218             sizeof(Int32)      + // ReferenceCount
00219             sizeof(UInt32)     + // ContainerId
00220             sizeof(ObjectType) * ThreadManager::getNumAspects()));
00221     
00222     *(reinterpret_cast<Int32 *>(pTmp)) = 0;
00223     
00224     pTmp  += sizeof(Int32);
00225     
00226     result._storeP = (pTmp + sizeof(UInt32));
00227     
00228 #ifdef OSG_DEBUG_FCPTR
00229     result._typedStoreP = reinterpret_cast<FieldContainer *>(result._storeP);
00230 #endif
00231 
00232     *(reinterpret_cast<UInt32 *>(pTmp)) = 
00233         FieldContainerFactory::the()->registerFieldContainer(result);
00234 
00235 #ifdef OSG_INVALID_PTR_CHECK
00236     result._id = *(reinterpret_cast<UInt32 *>(pTmp));
00237 #endif
00238 
00239     Thread::getCurrentChangeList()->addCreated(
00240         *(reinterpret_cast<UInt32 *>(pTmp)));
00241     
00242     pTmp += sizeof(UInt32);
00243     
00244     ObjectType *aObject = reinterpret_cast<ObjectType *>(pTmp);
00245 
00246     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00247     {
00248         pTmp = reinterpret_cast<UInt8 *>(new (pTmp) ObjectType());
00249         
00250         pTmp += sizeof(ObjectType);
00251     }
00252     
00253     result->onCreate();
00254     
00255     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00256     {
00257         aObject[i].onCreateAspect(aObject);
00258     }
00259 
00260 #if defined(OSG_GV_BETA) && defined(OSG_DBG_MEM)
00261     fprintf(stderr, "GV_MEM_FC_DBG : (%u) c (%p|%u)\n", 
00262             Thread::getAspect(),
00263             result._storeP,
00264 //            ObjectType::getClassType().getCName(),
00265             ObjectType::getClassType().getId());
00266 #endif
00267     
00268 #ifdef OSG_DEBUG_TYPED_FCPTR
00269     result.updateTypedStore();
00270 #endif
00271 }

template<class FieldTypeT >
void osg::FieldContainer::beginEditX ( const BitVector whichField,
FieldTypeT &  field 
) [inline, protected, inherited]

Definition at line 293 of file OSGFieldContainerImpl.inl.

00294 {
00295 //    fieldR.beginEdit();
00296 }

template<class FieldTypeT >
void osg::FieldContainer::endEditX ( const BitVector whichField,
FieldTypeT &  field 
) [inline, protected, inherited]

Definition at line 299 of file OSGFieldContainerImpl.inl.

References osg::endEditCP().

00300 {
00301     FieldContainerPtr tmpPtr(this);
00302     endEditCP(tmpPtr, whichField);
00303 }

void osg::FieldContainer::onCreate ( const FieldContainer source = NULL  )  [inline, protected, inherited]
void osg::FieldContainer::onCreateAspect ( const FieldContainer aspect0,
const FieldContainer source = NULL 
) [inline, protected, inherited]

Reimplemented in osg::Window.

Definition at line 331 of file OSGFieldContainerImpl.inl.

00333 {
00334 }


Friends And Related Function Documentation

friend class FieldContainer [friend]

Reimplemented from osg::Group.

Reimplemented in osg::MultiSwitch.

Definition at line 257 of file OSGMultiSwitchBase.h.


Member Data Documentation

Initial value:
 
    (TypeTraits<BitVector>::One << MultiSwitchBase::ChoicesFieldId)

Definition at line 100 of file OSGMultiSwitchBase.h.

Referenced by osg::MultiSwitch::changed(), copyFromBin(), copyToBin(), executeSyncImpl(), and getBinSize().

Initial value:
 
    (TypeTraits<BitVector>::One << MultiSwitchBase::SwitchModeFieldId)

Definition at line 101 of file OSGMultiSwitchBase.h.

Referenced by copyFromBin(), copyToBin(), executeSyncImpl(), and getBinSize().

Initial value:
 
    (Inherited::MTInfluenceMask) | 
    (static_cast<BitVector>(0x0) << Inherited::NextFieldId)

Reimplemented from osg::GroupBase.

Definition at line 104 of file OSGMultiSwitchBase.h.

Indices of children to be included in CHOICES mode. The indices are kept sorted and any duplicates are removed.

Definition at line 204 of file OSGMultiSwitchBase.h.

Referenced by osg::MultiSwitch::changed(), copyFromBin(), copyToBin(), osg::MultiSwitch::draw(), editChoices(), editMFChoices(), executeSyncImpl(), getBinSize(), getChoices(), getMFChoices(), osg::MultiSwitch::intersect(), and osg::MultiSwitch::setBitfield().

Initial value:
 
{
    new FieldDescription(MFUInt32::getClassType(), 
                     "choices", 
                     ChoicesFieldId, ChoicesFieldMask,
                     false,
                     reinterpret_cast<FieldAccessMethod>(&MultiSwitchBase::editMFChoices)),
    new FieldDescription(SFInt32::getClassType(), 
                     "switchMode", 
                     SwitchModeFieldId, SwitchModeFieldMask,
                     false,
                     reinterpret_cast<FieldAccessMethod>(&MultiSwitchBase::editSFSwitchMode))
}

Reimplemented from osg::NodeCore.

Definition at line 259 of file OSGMultiSwitchBase.h.

Reimplemented from osg::GroupBase.

Definition at line 260 of file OSGMultiSwitchBase.h.

Referenced by getClassType(), getClassTypeId(), and getType().

const BitVector NodeCore::ParentsFieldMask = (1 << NodeCore::ParentsFieldId ) [static, inherited]
const bool osg::NodeCore::isNodeCore = true [static, inherited]

Reimplemented from osg::FieldContainer.

Definition at line 156 of file OSGNodeCore.h.

MFNodePtr osg::NodeCore::_parents [protected, inherited]
const BitVector osg::FieldContainer::NextFieldMask [static, inherited]
Initial value:
 
                    (TypeTraits<BitVector>::One << NextFieldId)

Definition at line 75 of file OSGFieldContainerImpl.h.

UInt32 osg::FieldContainer::_shares [protected, inherited]

Definition at line 199 of file OSGFieldContainerImpl.h.


The documentation for this class was generated from the following files:

Generated on 8 Feb 2010 for OpenSG by  doxygen 1.6.1