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

osg::Transform Class Reference

Transform provides one matrix to transform objects. More...

#include <OSGTransform.h>

Inheritance diagram for osg::Transform:

osg::TransformBase osg::Group osg::GroupBase osg::NodeCore osg::AttachmentContainer osg::FieldContainer osg::ComponentTransformBase osg::ComponentTransform List of all members.

Public Types

typedef TransformPtr Ptr
enum  { MatrixFieldId = Inherited::NextFieldId, NextFieldId = MatrixFieldId + 1 }

Public Member Functions

Sync
*virtual void changed (BitVector whichField, UInt32 origin)
Helper
*virtual void accumulateMatrix (Matrix &result)
void adjustVolume (Volume &volume)
Dump
*virtual void dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const
FieldContainer Get
*virtual FieldContainerTypegetType (void)
virtual const FieldContainerTypegetType (void) const
virtual UInt32 getContainerSize (void) const
Field Get
*SFMatrixgetSFMatrix (void)
 Get the Transform::_sfMatrix field.
MatrixgetMatrix (void)
 Get the value of the Transform::_sfMatrix field.
const MatrixgetMatrix (void) const
 Get the value of the Transform::_sfMatrix field.
Field Set
*void setMatrix (const Matrix &value)
 Set the value of the Transform::_sfMatrix field.
Binary Access
*virtual UInt32 getBinSize (const BitVector &whichField)
virtual void copyToBin (BinaryDataHandler &pMem, const BitVector &whichField)
virtual void copyFromBin (BinaryDataHandler &pMem, const BitVector &whichField)
Copy
*virtual FieldContainerPtr shallowCopy (void) const

Static Public Member Functions

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

Static Public Attributes

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

Protected Types

typedef TransformBase Inherited

Protected Member Functions

Constructors
Transform (void)
 Transform (const Transform &source)
Destructors
*virtual ~Transform (void)
Draw & Intersect & Render
*Action::ResultE drawEnter (Action *action)
Action::ResultE drawLeave (Action *action)
Action::ResultE intersectEnter (Action *action)
Action::ResultE intersectLeave (Action *action)
NewActionTypes::ResultE intersectEnter (ActorBase::FunctorArgumentType &funcArg)
NewActionTypes::ResultE intersectLeave (ActorBase::FunctorArgumentType &funcArg)
Action::ResultE renderEnter (Action *action)
Action::ResultE renderLeave (Action *action)
Sync
*void executeSyncImpl (TransformBase *pOther, const BitVector &whichField)
virtual void executeSync (FieldContainer &other, const BitVector &whichField)
Sync
*void executeSyncImpl (GroupBase *pOther, const BitVector &whichField)
Action Callbacks
Action::ResultE intersect (Action *action)

Protected Attributes

Fields
*SFMatrix _sfMatrix

Private Member Functions

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

Static Private Member Functions

Init
*static void initMethod (void)

Friends

class FieldContainer
class TransformBase

Detailed Description

The basic Transformation class. Just keeps a single matrix. For more complex behaviour, see its descendents.

Definition at line 58 of file OSGTransform.h.


Member Typedef Documentation

typedef TransformBase osg::Transform::Inherited [protected]
 

Reimplemented from osg::TransformBase.

Reimplemented in osg::ComponentTransform, and osg::ComponentTransformBase.

Definition at line 91 of file OSGTransform.h.

typedef TransformPtr osg::TransformBase::Ptr [inherited]
 

Reimplemented from osg::GroupBase.

Reimplemented in osg::ComponentTransformBase.

Definition at line 90 of file OSGTransformBase.h.


Member Enumeration Documentation

anonymous enum [inherited]
 

Enumerator:
MatrixFieldId 
NextFieldId 

Reimplemented from osg::NodeCore.

Definition at line 92 of file OSGTransformBase.h.

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


Constructor & Destructor Documentation

Transform::Transform void   )  [protected]
 

Definition at line 101 of file OSGTransform.cpp.

00101                          :
00102     Inherited()
00103 {
00104 }

Transform::Transform const Transform source  )  [protected]
 

Definition at line 106 of file OSGTransform.cpp.

00106                                             :
00107     Inherited(source)
00108 {
00109 }

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

Definition at line 114 of file OSGTransform.cpp.

00115 {
00116 }


Member Function Documentation

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

Reimplemented from osg::Group.

Reimplemented in osg::ComponentTransform.

Definition at line 66 of file OSGTransform.cpp.

References osg::Group::changed(), osg::NodeCore::invalidateVolume(), and osg::TransformBase::MatrixFieldMask.

