#include <OSGDistanceLOD.h>

Public Types | |
| enum | { CenterFieldId = Inherited::NextFieldId, RangeFieldId = CenterFieldId + 1, NextFieldId = RangeFieldId + 1 } |
| typedef DistanceLODPtr | Ptr |
| enum | { ParentsFieldId = Inherited::NextFieldId, NextFieldId = ParentsFieldId + 1 } |
| typedef MFNodePtr | ParentField |
| typedef MFNodePtr * | ParentFieldPtr |
| typedef MFNodePtr::iterator | ParentFieldIt |
| enum | { AttachmentsFieldId = Inherited::NextFieldId, NextFieldId = AttachmentsFieldId + 1 } |
| enum | { NextFieldId = 1 } |
Public Member Functions | |
Sync | |
| virtual void | changed (BitVector whichField, UInt32 origin) |
Dump | |
| virtual void | dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const |
FieldContainer Get | |
| virtual FieldContainerType & | getType (void) |
| virtual const FieldContainerType & | getType (void) const |
| virtual UInt32 | getContainerSize (void) const |
Field Get | |
| SFPnt3f * | getSFCenter (void) |
| Get the DistanceLOD::_sfCenter field. | |
| MFReal32 * | getMFRange (void) |
| Get the DistanceLOD::_mfRange field. | |
| Pnt3f & | getCenter (void) |
| Get the value of the DistanceLOD::_sfCenter field. | |
| const Pnt3f & | getCenter (void) const |
| Get the value of the DistanceLOD::_sfCenter field. | |
| Real32 & | getRange (const UInt32 index) |
| Get the value of the index element the DistanceLOD::_mfRange field. | |
| MFReal32 & | getRange (void) |
| Get the DistanceLOD::_mfRange field. | |
| const MFReal32 & | getRange (void) const |
| Get the DistanceLOD::_mfRange field. | |
Field Set | |
| void | setCenter (const Pnt3f &value) |
| Set the value of the DistanceLOD::_sfCenter 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 |
Parents | |
| MFNodePtr & | getParents (void) |
| const MFNodePtr & | getParents (void) const |
| MFNodePtr * | getMFParents (void) |
Volume | |
| virtual void | invalidateVolume (void) |
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) |
| SFAttachmentMap * | getSFAttachments (void) |
Get Instance Type Information | |
| UInt32 | getTypeId (void) const |
| UInt16 | getGroupId (void) const |
| const Char8 * | getTypeName (void) const |
| Field * | getField (UInt32 fieldId) |
| Field * | getField (const Char8 *fieldName) |
Static Public Member Functions | |
Class Get | |
| static FieldContainerType & | getClassType (void) |
| access the type of the class | |
| static UInt32 | getClassTypeId (void) |
| access the numerical type of the class | |
Construction | |
| static DistanceLODPtr | create (void) |
| create a new instance of the class | |
| static DistanceLODPtr | 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 | CenterFieldMask |
| static const osg::BitVector | RangeFieldMask |
| 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 Types | |
| typedef DistanceLODBase | Inherited |
Protected Member Functions | |
Constructors | |
| DistanceLOD (void) | |
| DistanceLOD (const DistanceLOD &source) | |
Destructors | |
| virtual | ~DistanceLOD (void) |
Draw | |
| Action::ResultE | draw (Action *action) |
Sync | |
| void | executeSyncImpl (DistanceLODBase *pOther, const BitVector &whichField) |
| virtual void | executeSync (FieldContainer &other, const BitVector &whichField) |
Sync | |
| void | executeSyncImpl (GroupBase *pOther, const BitVector &whichField) |
Sync | |
| void | executeSyncImpl (NodeCore *pOther, const BitVector &whichField) |
Sync | |
| void | executeSyncImpl (AttachmentContainer *pOther, const BitVector &whichField) |
Sync | |
| void | executeSyncImpl (FieldContainer *pOther, 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) |
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) |
Transformation | |
| virtual void | accumulateMatrix (Matrix &result) |
Volume | |
| virtual void | adjustVolume (Volume &volume) |
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 | |
| SFPnt3f | _sfCenter |
| MFReal32 | _mfRange |
Fields | |
| MFNodePtr | _parents |
Fields | |
| SFAttachmentMap | _attachmentMap |
Member | |
| UInt32 | _shares |
Private Member Functions | |
| void | operator= (const DistanceLOD &source) |
| prohibit default function (move to 'public' if needed) | |
Static Private Member Functions | |
Init | |
| static void | initMethod (void) |
Friends | |
| class | FieldContainer |
| class | DistanceLODBase |
The node chooses which child to render based on the range values in the Range multi-field and the current distance of the camera from the object. The children should be ordered from the highest level of detail to the lowest level of detail. The range values specify the distances at which to switch between the different children.
The center field is a translation offset in the local coordinate system that specified the center of the object for distance calculations. In order to calculate which level to display, first the distance is calculate from the viewpoint to the center point of the LOD node (which corresponding transformations). If the distance is less than the first range value, then the first LOD is drawn. If it is between the first and the second values, then the second LOD is drawn, and so on.
Example: Setting up a osg::DistanceLOD
Here is an example of setting up an lod core with a center and a range. You would also need to add children for the 4 LODs.
DistanceLOD lod = DistanceLOD::create(); beginEditCP(lod); // this is supposed to be the center of the LOD model, // that is, this is the point the distance is measured from lod->setCenter(12,1,5); // now we add the distances when models will change lod->getMFRange()->push_back(6.0); lod->getMFRange()->push_back(12.0); lod->getMFRange()->push_back(24.0); endEditCP(lod);
Definition at line 56 of file OSGDistanceLOD.h.
typedef DistanceLODBase osg::DistanceLOD::Inherited [protected] |
typedef DistanceLODPtr osg::DistanceLODBase::Ptr [inherited] |
typedef MFNodePtr osg::NodeCore::ParentField [inherited] |
Definition at line 85 of file OSGNodeCore.h.
typedef MFNodePtr* osg::NodeCore::ParentFieldPtr [inherited] |
Definition at line 86 of file OSGNodeCore.h.
typedef MFNodePtr::iterator osg::NodeCore::ParentFieldIt [inherited] |
Definition at line 87 of file OSGNodeCore.h.
anonymous enum [inherited] |
Definition at line 93 of file OSGDistanceLODBase.h.
00094 { 00095 CenterFieldId = Inherited::NextFieldId, 00096 RangeFieldId = CenterFieldId + 1, 00097 NextFieldId = RangeFieldId + 1 00098 };
anonymous enum [inherited] |
Definition at line 93 of file OSGNodeCore.h.
00094 { 00095 ParentsFieldId = Inherited::NextFieldId, 00096 NextFieldId = ParentsFieldId + 1 00097 };
anonymous enum [inherited] |
Definition at line 78 of file OSGAttachmentContainerImpl.h.
00079 { 00080 AttachmentsFieldId = Inherited::NextFieldId, 00081 NextFieldId = AttachmentsFieldId + 1 00082 };
anonymous enum [inherited] |
| DistanceLOD::DistanceLOD | ( | void | ) | [protected] |
| DistanceLOD::DistanceLOD | ( | const DistanceLOD & | source | ) | [protected] |
| DistanceLOD::~DistanceLOD | ( | void | ) | [protected, virtual] |
Reimplemented from osg::Group.
Definition at line 102 of file OSGDistanceLOD.cpp.
References osg::Group::changed().
00103 { 00104 Inherited::changed(whichField, origin); 00105 }
Reimplemented from osg::Group.
Definition at line 110 of file OSGDistanceLOD.cpp.
References SLOG.
00112 { 00113 SLOG << "Dump DistanceLOD NI" << std::endl; 00114 }
| Action::ResultE DistanceLOD::draw | ( | Action * | action | ) | [protected] |
Definition at line 139 of file OSGDistanceLOD.cpp.
References osg::Action::addNode(), osg::Action::Continue, osg::Action::getActNode(), osg::DrawActionBase::getCameraToWorld(), osg::DistanceLODBase::getCenter(), osg::NodePtr::getCPtr(), osg::DistanceLODBase::getMFRange(), osg::Action::getNNodes(), osg::Action::getNode(), osg::DrawActionBase::isVisible(), osg::TransformationMatrix< ValueTypeT >::mult(), osg::osgMin(), osg::osgsqrt(), osg::MField< FieldTypeT, fieldNameSpace >::size(), osg::RenderAction::top_matrix(), and osg::Action::useNodeList().
Referenced by initMethod().
00140 { 00141 DrawActionBase *da = dynamic_cast<DrawActionBase *>(action); 00142 RenderAction *ra = dynamic_cast<RenderAction *>(action); 00143 00144 UInt32 numLevels = action->getNNodes(); 00145 UInt32 numRanges = getMFRange()->size(); 00146 00147 UInt32 limit = osgMin(numLevels, numRanges); 00148 00149 Int32 index = -1; 00150 00151 Pnt3f eyepos(0.f, 0.f, 0.f); 00152 Pnt3f objpos; 00153 00154 da->getCameraToWorld().mult(eyepos); 00155 00156 if(ra != NULL) 00157 { 00158 ra->top_matrix() .mult(getCenter(), objpos); 00159 } 00160 else 00161 { 00162 da->getActNode()->getToWorld().mult(getCenter(), objpos); 00163 } 00164 00165 Real32 dist = osgsqrt((eyepos[0] - objpos[0])*(eyepos[0] - objpos[0]) + 00166 (eyepos[1] - objpos[1])*(eyepos[1] - objpos[1]) + 00167 (eyepos[2] - objpos[2])*(eyepos[2] - objpos[2])); 00168 00169 da->useNodeList(); 00170 00171 if(numRanges != 0 && numLevels!=0 ) 00172 { 00173 if(dist < (*(getMFRange()))[0]) 00174 { 00175 index = 0; 00176 } 00177 else if(dist >= (*(getMFRange()))[numRanges-1]) 00178 { 00179 index = (numLevels > numRanges) ? numRanges : (limit-1); 00180 } 00181 else 00182 { 00183 UInt32 i = 1; 00184 00185 while( (i < numRanges) && 00186 !( ((*(getMFRange()))[i-1] <= dist) && 00187 (dist < (*(getMFRange()))[i] ) ) ) 00188 { 00189 i++; 00190 } 00191 00192 index = osgMin(i, limit-1); 00193 } 00194 00195 if(da->isVisible(action->getNode(index).getCPtr())) 00196 { 00197 da->addNode(action->getNode(index)); 00198 } 00199 } 00200 00201 return Action::Continue; 00202 }
| void DistanceLOD::initMethod | ( | void | ) | [static, private] |
Reimplemented from osg::Group.
Definition at line 207 of file OSGDistanceLOD.cpp.
References draw(), osg::DistanceLODBase::getClassType(), osg::osgTypedMethodFunctor2BaseCPtrRef(), osg::RenderAction::registerEnterDefault(), and osg::DrawAction::registerEnterDefault().
00208 { 00209 DrawAction::registerEnterDefault( 00210 getClassType(), 00211 osgTypedMethodFunctor2BaseCPtrRef< 00212 Action::ResultE, 00213 DistanceLODPtr , 00214 CNodePtr , 00215 Action *>(&DistanceLOD::draw)); 00216 00217 RenderAction::registerEnterDefault( 00218 getClassType(), 00219 osgTypedMethodFunctor2BaseCPtrRef< 00220 Action::ResultE, 00221 DistanceLODPtr , 00222 CNodePtr , 00223 Action *>(&DistanceLOD::draw)); 00224 }
| void osg::DistanceLOD::operator= | ( | const DistanceLOD & | source | ) | [private] |
| osg::FieldContainerType & osg::DistanceLODBase::getClassType | ( | void | ) | [inline, static, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 58 of file OSGDistanceLODBase.inl.
References osg::DistanceLODBase::_type.
Referenced by osg::DistanceLODBase::create(), initMethod(), osg::SplitGraphOp::isGroup(), and osg::MergeGraphOp::isGroup().
00059 { 00060 return _type; 00061 }
| osg::UInt32 osg::DistanceLODBase::getClassTypeId | ( | void | ) | [inline, static, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 65 of file OSGDistanceLODBase.inl.
References osg::DistanceLODBase::_type, and osg::TypeBase::getId().
00066 { 00067 return _type.getId(); 00068 }
| FieldContainerType & DistanceLODBase::getType | ( | void | ) | [virtual, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 117 of file OSGDistanceLODBase.cpp.
References osg::DistanceLODBase::_type.
00118 { 00119 return _type; 00120 }
| const FieldContainerType & DistanceLODBase::getType | ( | void | ) | const [virtual, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 122 of file OSGDistanceLODBase.cpp.
References osg::DistanceLODBase::_type.
00123 { 00124 return _type; 00125 }
| UInt32 DistanceLODBase::getContainerSize | ( | void | ) | const [virtual, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 137 of file OSGDistanceLODBase.cpp.
00138 { 00139 return sizeof(DistanceLOD); 00140 }
| SFPnt3f * osg::DistanceLODBase::getSFCenter | ( | void | ) | [inline, inherited] |
Definition at line 101 of file OSGDistanceLODBase.inl.
References osg::DistanceLODBase::_sfCenter.
00102 { 00103 return &_sfCenter; 00104 }
| MFReal32 * osg::DistanceLODBase::getMFRange | ( | void | ) | [inline, inherited] |
Definition at line 108 of file OSGDistanceLODBase.inl.
References osg::DistanceLODBase::_mfRange.
Referenced by draw().
00109 { 00110 return &_mfRange; 00111 }
| Pnt3f & osg::DistanceLODBase::getCenter | ( | void | ) | [inline, inherited] |
Definition at line 116 of file OSGDistanceLODBase.inl.
References osg::DistanceLODBase::_sfCenter, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
Referenced by draw().
00117 { 00118 return _sfCenter.getValue(); 00119 }
| const Pnt3f & osg::DistanceLODBase::getCenter | ( | void | ) | const [inline, inherited] |
Definition at line 123 of file OSGDistanceLODBase.inl.
References osg::DistanceLODBase::_sfCenter, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
00124 { 00125 return _sfCenter.getValue(); 00126 }
Definition at line 138 of file OSGDistanceLODBase.inl.
References osg::DistanceLODBase::_mfRange.
00139 { 00140 return _mfRange[index]; 00141 }
| MFReal32 & osg::DistanceLODBase::getRange | ( | void | ) | [inline, inherited] |
Definition at line 145 of file OSGDistanceLODBase.inl.
References osg::DistanceLODBase::_mfRange.
00146 { 00147 return _mfRange; 00148 }
| const MFReal32 & osg::DistanceLODBase::getRange | ( | void | ) | const [inline, inherited] |
Definition at line 152 of file OSGDistanceLODBase.inl.
References osg::DistanceLODBase::_mfRange.
00153 { 00154 return _mfRange; 00155 }
| void osg::DistanceLODBase::setCenter | ( | const Pnt3f & | value | ) | [inline, inherited] |
Definition at line 130 of file OSGDistanceLODBase.inl.
References osg::DistanceLODBase::_sfCenter, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().
Reimplemented from osg::GroupBase.
Definition at line 202 of file OSGDistanceLODBase.cpp.
References osg::DistanceLODBase::_mfRange, osg::DistanceLODBase::_sfCenter, osg::DistanceLODBase::CenterFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::GroupBase::getBinSize(), osg::FieldBits::NoField, and osg::DistanceLODBase::RangeFieldMask.
00203 { 00204 UInt32 returnValue = Inherited::getBinSize(whichField); 00205 00206 if(FieldBits::NoField != (CenterFieldMask & whichField)) 00207 { 00208 returnValue += _sfCenter.getBinSize(); 00209 } 00210 00211 if(FieldBits::NoField != (RangeFieldMask & whichField)) 00212 { 00213 returnValue += _mfRange.getBinSize(); 00214 } 00215 00216 00217 return returnValue; 00218 }
| void DistanceLODBase::copyToBin | ( | BinaryDataHandler & | pMem, | |
| const BitVector & | whichField | |||
| ) | [virtual, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 220 of file OSGDistanceLODBase.cpp.
References osg::DistanceLODBase::_mfRange, osg::DistanceLODBase::_sfCenter, osg::DistanceLODBase::CenterFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::SField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::GroupBase::copyToBin(), osg::FieldBits::NoField, and osg::DistanceLODBase::RangeFieldMask.
00222 { 00223 Inherited::copyToBin(pMem, whichField); 00224 00225 if(FieldBits::NoField != (CenterFieldMask & whichField)) 00226 { 00227 _sfCenter.copyToBin(pMem); 00228 } 00229 00230 if(FieldBits::NoField != (RangeFieldMask & whichField)) 00231 { 00232 _mfRange.copyToBin(pMem); 00233 } 00234 00235 00236 }
| void DistanceLODBase::copyFromBin | ( | BinaryDataHandler & | pMem, | |
| const BitVector & | whichField | |||
| ) | [virtual, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 238 of file OSGDistanceLODBase.cpp.
References osg::DistanceLODBase::_mfRange, osg::DistanceLODBase::_sfCenter, osg::DistanceLODBase::CenterFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::SField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::GroupBase::copyFromBin(), osg::FieldBits::NoField, and osg::DistanceLODBase::RangeFieldMask.
00240 { 00241 Inherited::copyFromBin(pMem, whichField); 00242 00243 if(FieldBits::NoField != (CenterFieldMask & whichField)) 00244 { 00245 _sfCenter.copyFromBin(pMem); 00246 } 00247 00248 if(FieldBits::NoField != (RangeFieldMask & whichField)) 00249 { 00250 _mfRange.copyFromBin(pMem); 00251 } 00252 00253 00254 }
| DistanceLODPtr osg::DistanceLODBase::create | ( | void | ) | [inline, static, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 72 of file OSGDistanceLODBase.inl.
References osg::AttachmentContainerPtr::dcast(), osg::DistanceLODBase::getClassType(), osg::NullFC, and osg::DistanceLODBase::shallowCopy().
Referenced by osg::VRMLLODDesc::init().
00073 { 00074 DistanceLODPtr fc; 00075 00076 if(getClassType().getPrototype() != OSG::NullFC) 00077 { 00078 fc = DistanceLODPtr::dcast( 00079 getClassType().getPrototype()-> shallowCopy()); 00080 } 00081 00082 return fc; 00083 }
| DistanceLODPtr osg::DistanceLODBase::createEmpty | ( | void | ) | [inline, static, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 87 of file OSGDistanceLODBase.inl.
References osg::FieldContainer::newPtr().
00088 { 00089 DistanceLODPtr returnValue; 00090 00091 newPtr(returnValue); 00092 00093 return returnValue; 00094 }
| FieldContainerPtr DistanceLODBase::shallowCopy | ( | void | ) | const [virtual, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 128 of file OSGDistanceLODBase.cpp.
References osg::FieldContainer::newPtr().
Referenced by osg::DistanceLODBase::create().
00129 { 00130 DistanceLODPtr returnValue; 00131 00132 newPtr(returnValue, dynamic_cast<const DistanceLOD *>(this)); 00133 00134 return returnValue; 00135 }
| void DistanceLODBase::executeSyncImpl | ( | DistanceLODBase * | pOther, | |
| const BitVector & | whichField | |||
| ) | [protected, inherited] |
Definition at line 257 of file OSGDistanceLODBase.cpp.
References osg::DistanceLODBase::_mfRange, osg::DistanceLODBase::_sfCenter, osg::DistanceLODBase::CenterFieldMask, osg::GroupBase::executeSyncImpl(), osg::FieldBits::NoField, osg::DistanceLODBase::RangeFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::syncWith(), and osg::SField< FieldTypeT, fieldNameSpace >::syncWith().
Referenced by osg::DistanceLODBase::executeSync().
00259 { 00260 00261 Inherited::executeSyncImpl(pOther, whichField); 00262 00263 if(FieldBits::NoField != (CenterFieldMask & whichField)) 00264 _sfCenter.syncWith(pOther->_sfCenter); 00265 00266 if(FieldBits::NoField != (RangeFieldMask & whichField)) 00267 _mfRange.syncWith(pOther->_mfRange); 00268 00269 00270 }
| 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::ScreenGroupBase::executeSyncImpl(), osg::ProxyGroupBase::executeSyncImpl(), osg::MaterialPoolBase::executeSyncImpl(), osg::MaterialGroupBase::executeSyncImpl(), osg::LightBase::executeSyncImpl(), osg::InverseTransformBase::executeSyncImpl(), osg::DistanceLODBase::executeSyncImpl(), osg::ClipPlaneBase::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::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::DisplayFilterBase::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().
| void DistanceLODBase::executeSync | ( | FieldContainer & | other, | |
| const BitVector & | whichField | |||
| ) | [protected, virtual, inherited] |
Reimplemented from osg::GroupBase.
Definition at line 144 of file OSGDistanceLODBase.cpp.
References osg::DistanceLODBase::executeSyncImpl().
00146 { 00147 this->executeSyncImpl((DistanceLODBase *) &other, whichField); 00148 }
| Action::ResultE Group::drawEnter | ( | Action * | action | ) | [protected, inherited] |
Reimplemented in osg::DirectionalLight, osg::Light, osg::PointLight, osg::SpotLight, osg::Billboard, 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] |
Reimplemented in osg::DirectionalLight, osg::Light, osg::PointLight, osg::SpotLight, osg::Billboard, osg::InverseTransform, osg::MaterialGroup, osg::ScreenGroup, and osg::Transform.
Definition at line 110 of file OSGGroup.cpp.
References osg::Action::Continue.
Referenced by osg::Group::initMethod().
00111 { 00112 return Action::Continue; 00113 }
| Action::ResultE Group::renderEnter | ( | Action * | action | ) | [protected, inherited] |
Reimplemented in osg::DirectionalLight, osg::Light, osg::PointLight, osg::SpotLight, osg::Billboard, osg::ClipPlane, 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(), and osg::MaterialGroup::renderEnter().
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] |
Reimplemented in osg::DirectionalLight, osg::Light, osg::PointLight, osg::SpotLight, osg::Billboard, osg::ClipPlane, osg::InverseTransform, osg::MaterialGroup, osg::ScreenGroup, and osg::Transform.
Definition at line 134 of file OSGGroup.cpp.
References osg::Action::Continue, and osg::RenderAction::popVisibility().
Referenced by osg::Group::initMethod(), and osg::MaterialGroup::renderLeave().
00135 { 00136 RenderAction *ra = dynamic_cast<RenderAction *>(action); 00137 00138 ra->popVisibility(); 00139 00140 return Action::Continue; 00141 }
| Action::ResultE Group::intersect | ( | Action * | action | ) | [protected, inherited] |
Reimplemented in osg::Switch.
Definition at line 146 of file OSGGroup.cpp.
References osg::Action::Continue, osg::Action::getActNode(), osg::IntersectAction::getLine(), osg::DynamicVolume::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 const DynamicVolume &dv = ia->getActNode()->getVolume(); 00150 00151 if(dv.isValid() && ! dv.intersect(ia->getLine())) 00152 { 00153 return Action::Skip; //bv missed -> can not hit children 00154 } 00155 00156 return Action::Continue; 00157 }
| MFNodePtr & osg::NodeCore::getParents | ( | void | ) | [inline, inherited] |
Definition at line 56 of file OSGNodeCore.inl.
Referenced by osg::Surface::FindClosestPoint().
00057 { 00058 return _parents; 00059 }
| const MFNodePtr & osg::NodeCore::getParents | ( | void | ) | const [inline, inherited] |
Definition at line 62 of file OSGNodeCore.inl.
References osg::NodeCore::_parents.
00063 { 00064 return _parents; 00065 }
| MFNodePtr * osg::NodeCore::getMFParents | ( | void | ) | [inline, inherited] |
Definition at line 68 of file OSGNodeCore.inl.
References osg::NodeCore::_parents.
00069 { 00070 return &_parents; 00071 }
| void osg::NodeCore::invalidateVolume | ( | void | ) | [inline, virtual, inherited] |
Definition at line 237 of file OSGNodeCore.inl.
References osg::NodeCore::_parents, and osg::MField< FieldTypeT, fieldNameSpace >::size().
Referenced by osg::Transform::changed(), and osg::Slices::changed().
00238 { 00239 for(UInt32 i = 0; i < _parents.size(); i++) 00240 { 00241 _parents[i]->invalidateVolume(); 00242 } 00243 }
| void osg::NodeCore::onDestroy | ( | void | ) | [inline, protected, virtual, inherited] |
Reimplemented from osg::FieldContainer.
Reimplemented in osg::Geometry, osg::Surface, and osg::MaterialPool.
Definition at line 142 of file OSGNodeCore.inl.
Referenced by osg::Geometry::onDestroy().
| 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().
| AttachmentContainerPtr AttachmentContainer::getPtr | ( | void | ) | [protected, inherited] |
Definition at line 352 of file OSGAttachmentContainer.cpp.
Referenced by osg::FileGrabForeground::draw(), osg::FBOViewport::render(), osg::AttachmentContainer::subAttachment(), and osg::AttachmentContainer::~AttachmentContainer().
00353 { 00354 return AttachmentContainerPtr(*this); 00355 }
| void osg::NodeCore::accumulateMatrix | ( | Matrix & | result | ) | [inline, protected, virtual, inherited] |
Reimplemented in osg::Billboard, osg::InverseTransform, osg::ScreenGroup, and osg::Transform.
Definition at line 224 of file OSGNodeCore.inl.
| void osg::NodeCore::adjustVolume | ( | Volume & | volume | ) | [inline, protected, virtual, inherited] |
Reimplemented in osg::Geometry, osg::Slices, osg::Particles, osg::DVRVolume, osg::Surface, osg::Billboard, osg::InverseTransform, osg::ProxyGroup, osg::ScreenGroup, and osg::Transform.
Definition at line 232 of file OSGNodeCore.inl.
Referenced by osg::Billboard::adjustVolume().
| 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::fcptrAttributeMap(), osg::Image::setAttachmentField(), and osg::stringAttributeMap().
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 }
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 }
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 }
| 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::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::OffCenterPerspectiveCameraBase::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::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::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::OffCenterPerspectiveCameraBase::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::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 Thread::getCurrentChangeList()->addCreated( 00168 *(reinterpret_cast<UInt32 *>(pTmp))); 00169 00170 pTmp += sizeof(UInt32); 00171 00172 ObjectType *aObject = reinterpret_cast<ObjectType *>(pTmp); 00173 00174 for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++) 00175 { 00176 pTmp = 00177 reinterpret_cast<UInt8 *>(new (pTmp) ObjectType(*prototypeP)); 00178 00179 pTmp += sizeof(ObjectType); 00180 } 00181 00182 result->onCreate(prototypeP); 00183 00184 for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++) 00185 { 00186 aObject[i].onCreateAspect(aObject, prototypeP); 00187 } 00188 00189 #if defined(OSG_GV_BETA) && defined(OSG_DBG_MEM) 00190 00191 fprintf(stderr, "GV_MEM_FC_DBG : (%u) cc (%p|%u)\n", 00192 Thread::getAspect(), 00193 result._storeP, 00194 // ObjectType::getClassType().getCName(), 00195 ObjectType::getClassType().getId()); 00196 #endif 00197 00198 #ifdef OSG_DEBUG_TYPED_FCPTR 00199 result.updateTypedStore(); 00200 #endif 00201 }
| void osg::FieldContainer::newPtr | ( | ObjectPtrT & | result | ) | [inline, static, protected, inherited] |
Definition at line 204 of file OSGFieldContainerImpl.inl.
References osg::ChangeList::addCreated(), osg::PThreadBase::getAspect(), osg::PThreadBase::getCurrentChangeList(), osg::ThreadManager::getNumAspects(), osg::FieldContainerFactory::registerFieldContainer(), and osg::FieldContainerFactory::the().
00205 { 00206 typedef typename ObjectPtrT::StoredObjectType ObjectType; 00207 00208 UInt8 *pTmp; 00209 00210 result._containerSize = sizeof(ObjectType); 00211 00212 pTmp = 00213 static_cast<UInt8 *>(operator new( 00214 sizeof(Int32) + // ReferenceCount 00215 sizeof(UInt32) + // ContainerId 00216 sizeof(ObjectType) * ThreadManager::getNumAspects())); 00217 00218 *(reinterpret_cast<Int32 *>(pTmp)) = 0; 00219 00220 pTmp += sizeof(Int32); 00221 00222 result._storeP = (pTmp + sizeof(UInt32)); 00223 00224 #ifdef OSG_DEBUG_FCPTR 00225 result._typedStoreP = reinterpret_cast<FieldContainer *>(result._storeP); 00226 #endif 00227 00228 *(reinterpret_cast<UInt32 *>(pTmp)) = 00229 FieldContainerFactory::the()->registerFieldContainer(result); 00230 00231 Thread::getCurrentChangeList()->addCreated( 00232 *(reinterpret_cast<UInt32 *>(pTmp))); 00233 00234 pTmp += sizeof(UInt32); 00235 00236 ObjectType *aObject = reinterpret_cast<ObjectType *>(pTmp); 00237 00238 for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++) 00239 { 00240 pTmp = reinterpret_cast<UInt8 *>(new (pTmp) ObjectType()); 00241 00242 pTmp += sizeof(ObjectType); 00243 } 00244 00245 result->onCreate(); 00246 00247 for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++) 00248 { 00249 aObject[i].onCreateAspect(aObject); 00250 } 00251 00252 #if defined(OSG_GV_BETA) && defined(OSG_DBG_MEM) 00253 fprintf(stderr, "GV_MEM_FC_DBG : (%u) c (%p|%u)\n", 00254 Thread::getAspect(), 00255 result._storeP, 00256 // ObjectType::getClassType().getCName(), 00257 ObjectType::getClassType().getId()); 00258 #endif 00259 00260 #ifdef OSG_DEBUG_TYPED_FCPTR 00261 result.updateTypedStore(); 00262 #endif 00263 }
| void osg::FieldContainer::beginEditX | ( | const BitVector & | whichField, | |
| FieldTypeT & | field | |||
| ) | [inline, protected, inherited] |
| void osg::FieldContainer::endEditX | ( | const BitVector & | whichField, | |
| FieldTypeT & | field | |||
| ) | [inline, protected, inherited] |
Definition at line 291 of file OSGFieldContainerImpl.inl.
References osg::endEditCP().
00292 { 00293 FieldContainerPtr tmpPtr(this); 00294 endEditCP(tmpPtr, whichField); 00295 }
| void osg::FieldContainer::onCreate | ( | const FieldContainer * | source = NULL |
) | [inline, protected, inherited] |
Definition at line 318 of file OSGFieldContainerImpl.inl.
Referenced by osg::ShaderParameterChunk::onCreate().
| void osg::FieldContainer::onCreateAspect | ( | const FieldContainer * | aspect0, | |
| const FieldContainer * | source = NULL | |||
| ) | [inline, protected, inherited] |
friend class FieldContainer [friend] |
friend class DistanceLODBase [friend] |
Definition at line 108 of file OSGDistanceLOD.h.
const osg::BitVector DistanceLODBase::CenterFieldMask [static, inherited] |
Initial value:
(TypeTraits<BitVector>::One << DistanceLODBase::CenterFieldId)
Definition at line 100 of file OSGDistanceLODBase.h.
Referenced by osg::DistanceLODBase::copyFromBin(), osg::DistanceLODBase::copyToBin(), osg::DistanceLODBase::executeSyncImpl(), and osg::DistanceLODBase::getBinSize().
const osg::BitVector DistanceLODBase::RangeFieldMask [static, inherited] |
Initial value:
(TypeTraits<BitVector>::One << DistanceLODBase::RangeFieldId)
Definition at line 101 of file OSGDistanceLODBase.h.
Referenced by osg::DistanceLODBase::copyFromBin(), osg::DistanceLODBase::copyToBin(), osg::DistanceLODBase::executeSyncImpl(), and osg::DistanceLODBase::getBinSize().
const osg::BitVector DistanceLODBase::MTInfluenceMask [static, inherited] |
Initial value:
(Inherited::MTInfluenceMask) |
(static_cast<BitVector>(0x0) << Inherited::NextFieldId)
Reimplemented from osg::GroupBase.
Definition at line 104 of file OSGDistanceLODBase.h.
Pnt3f DistanceLODBase::_sfCenter [protected, inherited] |
The center for distance calculation.
Definition at line 185 of file OSGDistanceLODBase.h.
Referenced by osg::DistanceLODBase::copyFromBin(), osg::DistanceLODBase::copyToBin(), osg::DistanceLODBase::executeSyncImpl(), osg::DistanceLODBase::getBinSize(), osg::DistanceLODBase::getCenter(), osg::DistanceLODBase::getSFCenter(), and osg::DistanceLODBase::setCenter().
Real32 DistanceLODBase::_mfRange [protected, inherited] |
The range intervals.
Definition at line 186 of file OSGDistanceLODBase.h.
Referenced by osg::DistanceLODBase::copyFromBin(), osg::DistanceLODBase::copyToBin(), osg::DistanceLODBase::executeSyncImpl(), osg::DistanceLODBase::getBinSize(), osg::DistanceLODBase::getMFRange(), and osg::DistanceLODBase::getRange().
const BitVector NodeCore::ParentsFieldMask = (1 << NodeCore::ParentsFieldId ) [static, inherited] |
Definition at line 99 of file OSGNodeCore.h.
Referenced by osg::NodeCore::copyFromBin(), osg::NodeCore::copyToBin(), osg::NodeCore::executeSyncImpl(), osg::NodeCore::getBinSize(), and osg::Node::~Node().
const bool osg::NodeCore::isNodeCore = true [static, inherited] |
MFNodePtr osg::NodeCore::_parents [protected, inherited] |
Definition at line 168 of file OSGNodeCore.h.
Referenced by osg::NodeCore::addParent(), osg::ProxyGroup::changed(), osg::Particles::changed(), osg::Geometry::changed(), osg::NodeCore::copyFromBin(), osg::NodeCore::copyToBin(), osg::NodeCore::dump(), osg::Geometry::dump(), osg::NodeCore::executeSyncImpl(), osg::NodeCore::getBinSize(), osg::NodeCore::getMFParents(), osg::NodeCore::getParents(), osg::NodeCore::getType(), osg::NodeCore::invalidateVolume(), and osg::NodeCore::subParent().
const BitVector AttachmentContainer::AttachmentsFieldMask [static, inherited] |
Initial value:
(TypeTraits<BitVector>::One <<
AttachmentContainer::AttachmentsFieldId)
Definition at line 84 of file OSGAttachmentContainerImpl.h.
Referenced by osg::VRMLFile::beginNode(), osg::AttachmentContainer::changed(), osg::AttachmentContainer::copyFromBin(), osg::AttachmentContainer::copyToBin(), osg::deepCloneAttachments(), osg::AttachmentContainer::executeSyncImpl(), osg::fcptrAttributeMap(), osg::AttachmentContainer::getBinSize(), and osg::stringAttributeMap().
SFAttachmentMap osg::AttachmentContainer::_attachmentMap [protected, inherited] |
Definition at line 161 of file OSGAttachmentContainerImpl.h.
Referenced by osg::AttachmentContainer::AttachmentContainer(), osg::AttachmentContainer::changed(), osg::AttachmentContainer::copyFromBin(), osg::AttachmentContainer::copyToBin(), osg::NodeCore::dump(), osg::Node::dump(), osg::Geometry::dump(), osg::AttachmentContainer::dump(), osg::AttachmentContainer::executeSyncImpl(), osg::AttachmentContainer::findAttachment(), osg::AttachmentContainer::getBinSize(), osg::AttachmentContainer::getSFAttachments(), osg::Node::onCreate(), osg::AttachmentContainer::subAttachment(), and osg::AttachmentContainer::~AttachmentContainer().
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.
1.5.5