Referenced by osg::ComponentTransform::changed().

00067 {
00068     if(whichField & MatrixFieldMask)
00069     {
00070         invalidateVolume();
00071     }
00072 
00073     Inherited::changed(whichField, origin);
00074 }

void Transform::accumulateMatrix Matrix result  )  [virtual]
 

Reimplemented from osg::NodeCore.

Definition at line 79 of file OSGTransform.cpp.

References osg::TransformBase::getMatrix(), and osg::TransformationMatrix< ValueTypeT >::mult().

00080 {
00081     result.mult(getMatrix());
00082 }

void Transform::adjustVolume Volume volume  )  [virtual]
 

Reimplemented from osg::NodeCore.

Definition at line 84 of file OSGTransform.cpp.

References osg::TransformBase::_sfMatrix, osg::SField< FieldTypeT, fieldNameSpace >::getValue(), and osg::Volume::transform().

00085 {
00086     volume.transform(_sfMatrix.getValue());
00087 }

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

Reimplemented from osg::Group.

Reimplemented in osg::ComponentTransform.

Definition at line 92 of file OSGTransform.cpp.

References osg::Group::dump().

Referenced by osg::ComponentTransform::dump().

00094 {
00095    Inherited::dump(uiIndent, bvFlags);
00096 }

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

Reimplemented from osg::Group.

Definition at line 122 of file OSGTransform.cpp.

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

Referenced by initMethod(), and osg::ComponentTransform::initMethod().

00123 {
00124     DrawAction *da = dynamic_cast<DrawAction *>(action);
00125 
00126     // should use the chunk, but it's not updated yet
00127     glPushMatrix ();
00128     glMultMatrixf(getMatrix().getValues());
00129 
00130     da->selectVisibles();
00131 
00132     return Action::Continue;
00133 }

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

Reimplemented from osg::Group.

Definition at line 135 of file OSGTransform.cpp.

References osg::Action::Continue.

Referenced by initMethod(), and osg::ComponentTransform::initMethod().

00136 {
00137     glPopMatrix();
00138 
00139     return Action::Continue;
00140 }

Action::ResultE Transform::intersectEnter Action action  )  [protected]
 

Definition at line 145 of file OSGTransform.cpp.

References osg::Action::Continue, osg::Line::getDirection(), osg::IntersectAction::getLine(), osg::TransformBase::getMatrix(), osg::IntersectAction::getMaxDist(), osg::Line::getPosition(), osg::TransformationMatrix< ValueTypeT >::invert(), osg::VectorInterface< ValueTypeT, StorageInterfaceT >::length(), osg::TransformationMatrix< ValueTypeT >::multFullMatrixPnt(), osg::TransformationMatrix< ValueTypeT >::multMatrixVec(), osg::IntersectAction::scale(), and osg::IntersectAction::setLine().

Referenced by initMethod(), and osg::ComponentTransform::initMethod().

00146 {
00147     IntersectAction *ia = dynamic_cast<IntersectAction *>(action);
00148     Matrix           m  = this->getMatrix();
00149 
00150     m.invert();
00151 
00152     Pnt3f pos;
00153     Vec3f dir;
00154 
00155     m.multFullMatrixPnt(ia->getLine().getPosition (), pos);
00156     m.multMatrixVec    (ia->getLine().getDirection(), dir);
00157 
00158     ia->setLine(Line(pos, dir), ia->getMaxDist());
00159     ia->scale(dir.length());
00160 
00161     return Action::Continue;
00162 }

Action::ResultE Transform::intersectLeave Action action  )  [protected]
 

Definition at line 164 of file OSGTransform.cpp.

References osg::Action::Continue, osg::Line::getDirection(), osg::IntersectAction::getLine(), osg::TransformBase::getMatrix(), osg::IntersectAction::getMaxDist(), osg::Line::getPosition(), osg::VectorInterface< ValueTypeT, StorageInterfaceT >::length(), osg::TransformationMatrix< ValueTypeT >::multFullMatrixPnt(), osg::TransformationMatrix< ValueTypeT >::multMatrixVec(), osg::IntersectAction::scale(), and osg::IntersectAction::setLine().

Referenced by initMethod(), and osg::ComponentTransform::initMethod().

00165 {
00166     IntersectAction *ia = dynamic_cast<IntersectAction *>(action);
00167     Matrix           m  = this->getMatrix();
00168 
00169     Pnt3f pos;
00170     Vec3f dir;
00171 
00172     m.multFullMatrixPnt(ia->getLine().getPosition (), pos);
00173     m.multMatrixVec    (ia->getLine().getDirection(), dir);
00174 
00175     ia->setLine(Line(pos, dir), ia->getMaxDist());
00176     ia->scale(dir.length());
00177 
00178     return Action::Continue;
00179 }

NewActionTypes::ResultE Transform::intersectEnter ActorBase::FunctorArgumentType funcArg  )  [protected]
 

Definition at line 182 of file OSGTransform.cpp.

References osg::NewActionTypes::Continue, osg::NewActionTypes::FunctorArgumentType::getActor(), osg::TransformBase::getMatrix(), osg::TransformationMatrix< ValueTypeT >::invert(), osg::VectorInterface< ValueTypeT, StorageInterfaceT >::length(), osg::TransformationMatrix< ValueTypeT >::multFullMatrixPnt(), osg::TransformationMatrix< ValueTypeT >::multMatrixVec(), and osg::Line::setValue().

00183 {
00184     IntersectActor *pIA        = dynamic_cast<IntersectActor *>(funcArg.getActor());
00185     Matrix          matrix     = this->getMatrix();
00186     Line            transLine;
00187     Pnt3f           pos;
00188     Vec3f           dir;
00189 
00190     matrix.invert();
00191 
00192     matrix.multFullMatrixPnt(pIA->getRay().getPosition (), pos);
00193     matrix.multMatrixVec    (pIA->getRay().getDirection(), dir);
00194 
00195     transLine.setValue(pos, dir);
00196 
00197     pIA->beginEditState();
00198     {
00199         pIA->setRay        (transLine                           );
00200         pIA->setScaleFactor(pIA->getScaleFactor() / dir.length());
00201     }
00202     pIA->endEditState  ();
00203 
00204     pIA->setupChildrenPriorities();
00205 
00206     return NewActionTypes::Continue;
00207 }

NewActionTypes::ResultE Transform::intersectLeave ActorBase::FunctorArgumentType funcArg  )  [protected]
 

Definition at line 210 of file OSGTransform.cpp.

References osg::NewActionTypes::Continue, osg::NewActionTypes::FunctorArgumentType::getActor(), osg::TransformBase::getMatrix(), osg::VectorInterface< ValueTypeT, StorageInterfaceT >::length(), osg::TransformationMatrix< ValueTypeT >::multFullMatrixPnt(), and osg::TransformationMatrix< ValueTypeT >::multMatrixVec().

00211 {
00212     IntersectActor *pIA    = dynamic_cast<IntersectActor *>(funcArg.getActor());
00213     const Matrix   &matrix = this->getMatrix();
00214           Pnt3f     pos;
00215           Vec3f     dir;
00216 
00217     matrix.multFullMatrixPnt(pIA->getRay().getPosition (), pos);
00218     matrix.multMatrixVec    (pIA->getRay().getDirection(), dir);
00219 
00220     pIA->beginEditState();
00221     {
00222         pIA->setRay        (Line(pos, dir)                      );
00223         pIA->setScaleFactor(pIA->getScaleFactor() / dir.length());
00224     }
00225     pIA->endEditState  ();
00226 
00227     return NewActionTypes::Continue;
00228 }

Action::ResultE Transform::renderEnter Action action  )  [protected]
 

Reimplemented from osg::Group.

Definition at line 233 of file OSGTransform.cpp.

References osg::Action::Continue, osg::RenderAction::push_matrix(), and osg::RenderAction::pushVisibility().

Referenced by initMethod(), and osg::ComponentTransform::initMethod().

00234 {
00235     RenderAction *pAction = dynamic_cast<RenderAction *>(action);
00236 
00237     pAction->pushVisibility();
00238 
00239     pAction->push_matrix(this->getMatrix());
00240 
00241     return Action::Continue;
00242 }

Action::ResultE Transform::renderLeave Action action  )  [protected]
 

Reimplemented from osg::Group.

Definition at line 244 of file OSGTransform.cpp.

References osg::Action::Continue, osg::RenderAction::pop_matrix(), and osg::RenderAction::popVisibility().

Referenced by initMethod(), and osg::ComponentTransform::initMethod().

00245 {
00246     RenderAction *pAction = dynamic_cast<RenderAction *>(action);
00247 
00248     pAction->popVisibility();
00249 
00250     pAction->pop_matrix();
00251 
00252     return Action::Continue;
00253 }

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

Reimplemented from osg::Group.

Reimplemented in osg::ComponentTransform.

Definition at line 258 of file OSGTransform.cpp.

References drawEnter(), drawLeave(), osg::TransformBase::getClassType(), intersectEnter(), intersectLeave(), osg::osgTypedMethodFunctor2BaseCPtr(), osg::osgTypedMethodFunctor2BaseCPtrRef(), osg::RenderAction::registerEnterDefault(), osg::IntersectAction::registerEnterDefault(), osg::DrawAction::registerEnterDefault(), osg::RenderAction::registerLeaveDefault(), osg::IntersectAction::registerLeaveDefault(), osg::DrawAction::registerLeaveDefault(), renderEnter(), and renderLeave().

00259 {
00260     DrawAction::registerEnterDefault(
00261         getClassType(),
00262         osgTypedMethodFunctor2BaseCPtrRef<
00263             Action::ResultE,
00264             TransformPtr    ,
00265             CNodePtr        ,
00266             Action         *>(&Transform::drawEnter));
00267 
00268     DrawAction::registerLeaveDefault(
00269         getClassType(),
00270         osgTypedMethodFunctor2BaseCPtrRef<
00271             Action::ResultE,
00272             TransformPtr    ,
00273             CNodePtr        ,
00274             Action         *>(&Transform::drawLeave));
00275 
00276 
00277     IntersectAction::registerEnterDefault(
00278         getClassType(),
00279         osgTypedMethodFunctor2BaseCPtrRef<
00280             Action::ResultE,
00281             TransformPtr    ,
00282             CNodePtr        ,
00283             Action         *>(&Transform::intersectEnter));
00284 
00285     IntersectAction::registerLeaveDefault(
00286         getClassType(),
00287         osgTypedMethodFunctor2BaseCPtrRef<
00288             Action::ResultE,
00289             TransformPtr    ,
00290             CNodePtr        ,
00291             Action         *>(&Transform::intersectLeave));
00292 
00293 
00294     RenderAction::registerEnterDefault(
00295         getClassType(),
00296         osgTypedMethodFunctor2BaseCPtrRef<
00297             Action::ResultE,
00298             TransformPtr    ,
00299             CNodePtr        ,
00300             Action         *>(&Transform::renderEnter));
00301 
00302     RenderAction::registerLeaveDefault(
00303         getClassType(),
00304         osgTypedMethodFunctor2BaseCPtrRef<
00305             Action::ResultE,
00306             TransformPtr    ,
00307             CNodePtr        ,
00308             Action         *>(&Transform::renderLeave));
00309 
00310     IntersectActor::regClassEnter(
00311         osgTypedMethodFunctor2BaseCPtr<
00312           NewActionTypes::ResultE,
00313           TransformPtr           ,
00314           NodeCorePtr            ,
00315           ActorBase::FunctorArgumentType &>(&Transform::intersectEnter),
00316         getClassType());
00317 
00318     IntersectActor::regClassLeave(
00319         osgTypedMethodFunctor2BaseCPtr<
00320           NewActionTypes::ResultE,
00321           TransformPtr           ,
00322           NodeCorePtr            ,
00323           ActorBase::FunctorArgumentType &>(&Transform::intersectLeave),
00324         getClassType());
00325 }

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

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

Reimplemented from osg::GroupBase.

Reimplemented in osg::ComponentTransformBase.

Definition at line 58 of file OSGTransformBase.inl.

References osg::TransformBase::_type.

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

00059 {
00060     return _type; 
00061 } 

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

Reimplemented from osg::GroupBase.

Reimplemented in osg::ComponentTransformBase.

Definition at line 65 of file OSGTransformBase.inl.

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

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

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

Reimplemented from osg::GroupBase.

Reimplemented in osg::ComponentTransformBase.

Definition at line 106 of file OSGTransformBase.cpp.

References osg::TransformBase::_type.

00107 {
00108     return _type; 
00109 } 

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

Reimplemented from osg::GroupBase.

Reimplemented in osg::ComponentTransformBase.

Definition at line 111 of file OSGTransformBase.cpp.

References osg::TransformBase::_type.

00112 {
00113     return _type;
00114 } 

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

Reimplemented from osg::GroupBase.

Reimplemented in osg::ComponentTransformBase.

Definition at line 126 of file OSGTransformBase.cpp.

00127 { 
00128     return sizeof(Transform); 
00129 }

SFMatrix * osg::TransformBase::getSFMatrix void   )  [inline, inherited]
 

Definition at line 101 of file OSGTransformBase.inl.

References osg::TransformBase::_sfMatrix.

00102 {
00103     return &_sfMatrix;
00104 }

Matrix & osg::TransformBase::getMatrix void   )  [inline, inherited]
 

Definition at line 109 of file OSGTransformBase.inl.

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

Referenced by accumulateMatrix(), osg::ComponentTransform::changed(), drawEnter(), intersectEnter(), and intersectLeave().

00110 {
00111     return _sfMatrix.getValue();
00112 }

const Matrix & osg::TransformBase::getMatrix void   )  const [inline, inherited]
 

Definition at line 116 of file OSGTransformBase.inl.

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

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

void osg::TransformBase::setMatrix const Matrix value  )  [inline, inherited]
 

Reimplemented in osg::ComponentTransform.

Definition at line 123 of file OSGTransformBase.inl.

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

00124 {
00125     _sfMatrix.setValue(value);
00126 }

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

Reimplemented from osg::GroupBase.

Reimplemented in osg::ComponentTransformBase.

Definition at line 188 of file OSGTransformBase.cpp.

References osg::TransformBase::_sfMatrix, osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::GroupBase::getBinSize(), osg::TransformBase::MatrixFieldMask, and osg::FieldBits::NoField.

Referenced by osg::ComponentTransformBase::getBinSize().

00189 {
00190     UInt32 returnValue = Inherited::getBinSize(whichField);
00191 
00192     if(FieldBits::NoField != (MatrixFieldMask & whichField))
00193     {
00194         returnValue += _sfMatrix.getBinSize();
00195     }
00196 
00197 
00198     return returnValue;
00199 }

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

Reimplemented from osg::GroupBase.

Reimplemented in osg::ComponentTransformBase.

Definition at line 201 of file OSGTransformBase.cpp.

References osg::TransformBase::_sfMatrix, osg::SField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::GroupBase::copyToBin(), osg::TransformBase::MatrixFieldMask, and osg::FieldBits::NoField.

Referenced by osg::ComponentTransformBase::copyToBin().

00203 {
00204     Inherited::copyToBin(pMem, whichField);
00205 
00206     if(FieldBits::NoField != (MatrixFieldMask & whichField))
00207     {
00208         _sfMatrix.copyToBin(pMem);
00209     }
00210 
00211 
00212 }

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

Reimplemented from osg::GroupBase.

Reimplemented in osg::ComponentTransformBase.

Definition at line 214 of file OSGTransformBase.cpp.

References osg::TransformBase::_sfMatrix, osg::SField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::GroupBase::copyFromBin(), osg::TransformBase::MatrixFieldMask, and osg::FieldBits::NoField.

Referenced by osg::ComponentTransformBase::copyFromBin().

00216 {
00217     Inherited::copyFromBin(pMem, whichField);
00218 
00219     if(FieldBits::NoField != (MatrixFieldMask & whichField))
00220     {
00221         _sfMatrix.copyFromBin(pMem);
00222     }
00223 
00224 
00225 }

TransformPtr osg::TransformBase::create void   )  [inline, static, inherited]
 

Reimplemented from osg::GroupBase.

Reimplemented in osg::ComponentTransformBase.

Definition at line 72 of file OSGTransformBase.inl.

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

Referenced by osg::SimpleSceneManager::initialize().

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

TransformPtr osg::TransformBase::createEmpty void   )  [inline, static, inherited]
 

Reimplemented from osg::GroupBase.

Reimplemented in osg::ComponentTransformBase.

Definition at line 87 of file OSGTransformBase.inl.

References osg::FieldContainer::newPtr().

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

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

Reimplemented from osg::GroupBase.

Reimplemented in osg::ComponentTransformBase.

Definition at line 117 of file OSGTransformBase.cpp.

References osg::FieldContainer::newPtr().

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

00118 { 
00119     TransformPtr returnValue; 
00120 
00121     newPtr(returnValue, dynamic_cast<const Transform *>(this)); 
00122 
00123     return returnValue; 
00124 }

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

Definition at line 228 of file OSGTransformBase.cpp.

References osg::TransformBase::_sfMatrix, osg::GroupBase::executeSyncImpl(), osg::TransformBase::MatrixFieldMask, osg::FieldBits::NoField, and osg::SField< FieldTypeT, fieldNameSpace >::syncWith().

Referenced by osg::TransformBase::executeSync(), and osg::ComponentTransformBase::executeSyncImpl().

00230 {
00231 
00232     Inherited::executeSyncImpl(pOther, whichField);
00233 
00234     if(FieldBits::NoField != (MatrixFieldMask & whichField))
00235         _sfMatrix.syncWith(pOther->_sfMatrix);
00236 
00237 
00238 }

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

Definition at line 191 of file OSGGroupBase.cpp.

References osg::NodeCore::executeSyncImpl().

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

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

void 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