#include <OSGParticles.h>

Modes | |
| enum osg::Particles::{ Points = 0, Lines, ViewDirQuads, ViewerQuads, Arrows, ViewerArrows, Rectangles, ShaderQuads, ShaderStrips, LastMode } | ModeE |
| enum osg::Particles::{ Any = 0, BackToFront, FrontToBack } | DrawOrderE |
Public Types | |
| enum | { ModeFieldId = Inherited::NextFieldId, PositionsFieldId = ModeFieldId + 1, SizesFieldId = PositionsFieldId + 1, SecPositionsFieldId = SizesFieldId + 1, ColorsFieldId = SecPositionsFieldId + 1, NormalsFieldId = ColorsFieldId + 1, IndicesFieldId = NormalsFieldId + 1, TextureZsFieldId = IndicesFieldId + 1, DrawOrderFieldId = TextureZsFieldId + 1, DynamicFieldId = DrawOrderFieldId + 1, PumpFieldId = DynamicFieldId + 1, BspFieldId = PumpFieldId + 1, NumParticlesFieldId = BspFieldId + 1, NextFieldId = NumParticlesFieldId + 1 } |
| typedef ParticlesPtr | Ptr |
| enum | { MaterialFieldId = Inherited::NextFieldId, NextFieldId = MaterialFieldId + 1 } |
| 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) |
Output | |
| virtual void | dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const |
Draw | |
| Action::ResultE | drawPrimitives (DrawActionBase *action) |
Field Set | |
| void | setPositions (const GeoPositionsPtr &value) |
| void | setSecPositions (const GeoPositionsPtr &value) |
| void | setColors (const GeoColorsPtr &value) |
| void | setNormals (const GeoNormalsPtr &value) |
| void | setMaterial (const MaterialPtr &value) |
FieldContainer Get | |
| virtual FieldContainerType & | getType (void) |
| virtual const FieldContainerType & | getType (void) const |
| virtual UInt32 | getContainerSize (void) const |
Field Get | |
| SFUInt32 * | getSFMode (void) |
| Get the Particles::_sfMode field. | |
| SFGeoPositionsPtr * | getSFPositions (void) |
| Get the Particles::_sfPositions field. | |
| MFVec3f * | getMFSizes (void) |
| Get the Particles::_mfSizes field. | |
| SFGeoPositionsPtr * | getSFSecPositions (void) |
| Get the Particles::_sfSecPositions field. | |
| SFGeoColorsPtr * | getSFColors (void) |
| Get the Particles::_sfColors field. | |
| SFGeoNormalsPtr * | getSFNormals (void) |
| Get the Particles::_sfNormals field. | |
| MFInt32 * | getMFIndices (void) |
| Get the Particles::_mfIndices field. | |
| MFReal32 * | getMFTextureZs (void) |
| Get the Particles::_mfTextureZs field. | |
| SFUInt32 * | getSFDrawOrder (void) |
| Get the Particles::_sfDrawOrder field. | |
| SFBool * | getSFDynamic (void) |
| Get the Particles::_sfDynamic field. | |
| SFParticleBSPTree * | getSFBsp (void) |
| Get the Particles::_sfBsp field. | |
| SFInt32 * | getSFNumParticles (void) |
| Get the Particles::_sfNumParticles field. | |
| UInt32 & | getMode (void) |
| Get the value of the Particles::_sfMode field. | |
| const UInt32 & | getMode (void) const |
| Get the value of the Particles::_sfMode field. | |
| GeoPositionsPtr & | getPositions (void) |
| Get the value of the Particles::_sfPositions field. | |
| const GeoPositionsPtr & | getPositions (void) const |
| Get the value of the Particles::_sfPositions field. | |
| GeoPositionsPtr & | getSecPositions (void) |
| Get the value of the Particles::_sfSecPositions field. | |
| const GeoPositionsPtr & | getSecPositions (void) const |
| Get the value of the Particles::_sfSecPositions field. | |
| GeoColorsPtr & | getColors (void) |
| Get the value of the Particles::_sfColors field. | |
| const GeoColorsPtr & | getColors (void) const |
| Get the value of the Particles::_sfColors field. | |
| GeoNormalsPtr & | getNormals (void) |
| Get the value of the Particles::_sfNormals field. | |
| const GeoNormalsPtr & | getNormals (void) const |
| Get the value of the Particles::_sfNormals field. | |
| UInt32 & | getDrawOrder (void) |
| Get the value of the Particles::_sfDrawOrder field. | |
| const UInt32 & | getDrawOrder (void) const |
| Get the value of the Particles::_sfDrawOrder field. | |
| bool & | getDynamic (void) |
| Get the value of the Particles::_sfDynamic field. | |
| const bool & | getDynamic (void) const |
| Get the value of the Particles::_sfDynamic field. | |
| ParticleBSPTree & | getBsp (void) |
| Get the value of the Particles::_sfBsp field. | |
| const ParticleBSPTree & | getBsp (void) const |
| Get the value of the Particles::_sfBsp field. | |
| Int32 & | getNumParticles (void) |
| Get the value of the Particles::_sfNumParticles field. | |
| const Int32 & | getNumParticles (void) const |
| Get the value of the Particles::_sfNumParticles field. | |
| Vec3f & | getSizes (const UInt32 index) |
| Get the value of the index element the Particles::_mfSizes field. | |
| MFVec3f & | getSizes (void) |
| Get the Particles::_mfSizes field. | |
| const MFVec3f & | getSizes (void) const |
| Get the Particles::_mfSizes field. | |
| Int32 & | getIndices (const UInt32 index) |
| Get the value of the index element the Particles::_mfIndices field. | |
| MFInt32 & | getIndices (void) |
| Get the Particles::_mfIndices field. | |
| const MFInt32 & | getIndices (void) const |
| Get the Particles::_mfIndices field. | |
| Real32 & | getTextureZs (const UInt32 index) |
| Get the value of the index element the Particles::_mfTextureZs field. | |
| MFReal32 & | getTextureZs (void) |
| Get the Particles::_mfTextureZs field. | |
| const MFReal32 & | getTextureZs (void) const |
| Get the Particles::_mfTextureZs field. | |
Field Set | |
| void | setMode (const UInt32 &value) |
| Set the value of the Particles::_sfMode field. | |
| void | setDrawOrder (const UInt32 &value) |
| Set the value of the Particles::_sfDrawOrder field. | |
| void | setDynamic (const bool &value) |
| Set the value of the Particles::_sfDynamic field. | |
| void | setBsp (const ParticleBSPTree &value) |
| Set the value of the Particles::_sfBsp field. | |
| void | setNumParticles (const Int32 &value) |
| Set the value of the Particles::_sfNumParticles 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 |
action handler | |
| Action::ResultE | drawActionHandler (Action *action) |
| initialize the static features of the class, e.g. action callbacks | |
| Action::ResultE | renderActionHandler (Action *action) |
| initialize the static features of the class, e.g. action callbacks | |
Field Get | |
| SFMaterialPtr * | getSFMaterial (void) |
| Get the MaterialDrawable::_sfMaterial field. | |
| MaterialPtr & | getMaterial (void) |
| Get the value of the MaterialDrawable::_sfMaterial field. | |
| const MaterialPtr & | getMaterial (void) const |
| Get the value of the MaterialDrawable::_sfMaterial field. | |
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 ParticlesPtr | create (void) |
| create a new instance of the class | |
| static ParticlesPtr | 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 | ModeFieldMask |
| static const osg::BitVector | PositionsFieldMask |
| static const osg::BitVector | SizesFieldMask |
| static const osg::BitVector | SecPositionsFieldMask |
| static const osg::BitVector | ColorsFieldMask |
| static const osg::BitVector | NormalsFieldMask |
| static const osg::BitVector | IndicesFieldMask |
| static const osg::BitVector | TextureZsFieldMask |
| static const osg::BitVector | DrawOrderFieldMask |
| static const osg::BitVector | DynamicFieldMask |
| static const osg::BitVector | PumpFieldMask |
| static const osg::BitVector | BspFieldMask |
| static const osg::BitVector | NumParticlesFieldMask |
| static const osg::BitVector | MTInfluenceMask |
| static const osg::BitVector | MaterialFieldMask |
| static const BitVector | ParentsFieldMask = (1 << NodeCore::ParentsFieldId ) |
| static const BitVector | AttachmentsFieldMask |
| static const BitVector | NextFieldMask |
static stat elem | |
| static StatElemDesc< StatIntElem > | statNTriangles |
| static StatElemDesc< StatIntElem > | statNLines |
| static StatElemDesc< StatIntElem > | statNPoints |
| static StatElemDesc< StatIntElem > | statNVertices |
| static StatElemDesc< StatIntElem > | statNPrimitives |
| static StatElemDesc < StatIntOnceElem > | statNGeoBytes |
CoredNodePtr helper | |
| static const bool | isNodeCore = true |
Protected Member Functions | |
Constructors | |
| Particles (void) | |
| Particles (const Particles &source) | |
Destructors | |
| virtual | ~Particles (void) |
NodeCore Specific | |
| void | adjustVolume (Volume &volume) |
Particles Specific | |
| Int32 * | calcIndex (DrawActionBase *action, UInt32 &len, Int32 *index=NULL) |
| ParticlesDrawer * | findDrawer (void) |
Sync | |
| void | executeSyncImpl (ParticlesBase *pOther, const BitVector &whichField) |
| virtual void | executeSync (FieldContainer &other, const BitVector &whichField) |
Sync | |
| void | executeSyncImpl (MaterialDrawableBase *pOther, const BitVector &whichField) |
Sync | |
| void | executeSyncImpl (DrawableBase *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) |
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) |
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 | |
| SFUInt32 | _sfMode |
| SFGeoPositionsPtr | _sfPositions |
| MFVec3f | _mfSizes |
| SFGeoPositionsPtr | _sfSecPositions |
| SFGeoColorsPtr | _sfColors |
| SFGeoNormalsPtr | _sfNormals |
| MFInt32 | _mfIndices |
| MFReal32 | _mfTextureZs |
| SFUInt32 | _sfDrawOrder |
| SFBool | _sfDynamic |
| SFParticleBSPTree | _sfBsp |
| SFInt32 | _sfNumParticles |
Fields | |
| SFMaterialPtr | _sfMaterial |
Fields | |
| MFNodePtr | _parents |
Fields | |
| SFAttachmentMap | _attachmentMap |
Member | |
| UInt32 | _shares |
Private Types | |
| typedef ParticlesBase | Inherited |
Private Member Functions | |
| void | operator= (const Particles &source) |
Static Private Member Functions | |
| static void | initMethod (void) |
| initialize the static features of the class, e.g. action callbacks | |
Friends | |
| class | FieldContainer |
| class | ParticlesBase |
Definition at line 56 of file OSGParticles.h.
typedef ParticlesBase osg::Particles::Inherited [private] |
typedef ParticlesPtr osg::ParticlesBase::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 |
| Points | |
| Lines | |
| ViewDirQuads | |
| ViewerQuads | |
| Arrows | |
| ViewerArrows | |
| Rectangles | |
| ShaderQuads | |
| ShaderStrips | |
| LastMode |
Definition at line 69 of file OSGParticles.h.
00069 { Points=0, Lines, ViewDirQuads, ViewerQuads, Arrows, 00070 ViewerArrows, Rectangles, ShaderQuads, ShaderStrips, 00071 LastMode }
| anonymous enum |
anonymous enum [inherited] |
Definition at line 104 of file OSGParticlesBase.h.
00105 { 00106 ModeFieldId = Inherited::NextFieldId, 00107 PositionsFieldId = ModeFieldId + 1, 00108 SizesFieldId = PositionsFieldId + 1, 00109 SecPositionsFieldId = SizesFieldId + 1, 00110 ColorsFieldId = SecPositionsFieldId + 1, 00111 NormalsFieldId = ColorsFieldId + 1, 00112 IndicesFieldId = NormalsFieldId + 1, 00113 TextureZsFieldId = IndicesFieldId + 1, 00114 DrawOrderFieldId = TextureZsFieldId + 1, 00115 DynamicFieldId = DrawOrderFieldId + 1, 00116 PumpFieldId = DynamicFieldId + 1, 00117 BspFieldId = PumpFieldId + 1, 00118 NumParticlesFieldId = BspFieldId + 1, 00119 NextFieldId = NumParticlesFieldId + 1 00120 };
anonymous enum [inherited] |
Definition at line 92 of file OSGMaterialDrawableBase.h.
00093 { 00094 MaterialFieldId = Inherited::NextFieldId, 00095 NextFieldId = MaterialFieldId + 1 00096 };
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] |
| Particles::Particles | ( | void | ) | [protected] |
Definition at line 111 of file OSGParticles.cpp.
References _extMultitexture, _funcglMultiTexCoord3fvARB, OSG_DLSYM_UNDERSCORE, osg::Window::registerExtension(), and osg::Window::registerFunction().
00111 : 00112 Inherited() 00113 { 00114 _extMultitexture = 00115 Window::registerExtension("GL_ARB_multitexture"); 00116 00117 _funcglMultiTexCoord3fvARB = Window::registerFunction( 00118 OSG_DLSYM_UNDERSCORE"glMultiTexCoord3fvARB", 00119 _extMultitexture); 00120 }
| Particles::Particles | ( | const Particles & | source | ) | [protected] |
| Particles::~Particles | ( | void | ) | [protected, virtual] |
Definition at line 127 of file OSGParticles.cpp.
References osg::ParticlesBase::_sfColors, osg::MaterialDrawableBase::_sfMaterial, osg::ParticlesBase::_sfNormals, osg::ParticlesBase::_sfPositions, osg::ParticlesBase::_sfSecPositions, osg::beginEditCP(), osg::endEditCP(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::NullFC, osg::Attachment::ParentsFieldMask, and osg::subRefCP().
00128 { 00129 ParticlesPtr thisP(*this); 00130 00131 if(_sfPositions.getValue() != NullFC) 00132 { 00133 beginEditCP(_sfPositions.getValue(), Attachment::ParentsFieldMask); 00134 { 00135 _sfPositions.getValue()->subParent(thisP); 00136 } 00137 endEditCP(_sfPositions.getValue(), Attachment::ParentsFieldMask); 00138 00139 subRefCP(_sfPositions.getValue()); 00140 } 00141 00142 if(_sfSecPositions.getValue() != NullFC) 00143 { 00144 beginEditCP(_sfSecPositions.getValue(), Attachment::ParentsFieldMask); 00145 { 00146 _sfSecPositions.getValue()->subParent(thisP); 00147 } 00148 endEditCP(_sfSecPositions.getValue(), Attachment::ParentsFieldMask); 00149 00150 subRefCP(_sfSecPositions.getValue()); 00151 } 00152 00153 if(_sfColors.getValue() != NullFC) 00154 { 00155 beginEditCP(_sfColors.getValue(), Attachment::ParentsFieldMask); 00156 { 00157 _sfColors.getValue()->subParent(thisP); 00158 } 00159 endEditCP(_sfColors.getValue(), Attachment::ParentsFieldMask); 00160 00161 subRefCP(_sfColors.getValue()); 00162 } 00163 00164 if(_sfNormals.getValue() != NullFC) 00165 { 00166 beginEditCP(_sfNormals.getValue(), Attachment::ParentsFieldMask); 00167 { 00168 _sfNormals.getValue()->subParent(thisP); 00169 } 00170 endEditCP(_sfNormals.getValue(), Attachment::ParentsFieldMask); 00171 00172 subRefCP(_sfNormals.getValue()); 00173 } 00174 00175 subRefCP(_sfMaterial.getValue()); 00176 }
Reimplemented from osg::MaterialDrawable.
Definition at line 180 of file OSGParticles.cpp.
References osg::NodeCore::_parents, osg::ParticlesBase::_sfColors, osg::MaterialDrawableBase::_sfMaterial, osg::ParticlesBase::_sfNormals, osg::ParticlesBase::_sfPositions, osg::ParticlesBase::_sfSecPositions, osg::ChangedOrigin::Abstract, osg::ChangedOrigin::AbstrCheckValid, osg::ChangedOrigin::AbstrIncRefCount, osg::addRefCP(), osg::MaterialDrawable::changed(), osg::ParticlesBase::ColorsFieldMask, osg::ParticlesBase::getBsp(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::MaterialDrawableBase::MaterialFieldMask, osg::ParticlesBase::NormalsFieldMask, osg::NullFC, osg::ParticlesBase::PositionsFieldMask, osg::ParticlesBase::SecPositionsFieldMask, setColors(), setMaterial(), setNormals(), setPositions(), setSecPositions(), osg::SField< FieldTypeT, fieldNameSpace >::setValue(), and osg::MField< FieldTypeT, fieldNameSpace >::size().
00181 { 00182 if(whichField & PositionsFieldMask) 00183 { 00184 for(UInt32 i = 0; i < _parents.size(); i++) 00185 { 00186 _parents[i]->invalidateVolume(); 00187 } 00188 getBsp().destroy(); 00189 00190 if(origin & ChangedOrigin::Abstract) 00191 { 00192 if(origin & ChangedOrigin::AbstrCheckValid) 00193 { 00194 ParticlesPtr thisP(*this); 00195 00196 if(_sfPositions.getValue() != NullFC && 00197 _sfPositions.getValue()->findParent(thisP) == -1 ) 00198 { 00199 GeoPositionsPtr pPos = _sfPositions.getValue(); 00200 00201 _sfPositions.setValue(NullFC); 00202 00203 setPositions(pPos); 00204 } 00205 } 00206 else if(origin & ChangedOrigin::AbstrIncRefCount) 00207 { 00208 addRefCP(_sfPositions.getValue()); 00209 } 00210 else 00211 { 00212 GeoPositionsPtr pPos = _sfPositions.getValue(); 00213 00214 _sfPositions.setValue(NullFC); 00215 00216 setPositions(pPos); 00217 } 00218 } 00219 } 00220 00221 if(whichField & SecPositionsFieldMask) 00222 { 00223 if(origin & ChangedOrigin::Abstract) 00224 { 00225 if(origin & ChangedOrigin::AbstrCheckValid) 00226 { 00227 ParticlesPtr thisP(*this); 00228 00229 if(_sfSecPositions.getValue() != NullFC && 00230 _sfSecPositions.getValue()->findParent(thisP) == -1 ) 00231 { 00232 GeoPositionsPtr pPos = _sfSecPositions.getValue(); 00233 00234 _sfSecPositions.setValue(NullFC); 00235 00236 setSecPositions(pPos); 00237 } 00238 } 00239 else if(origin & ChangedOrigin::AbstrIncRefCount) 00240 { 00241 addRefCP(_sfSecPositions.getValue()); 00242 } 00243 else 00244 { 00245 GeoPositionsPtr pPos = _sfSecPositions.getValue(); 00246 00247 _sfSecPositions.setValue(NullFC); 00248 00249 setSecPositions(pPos); 00250 } 00251 } 00252 } 00253 00254 if(whichField & ColorsFieldMask) 00255 { 00256 if(origin & ChangedOrigin::Abstract) 00257 { 00258 if(origin & ChangedOrigin::AbstrCheckValid) 00259 { 00260 ParticlesPtr thisP(*this); 00261 00262 if(_sfColors.getValue() != NullFC && 00263 _sfColors.getValue()->findParent(thisP) == -1 ) 00264 { 00265 GeoColorsPtr pCol = _sfColors.getValue(); 00266 00267 _sfColors.setValue(NullFC); 00268 00269 setColors(pCol); 00270 } 00271 } 00272 else if(origin & ChangedOrigin::AbstrIncRefCount) 00273 { 00274 addRefCP(_sfColors.getValue()); 00275 } 00276 else 00277 { 00278 GeoColorsPtr pCol = _sfColors.getValue(); 00279 00280 _sfColors.setValue(NullFC); 00281 00282 setColors(pCol); 00283 } 00284 } 00285 } 00286 00287 if(whichField & NormalsFieldMask) 00288 { 00289 if(origin & ChangedOrigin::Abstract) 00290 { 00291 if(origin & ChangedOrigin::AbstrCheckValid) 00292 { 00293 ParticlesPtr thisP(*this); 00294 00295 if(_sfNormals.getValue() != NullFC && 00296 _sfNormals.getValue()->findParent(thisP) == -1 ) 00297 { 00298 GeoNormalsPtr pNorm = _sfNormals.getValue(); 00299 00300 _sfNormals.setValue(NullFC); 00301 00302 setNormals(pNorm); 00303 } 00304 } 00305 else if(origin & ChangedOrigin::AbstrIncRefCount) 00306 { 00307 addRefCP(_sfNormals.getValue()); 00308 } 00309 else 00310 { 00311 GeoNormalsPtr pNorm = _sfNormals.getValue(); 00312 00313 _sfNormals.setValue(NullFC); 00314 00315 setNormals(pNorm); 00316 } 00317 } 00318 } 00319 00320 if(whichField & MaterialFieldMask) 00321 { 00322 if(origin & ChangedOrigin::Abstract) 00323 { 00324 if(origin & ChangedOrigin::AbstrIncRefCount) 00325 { 00326 addRefCP(_sfMaterial.getValue()); 00327 } 00328 else 00329 { 00330 MaterialPtr pMat = _sfMaterial.getValue(); 00331 00332 _sfMaterial.setValue(NullFC); 00333 00334 setMaterial(pMat); 00335 } 00336 } 00337 } 00338 00339 Inherited::changed(whichField, origin); 00340 }
Reimplemented from osg::MaterialDrawable.
Definition at line 344 of file OSGParticles.cpp.
References SLOG.
00346 { 00347 SLOG << "Dump Particles NI" << std::endl; 00348 }
| Action::ResultE Particles::drawPrimitives | ( | DrawActionBase * | action | ) | [virtual] |
Low-level Draw method that pumps OpenGL commands.
Reimplemented from osg::MaterialDrawable.
Definition at line 2888 of file OSGParticles.cpp.
References osg::ParticlesBase::_sfDrawOrder, Any, calcIndex(), osg::Action::Continue, findDrawer(), FWARNING, osg::Action::getActNode(), osg::ParticlesBase::getBsp(), osg::DrawActionBase::getCameraToWorld(), osg::ParticlesBase::getColors(), osg::ParticlesBase::getDynamic(), osg::ParticlesBase::getIndices(), osg::ParticlesBase::getMFIndices(), osg::ParticlesBase::getMFSizes(), osg::ParticlesBase::getNormals(), osg::ParticlesBase::getNumParticles(), osg::ParticlesBase::getPositions(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::MField< FieldTypeT, fieldNameSpace >::getValues(), osg::TransformationMatrix< ValueTypeT >::invert(), osg::TransformationMatrix< ValueTypeT >::mult(), osg::NullFC, osg::MField< FieldTypeT, fieldNameSpace >::size(), and osg::RenderAction::top_matrix().
02889 { 02890 // some variables for faster access 02891 GeoPositionsPtr pos = getPositions(); 02892 GeoColorsPtr col = getColors(); 02893 GeoNormalsPtr norm = getNormals(); 02894 MFVec3f *size = getMFSizes(); 02895 02896 if((size ->size() > 1 && size ->size() != pos->getSize()) || 02897 (col != NullFC && col->getSize() != 1 && 02898 col->getSize() != pos->getSize()) || 02899 (norm != NullFC && norm->getSize() != 1 && 02900 norm->getSize() != pos->getSize()) 02901 ) 02902 { 02903 FWARNING(("Particles::draw: inconsistent attributes " 02904 "(p:%d s:%d c:%d)!\n", 02905 pos->getSize(), size->size(), 02906 (col != NullFC)? (int)col->getSize() : -1)); 02907 return Action::Continue; 02908 } 02909 02910 ParticlesDrawer *drawer = findDrawer(); 02911 02912 if(drawer == NULL) 02913 { 02914 FWARNING(("Particles 0x%lx: couldn't find drawer!\n", this)); 02915 return Action::Continue;; 02916 } 02917 02918 Int32 *index = NULL; 02919 UInt32 length = 0; 02920 bool freeIndex = false; 02921 02922 if(_sfDrawOrder.getValue()!=Particles::Any) 02923 { 02924 if(getDynamic()) 02925 { 02926 index=calcIndex(action,length); 02927 } 02928 else 02929 { 02930 if(!getBsp().created()) 02931 { 02932 getBsp().build(this); 02933 } 02934 Matrix modelview,toworld; 02935 02936 modelview = action->getCameraToWorld(); 02937 02938 RenderAction *ra = dynamic_cast<RenderAction *>(action); 02939 02940 if(ra != NULL) 02941 { 02942 toworld = ra->top_matrix(); 02943 } 02944 else 02945 { 02946 action->getActNode()->getToWorld(toworld); 02947 } 02948 02949 // action->getCamera()->getBeacon()->getToWorld(modelview); 02950 // action->getActNode()->getToWorld(toworld); 02951 02952 toworld.invert(); 02953 modelview.mult(toworld); 02954 02955 Pnt3f ref(modelview[3][0],modelview[3][1], 02956 modelview[3][2]); 02957 Vec3f refvec( modelview[2][0],modelview[2][1], 02958 modelview[2][2]); 02959 02960 index = getBsp().traverse(ref,length); 02961 } 02962 freeIndex = true; 02963 } 02964 else if (getIndices().size() > 0) 02965 { 02966 index = &getMFIndices()->getValues()[0]; 02967 if(getNumParticles() == -1) 02968 { 02969 length = getIndices().size(); 02970 } 02971 else 02972 { 02973 length = getNumParticles(); 02974 } 02975 } 02976 02977 if(index != NULL) 02978 { 02979 if(length > 0) 02980 drawer->drawIndexed(this,action,index,length); 02981 } 02982 else 02983 { 02984 if(getNumParticles() == -1) 02985 { 02986 drawer->draw(this,action,pos->getSize()); 02987 } 02988 else if(getNumParticles() > 0) 02989 { 02990 drawer->draw(this,action,getNumParticles()); 02991 } 02992 } 02993 02994 if(freeIndex) 02995 delete [] index; 02996 02997 return Action::Continue; 02998 }
| void osg::Particles::setPositions | ( | const GeoPositionsPtr & | value | ) | [inline] |
Reimplemented from osg::ParticlesBase.
Definition at line 48 of file OSGParticles.inl.
References osg::ParticlesBase::_sfPositions, osg::addRefCP(), osg::beginEditCP(), osg::endEditCP(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::NullFC, osg::Attachment::ParentsFieldMask, osg::ParticlesBase::PositionsFieldId, osg::FieldContainerPtrBase::setParentFieldPos(), osg::SField< FieldTypeT, fieldNameSpace >::setValue(), and osg::subRefCP().
Referenced by changed().
00049 { 00050 ParticlesPtr thisP(*this); 00051 00052 addRefCP(value); 00053 00054 if(_sfPositions.getValue() != NullFC) 00055 { 00056 beginEditCP(_sfPositions.getValue(), Attachment::ParentsFieldMask); 00057 { 00058 _sfPositions.getValue()->subParent(thisP); 00059 } 00060 endEditCP (_sfPositions.getValue(), Attachment::ParentsFieldMask); 00061 00062 subRefCP(_sfPositions.getValue()); 00063 } 00064 00065 if(value != NullFC) 00066 { 00067 thisP.setParentFieldPos(PositionsFieldId); 00068 00069 beginEditCP(value, Attachment::ParentsFieldMask); 00070 { 00071 value->addParent(thisP); 00072 } 00073 endEditCP (value, Attachment::ParentsFieldMask); 00074 } 00075 00076 _sfPositions.setValue(value); 00077 }
| void osg::Particles::setSecPositions | ( | const GeoPositionsPtr & | value | ) | [inline] |
Reimplemented from osg::ParticlesBase.
Definition at line 80 of file OSGParticles.inl.
References osg::ParticlesBase::_sfSecPositions, osg::addRefCP(), osg::beginEditCP(), osg::endEditCP(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::NullFC, osg::Attachment::ParentsFieldMask, osg::ParticlesBase::SecPositionsFieldId, osg::FieldContainerPtrBase::setParentFieldPos(), osg::SField< FieldTypeT, fieldNameSpace >::setValue(), and osg::subRefCP().
Referenced by changed().
00081 { 00082 ParticlesPtr thisP(*this); 00083 00084 addRefCP(value); 00085 00086 if(_sfSecPositions.getValue() != NullFC) 00087 { 00088 beginEditCP(_sfSecPositions.getValue(), Attachment::ParentsFieldMask); 00089 { 00090 _sfSecPositions.getValue()->subParent(thisP); 00091 } 00092 endEditCP (_sfSecPositions.getValue(), Attachment::ParentsFieldMask); 00093 00094 subRefCP(_sfSecPositions.getValue()); 00095 } 00096 00097 if(value != NullFC) 00098 { 00099 thisP.setParentFieldPos(SecPositionsFieldId); 00100 00101 beginEditCP(value, Attachment::ParentsFieldMask); 00102 { 00103 value->addParent(thisP); 00104 } 00105 endEditCP (value, Attachment::ParentsFieldMask); 00106 } 00107 00108 _sfSecPositions.setValue(value); 00109 }
| void osg::Particles::setColors | ( | const GeoColorsPtr & | value | ) | [inline] |
Reimplemented from osg::ParticlesBase.
Definition at line 112 of file OSGParticles.inl.
References osg::ParticlesBase::_sfColors, osg::addRefCP(), osg::beginEditCP(), osg::ParticlesBase::ColorsFieldId, osg::endEditCP(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::NullFC, osg::Attachment::ParentsFieldMask, osg::FieldContainerPtrBase::setParentFieldPos(), osg::SField< FieldTypeT, fieldNameSpace >::setValue(), and osg::subRefCP().
Referenced by changed().
00113 { 00114 ParticlesPtr thisP(*this); 00115 00116 addRefCP(value); 00117 00118 if(_sfColors.getValue() != NullFC) 00119 { 00120 beginEditCP(_sfColors.getValue(), Attachment::ParentsFieldMask); 00121 { 00122 _sfColors.getValue()->subParent(thisP); 00123 } 00124 endEditCP (_sfColors.getValue(), Attachment::ParentsFieldMask); 00125 00126 subRefCP(_sfColors.getValue()); 00127 } 00128 00129 if(value != NullFC) 00130 { 00131 thisP.setParentFieldPos(ColorsFieldId); 00132 00133 beginEditCP(value, Attachment::ParentsFieldMask); 00134 { 00135 value->addParent(thisP); 00136 } 00137 endEditCP (value, Attachment::ParentsFieldMask); 00138 } 00139 00140 _sfColors.setValue(value); 00141 }
| void osg::Particles::setNormals | ( | const GeoNormalsPtr & | value | ) | [inline] |
Reimplemented from osg::ParticlesBase.
Definition at line 144 of file OSGParticles.inl.
References osg::ParticlesBase::_sfNormals, osg::addRefCP(), osg::beginEditCP(), osg::endEditCP(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::ParticlesBase::NormalsFieldId, osg::NullFC, osg::Attachment::ParentsFieldMask, osg::FieldContainerPtrBase::setParentFieldPos(), osg::SField< FieldTypeT, fieldNameSpace >::setValue(), and osg::subRefCP().
Referenced by changed().
00145 { 00146 ParticlesPtr thisP(*this); 00147 00148 addRefCP(value); 00149 00150 if(_sfNormals.getValue() != NullFC) 00151 { 00152 beginEditCP(_sfNormals.getValue(), Attachment::ParentsFieldMask); 00153 { 00154 _sfNormals.getValue()->subParent(thisP); 00155 } 00156 endEditCP (_sfNormals.getValue(), Attachment::ParentsFieldMask); 00157 00158 subRefCP(_sfNormals.getValue()); 00159 } 00160 00161 if(value != NullFC) 00162 { 00163 thisP.setParentFieldPos(NormalsFieldId); 00164 00165 beginEditCP(value, Attachment::ParentsFieldMask); 00166 { 00167 value->addParent(thisP); 00168 } 00169 endEditCP (value, Attachment::ParentsFieldMask); 00170 } 00171 00172 _sfNormals.setValue(value); 00173 }
| void osg::Particles::setMaterial | ( | const MaterialPtr & | value | ) | [inline] |
Reimplemented from osg::MaterialDrawable.
Definition at line 176 of file OSGParticles.inl.
References osg::MaterialDrawableBase::_sfMaterial, osg::SField< FieldTypeT, fieldNameSpace >::getValue(), and osg::setRefdCP().
Referenced by changed().
00177 { 00178 setRefdCP(_sfMaterial.getValue(), value); 00179 }
| void Particles::adjustVolume | ( | Volume & | volume | ) | [protected, virtual] |
Reimplemented from osg::NodeCore.
Definition at line 351 of file OSGParticles.cpp.
References osg::Volume::extendBy(), osg::ParticlesBase::getMFSizes(), osg::ParticlesBase::getPositions(), osg::NullFC, p, osg::Volume::setEmpty(), osg::Volume::setValid(), osg::MField< FieldTypeT, fieldNameSpace >::size(), and osg::Sqrt2.
00352 { 00353 GeoPositionsPtr pos = getPositions(); 00354 00355 if ( pos == NullFC ) 00356 return; // Node has no particles, no volume 00357 00358 volume.setValid(); 00359 volume.setEmpty(); 00360 00361 MFVec3f *sizes = getMFSizes(); 00362 00363 if(sizes->size() == pos->size()) 00364 { 00365 Vec3f p; 00366 Real32 s; 00367 00368 for(UInt32 i = 0; i < pos->size(); i++) 00369 { 00370 pos->getValue(p, i); 00371 // make the size bigger to accomodate rotations 00372 s=(*sizes)[i][0]*Sqrt2; 00373 00374 p[0]+=s/2; 00375 p[1]+=s/2; 00376 p[2]+=s/2; 00377 volume.extendBy(p); 00378 p[0]-=s; 00379 volume.extendBy(p); 00380 p[1]-=s; 00381 volume.extendBy(p); 00382 p[0]+=s; 00383 volume.extendBy(p); 00384 p[2]-=s; 00385 volume.extendBy(p); 00386 p[0]-=s; 00387 volume.extendBy(p); 00388 p[1]+=s; 00389 volume.extendBy(p); 00390 p[0]+=s; 00391 volume.extendBy(p); 00392 } 00393 00394 } 00395 else if(sizes->size() == 1) 00396 { 00397 Vec3f p; 00398 Real32 s,s2; 00399 // make the size bigger to accomodate rotations 00400 s=(*sizes)[0][0]*Sqrt2; 00401 s2=s/2; 00402 00403 for(UInt32 i = 0; i < pos->size(); i++) 00404 { 00405 pos->getValue(p, i); 00406 00407 p[0]+=s2; 00408 p[1]+=s2; 00409 p[2]+=s2; 00410 volume.extendBy(p); 00411 p[0]-=s; 00412 volume.extendBy(p); 00413 p[1]-=s; 00414 volume.extendBy(p); 00415 p[0]+=s; 00416 volume.extendBy(p); 00417 p[2]-=s; 00418 volume.extendBy(p); 00419 p[0]-=s; 00420 volume.extendBy(p); 00421 p[1]+=s; 00422 volume.extendBy(p); 00423 p[0]+=s; 00424 volume.extendBy(p); 00425 } 00426 00427 } 00428 else 00429 { 00430 Vec3f p; 00431 00432 for(UInt32 i = 0; i < pos->getSize(); i++) 00433 { 00434 pos->getValue(p, i); 00435 00436 volume.extendBy(p); 00437 } 00438 } 00439 }
| Int32* osg::Particles::calcIndex | ( | DrawActionBase * | action, | |
| UInt32 & | len, | |||
| Int32 * | index = NULL | |||
| ) | [protected] |
Referenced by drawPrimitives().
| ParticlesDrawer * Particles::findDrawer | ( | void | ) | [protected] |
find the drawer object for the actual configuration of parameters
Definition at line 3002 of file OSGParticles.cpp.
References Arrows, FWARNING, osg::ParticlesBase::getColors(), osg::ParticlesBase::getMode(), osg::ParticlesBase::getNormals(), osg::ParticlesBase::getPositions(), osg::ParticlesBase::getSecPositions(), osg::ParticlesBase::getSizes(), osg::ParticlesBase::getTextureZs(), Lines, osg::NullFC, Points, Rectangles, ShaderQuads, ShaderStrips, osg::MField< FieldTypeT, fieldNameSpace >::size(), ViewDirQuads, ViewerArrows, and ViewerQuads.
Referenced by drawPrimitives().
03003 { 03004 if(getPositions() == NullFC) 03005 return NULL; 03006 03007 UInt8 mode; 03008 enum { part = 0, sing, none } size,normal,color,tex,secpos; 03009 03010 mode = getMode(); 03011 03012 // find the parameters' use 03013 03014 size = (getSizes().size() == getPositions()->getSize()) ? part : 03015 (getSizes().size() == 1 ) ? sing : 03016 none; 03017 normal = (getNormals() != NullFC && 03018 getNormals()->getSize() == getPositions()->getSize()) ? part : 03019 (getNormals() != NullFC && 03020 getNormals()->getSize() == 1 ) ? sing : 03021 none; 03022 secpos = (getSecPositions() != NullFC && 03023 getSecPositions()->getSize()== getPositions()->getSize())?part : 03024 (getSecPositions() != NullFC && 03025 getSecPositions()->getSize()== 1 )?sing : 03026 none; 03027 color = (getColors() != NullFC && 03028 getColors()->getSize() == getPositions()->getSize()) ? part : 03029 (getColors() != NullFC && 03030 getColors()->getSize() == 1 ) ? sing : 03031 none; 03032 tex = (getTextureZs().size() == getPositions()->getSize()) ? part : 03033 (getTextureZs().size() == 1 ) ? sing : 03034 none; 03035 03036 // check if the used types are common cases 03037 03038 /* 03039 bool normalIs3f = (getNormals() != NullFC && 03040 getNormals()->getFormat() == GL_FLOAT); 03041 03042 bool colorIs3f = (getColors() != NullFC && 03043 getColors()->getFormat() == GL_FLOAT && 03044 getColors()->getDimension() == 3); 03045 */ 03046 03047 bool posIs3f = (getPositions() != NullFC && 03048 getPositions()->getFormat() == GL_FLOAT && 03049 getPositions()->getDimension() == 3); 03050 03051 // now find the drawer 03052 03053 // main difference: mode, as only a subset of the attributes is used 03054 // in the different modes 03055 03056 // this is where to add fast pathes... 03057 // don't go overboard, as every path adds code, and code bloat is 03058 // easily obtained here. 03059 03060 switch(mode) 03061 { 03062 case Points: 03063 { 03064 static ParticlesDrawer *fallback = 03065 new drawPoints<PosTraitGeneric,ColTraitGeneric, 03066 TexTraitGeneric,SizeTraitGeneric>; 03067 03068 return fallback; 03069 } 03070 03071 case Lines: 03072 { 03073 if(secpos == none) 03074 { 03075 FWARNING(("Particles::findDrawer: Need secondary positions for " 03076 "type Lines!\n")); 03077 return NULL; 03078 } 03079 03080 static ParticlesDrawer *fallback = 03081 new drawLines<PosTraitGeneric,ColTraitGeneric, 03082 TexTraitGeneric,SizeTraitGeneric>; 03083 03084 return fallback; 03085 } 03086 03087 case ViewDirQuads: 03088 { 03089 static ParticlesDrawer *fallback = 03090 new drawViewDirQuads<PosTraitGeneric,ColTraitGeneric, 03091 TexTraitGeneric,SizeTraitGeneric>; 03092 03093 if(posIs3f && tex == none && size != none) 03094 { 03095 static ParticlesDrawer *pumps[] = { 03096 new drawViewDirQuads<PosTrait3f,ColTraitParticle, 03097 TexTraitNone,SizeTraitParticle>, 03098 new drawViewDirQuads<PosTrait3f,ColTraitSingle, 03099 TexTraitNone,SizeTraitParticle>, 03100 new drawViewDirQuads<PosTrait3f,ColTraitNone, 03101 TexTraitNone,SizeTraitParticle>, 03102 03103 new drawViewDirQuads<PosTrait3f,ColTraitParticle, 03104 TexTraitNone,SizeTraitSingle>, 03105 new drawViewDirQuads<PosTrait3f,ColTraitSingle, 03106 TexTraitNone,SizeTraitSingle>, 03107 new drawViewDirQuads<PosTrait3f,ColTraitNone, 03108 TexTraitNone,SizeTraitSingle>, 03109 }; 03110 03111 return pumps[size * 3 + color]; 03112 } 03113 03114 return fallback; 03115 } 03116 03117 case ViewerQuads: 03118 { 03119 static ParticlesDrawer *fallback = 03120 new drawViewerQuads<PosTraitGeneric,ColTraitGeneric, 03121 TexTraitGeneric,SizeTraitGeneric>; 03122 03123 if(posIs3f && tex == none && size != none) 03124 { 03125 static ParticlesDrawer *pumps[] = { 03126 new drawViewerQuads<PosTrait3f,ColTraitParticle, 03127 TexTraitNone,SizeTraitParticle>, 03128 new drawViewerQuads<PosTrait3f,ColTraitSingle, 03129 TexTraitNone,SizeTraitParticle>, 03130 new drawViewerQuads<PosTrait3f,ColTraitNone, 03131 TexTraitNone,SizeTraitParticle>, 03132 03133 new drawViewerQuads<PosTrait3f,ColTraitParticle, 03134 TexTraitNone,SizeTraitSingle>, 03135 new drawViewerQuads<PosTrait3f,ColTraitSingle, 03136 TexTraitNone,SizeTraitSingle>, 03137 new drawViewerQuads<PosTrait3f,ColTraitNone, 03138 TexTraitNone,SizeTraitSingle>, 03139 }; 03140 03141 return pumps[size * 3 + color]; 03142 } 03143 03144 return fallback; 03145 } 03146 03147 case Arrows: 03148 { 03149 if(secpos == none) 03150 { 03151 FWARNING(("Particles::findDrawer: Need secondary positions for " 03152 "type Arrows!\n")); 03153 return NULL; 03154 } 03155 03156 if(normal == none) 03157 { 03158 FWARNING(("Particles::findDrawer: Need normals for " 03159 "type Arrows!\n")); 03160 return NULL; 03161 } 03162 03163 static ParticlesDrawer *fallback = 03164 new drawObjects<PosTraitGeneric,ColTraitGeneric, 03165 SizeTraitGeneric,NormalTraitGeneric, 03166 GeoTraitArrow>; 03167 03168 return fallback; 03169 } 03170 03171 case ViewerArrows: 03172 { 03173 if(secpos == none) 03174 { 03175 FWARNING(("Particles::findDrawer: Need secondary positions for " 03176 "type ViewerArrows!\n")); 03177 return NULL; 03178 } 03179 03180 if(normal == none) 03181 { 03182 FWARNING(("Particles::findDrawer: Need normals for " 03183 "type ViewerArrows!\n")); 03184 return NULL; 03185 } 03186 03187 static ParticlesDrawer *fallback = 03188 new drawViewerObjects<PosTraitGeneric,ColTraitGeneric, 03189 SizeTraitGeneric,GeoTraitArrow>; 03190 03191 return fallback; 03192 } 03193 03194 case Rectangles: 03195 { 03196 if(secpos == none) 03197 { 03198 FWARNING(("Particles::findDrawer: Need secondary positions for " 03199 "type Rectangles!\n")); 03200 return NULL; 03201 } 03202 03203 if(normal == none) 03204 { 03205 FWARNING(("Particles::findDrawer: Need normals for " 03206 "type Rectangles!\n")); 03207 return NULL; 03208 } 03209 03210 static ParticlesDrawer *fallback = 03211 new drawObjects<PosTraitGeneric,ColTraitGeneric, 03212 SizeTraitGeneric,NormalTraitGeneric, 03213 GeoTraitRectangle>; 03214 03215 return fallback; 03216 } 03217 03218 case ShaderQuads: 03219 { 03220 static ParticlesDrawer *fallback = 03221 new drawShaderQuads<PosTraitGeneric,PosTraitGeneric, 03222 ColTraitGeneric, TexTraitGeneric, 03223 SizeTraitGeneric,NormalTraitGeneric>, 03224 *nosecfallback = 03225 new drawShaderQuads<PosTraitGeneric,PosTraitNone, 03226 ColTraitGeneric, TexTraitGeneric, 03227 SizeTraitGeneric,NormalTraitGeneric>; 03228 03229 if(secpos == none) 03230 { 03231 return nosecfallback; 03232 } 03233 else 03234 { 03235 return fallback; 03236 } 03237 } 03238 03239 case ShaderStrips: 03240 { 03241 static ParticlesDrawer *fallback = 03242 new drawShaderStrips<PosTraitGeneric,PosTraitGeneric, 03243 ColTraitGeneric, TexTraitGeneric, 03244 SizeTraitGeneric,NormalTraitGeneric>, 03245 *nosecfallback = 03246 new drawShaderStrips<PosTraitGeneric,PosTraitNone, 03247 ColTraitGeneric, TexTraitGeneric, 03248 SizeTraitGeneric,NormalTraitGeneric>; 03249 03250 if(secpos == none) 03251 { 03252 return nosecfallback; 03253 } 03254 else 03255 { 03256 return fallback; 03257 } 03258 } 03259 03260 }; 03261 03262 03263 if (normal) return NULL; // make picky compilers happy 03264 return NULL; 03265 }
| void Particles::initMethod | ( | void | ) | [static, private] |
Reimplemented from osg::MaterialDrawable.
Definition at line 86 of file OSGParticles.cpp.
References osg::MaterialDrawable::drawActionHandler(), osg::ParticlesBase::getClassType(), osg::osgTypedMethodFunctor2BaseCPtrRef(), osg::RenderAction::registerEnterDefault(), osg::DrawAction::registerEnterDefault(), and osg::MaterialDrawable::renderActionHandler().
00087 { 00088 DrawAction::registerEnterDefault( getClassType(), 00089 osgTypedMethodFunctor2BaseCPtrRef<Action::ResultE, 00090 ParticlesPtr , 00091 CNodePtr , 00092 Action *> 00093 (&MaterialDrawable::drawActionHandler)); 00094 00095 RenderAction::registerEnterDefault( getClassType(), 00096 osgTypedMethodFunctor2BaseCPtrRef<Action::ResultE, 00097 ParticlesPtr , 00098 CNodePtr , 00099 Action *> 00100 (&MaterialDrawable::renderActionHandler)); 00101 }
| void osg::Particles::operator= | ( | const Particles & | source | ) | [private] |
| osg::FieldContainerType & osg::ParticlesBase::getClassType | ( | void | ) | [inline, static, inherited] |
Reimplemented from osg::MaterialDrawableBase.
Definition at line 58 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_type.
Referenced by osg::ParticlesBase::create(), and initMethod().
00059 { 00060 return _type; 00061 }
| osg::UInt32 osg::ParticlesBase::getClassTypeId | ( | void | ) | [inline, static, inherited] |
Reimplemented from osg::MaterialDrawableBase.
Definition at line 65 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_type, and osg::TypeBase::getId().
00066 { 00067 return _type.getId(); 00068 }
| FieldContainerType & ParticlesBase::getType | ( | void | ) | [virtual, inherited] |
Reimplemented from osg::MaterialDrawableBase.
Definition at line 238 of file OSGParticlesBase.cpp.
References osg::ParticlesBase::_type.
00239 { 00240 return _type; 00241 }
| const FieldContainerType & ParticlesBase::getType | ( | void | ) | const [virtual, inherited] |
Reimplemented from osg::MaterialDrawableBase.
Definition at line 243 of file OSGParticlesBase.cpp.
References osg::ParticlesBase::_type.
00244 { 00245 return _type; 00246 }
| UInt32 ParticlesBase::getContainerSize | ( | void | ) | const [virtual, inherited] |
Reimplemented from osg::MaterialDrawableBase.
Definition at line 258 of file OSGParticlesBase.cpp.
00259 { 00260 return sizeof(Particles); 00261 }
| SFUInt32 * osg::ParticlesBase::getSFMode | ( | void | ) | [inline, inherited] |
Definition at line 101 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfMode.
00102 { 00103 return &_sfMode; 00104 }
| SFGeoPositionsPtr * osg::ParticlesBase::getSFPositions | ( | void | ) | [inline, inherited] |
Definition at line 108 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfPositions.
00109 { 00110 return &_sfPositions; 00111 }
| MFVec3f * osg::ParticlesBase::getMFSizes | ( | void | ) | [inline, inherited] |
Definition at line 115 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_mfSizes.
Referenced by adjustVolume(), and drawPrimitives().
00116 { 00117 return &_mfSizes; 00118 }
| SFGeoPositionsPtr * osg::ParticlesBase::getSFSecPositions | ( | void | ) | [inline, inherited] |
Definition at line 122 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfSecPositions.
00123 { 00124 return &_sfSecPositions; 00125 }
| SFGeoColorsPtr * osg::ParticlesBase::getSFColors | ( | void | ) | [inline, inherited] |
Definition at line 129 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfColors.
00130 { 00131 return &_sfColors; 00132 }
| SFGeoNormalsPtr * osg::ParticlesBase::getSFNormals | ( | void | ) | [inline, inherited] |
Definition at line 136 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfNormals.
00137 { 00138 return &_sfNormals; 00139 }
| MFInt32 * osg::ParticlesBase::getMFIndices | ( | void | ) | [inline, inherited] |
Definition at line 143 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_mfIndices.
Referenced by drawPrimitives().
00144 { 00145 return &_mfIndices; 00146 }
| MFReal32 * osg::ParticlesBase::getMFTextureZs | ( | void | ) | [inline, inherited] |
Definition at line 150 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_mfTextureZs.
00151 { 00152 return &_mfTextureZs; 00153 }
| SFUInt32 * osg::ParticlesBase::getSFDrawOrder | ( | void | ) | [inline, inherited] |
Definition at line 157 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfDrawOrder.
00158 { 00159 return &_sfDrawOrder; 00160 }
| SFBool * osg::ParticlesBase::getSFDynamic | ( | void | ) | [inline, inherited] |
Definition at line 164 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfDynamic.
00165 { 00166 return &_sfDynamic; 00167 }
| SFParticleBSPTree * osg::ParticlesBase::getSFBsp | ( | void | ) | [inline, inherited] |
Definition at line 178 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfBsp.
00179 { 00180 return &_sfBsp; 00181 }
| SFInt32 * osg::ParticlesBase::getSFNumParticles | ( | void | ) | [inline, inherited] |
Definition at line 185 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfNumParticles.
00186 { 00187 return &_sfNumParticles; 00188 }
| UInt32 & osg::ParticlesBase::getMode | ( | void | ) | [inline, inherited] |
Definition at line 193 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfMode, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
Referenced by findDrawer().
00194 { 00195 return _sfMode.getValue(); 00196 }
| const UInt32 & osg::ParticlesBase::getMode | ( | void | ) | const [inline, inherited] |
Definition at line 200 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfMode, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
00201 { 00202 return _sfMode.getValue(); 00203 }
| GeoPositionsPtr & osg::ParticlesBase::getPositions | ( | void | ) | [inline, inherited] |
Definition at line 214 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfPositions, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
Referenced by adjustVolume(), drawPrimitives(), and findDrawer().
00215 { 00216 return _sfPositions.getValue(); 00217 }
| const GeoPositionsPtr & osg::ParticlesBase::getPositions | ( | void | ) | const [inline, inherited] |
Definition at line 221 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfPositions, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
00222 { 00223 return _sfPositions.getValue(); 00224 }
| GeoPositionsPtr & osg::ParticlesBase::getSecPositions | ( | void | ) | [inline, inherited] |
Definition at line 235 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfSecPositions, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
Referenced by findDrawer().
00236 { 00237 return _sfSecPositions.getValue(); 00238 }
| const GeoPositionsPtr & osg::ParticlesBase::getSecPositions | ( | void | ) | const [inline, inherited] |
Definition at line 242 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfSecPositions, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
00243 { 00244 return _sfSecPositions.getValue(); 00245 }
| GeoColorsPtr & osg::ParticlesBase::getColors | ( | void | ) | [inline, inherited] |
Definition at line 256 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfColors, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
Referenced by drawPrimitives(), and findDrawer().
00257 { 00258 return _sfColors.getValue(); 00259 }
| const GeoColorsPtr & osg::ParticlesBase::getColors | ( | void | ) | const [inline, inherited] |
Definition at line 263 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfColors, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
00264 { 00265 return _sfColors.getValue(); 00266 }
| GeoNormalsPtr & osg::ParticlesBase::getNormals | ( | void | ) | [inline, inherited] |
Definition at line 277 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfNormals, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
Referenced by drawPrimitives(), and findDrawer().
00278 { 00279 return _sfNormals.getValue(); 00280 }
| const GeoNormalsPtr & osg::ParticlesBase::getNormals | ( | void | ) | const [inline, inherited] |
Definition at line 284 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfNormals, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
00285 { 00286 return _sfNormals.getValue(); 00287 }
| UInt32 & osg::ParticlesBase::getDrawOrder | ( | void | ) | [inline, inherited] |
Definition at line 298 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfDrawOrder, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
00299 { 00300 return _sfDrawOrder.getValue(); 00301 }
| const UInt32 & osg::ParticlesBase::getDrawOrder | ( | void | ) | const [inline, inherited] |
Definition at line 305 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfDrawOrder, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
00306 { 00307 return _sfDrawOrder.getValue(); 00308 }
| bool & osg::ParticlesBase::getDynamic | ( | void | ) | [inline, inherited] |
Definition at line 319 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfDynamic, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
Referenced by drawPrimitives().
00320 { 00321 return _sfDynamic.getValue(); 00322 }
| const bool & osg::ParticlesBase::getDynamic | ( | void | ) | const [inline, inherited] |
Definition at line 326 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfDynamic, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
00327 { 00328 return _sfDynamic.getValue(); 00329 }
| ParticleBSPTree & osg::ParticlesBase::getBsp | ( | void | ) | [inline, inherited] |
Definition at line 361 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfBsp, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
Referenced by changed(), and drawPrimitives().
00362 { 00363 return _sfBsp.getValue(); 00364 }
| const ParticleBSPTree & osg::ParticlesBase::getBsp | ( | void | ) | const [inline, inherited] |
Definition at line 368 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfBsp, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
00369 { 00370 return _sfBsp.getValue(); 00371 }
| Int32 & osg::ParticlesBase::getNumParticles | ( | void | ) | [inline, inherited] |
Definition at line 382 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfNumParticles, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
Referenced by drawPrimitives().
00383 { 00384 return _sfNumParticles.getValue(); 00385 }
| const Int32 & osg::ParticlesBase::getNumParticles | ( | void | ) | const [inline, inherited] |
Definition at line 389 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfNumParticles, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
00390 { 00391 return _sfNumParticles.getValue(); 00392 }
Definition at line 404 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_mfSizes.
00405 { 00406 return _mfSizes[index]; 00407 }
| MFVec3f & osg::ParticlesBase::getSizes | ( | void | ) | [inline, inherited] |
Definition at line 411 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_mfSizes.
Referenced by findDrawer().
00412 { 00413 return _mfSizes; 00414 }
| const MFVec3f & osg::ParticlesBase::getSizes | ( | void | ) | const [inline, inherited] |
Definition at line 418 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_mfSizes.
00419 { 00420 return _mfSizes; 00421 }
Definition at line 425 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_mfIndices.
00426 { 00427 return _mfIndices[index]; 00428 }
| MFInt32 & osg::ParticlesBase::getIndices | ( | void | ) | [inline, inherited] |
Definition at line 432 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_mfIndices.
Referenced by drawPrimitives().
00433 { 00434 return _mfIndices; 00435 }
| const MFInt32 & osg::ParticlesBase::getIndices | ( | void | ) | const [inline, inherited] |
Definition at line 439 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_mfIndices.
00440 { 00441 return _mfIndices; 00442 }
Definition at line 446 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_mfTextureZs.
00447 { 00448 return _mfTextureZs[index]; 00449 }
| MFReal32 & osg::ParticlesBase::getTextureZs | ( | void | ) | [inline, inherited] |
Definition at line 453 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_mfTextureZs.
Referenced by findDrawer().
00454 { 00455 return _mfTextureZs; 00456 }
| const MFReal32 & osg::ParticlesBase::getTextureZs | ( | void | ) | const [inline, inherited] |
Definition at line 460 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_mfTextureZs.
00461 { 00462 return _mfTextureZs; 00463 }
| void osg::ParticlesBase::setMode | ( | const UInt32 & | value | ) | [inline, inherited] |
Definition at line 207 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfMode, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().
| void osg::ParticlesBase::setDrawOrder | ( | const UInt32 & | value | ) | [inline, inherited] |
Definition at line 312 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfDrawOrder, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().
00313 { 00314 _sfDrawOrder.setValue(value); 00315 }
| void osg::ParticlesBase::setDynamic | ( | const bool & | value | ) | [inline, inherited] |
Definition at line 333 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfDynamic, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().
00334 { 00335 _sfDynamic.setValue(value); 00336 }
| void osg::ParticlesBase::setBsp | ( | const ParticleBSPTree & | value | ) | [inline, inherited] |
Definition at line 375 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfBsp, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().
| void osg::ParticlesBase::setNumParticles | ( | const Int32 & | value | ) | [inline, inherited] |
Definition at line 396 of file OSGParticlesBase.inl.
References osg::ParticlesBase::_sfNumParticles, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().
00397 { 00398 _sfNumParticles.setValue(value); 00399 }
Reimplemented from osg::MaterialDrawableBase.
Definition at line 347 of file OSGParticlesBase.cpp.
References osg::ParticlesBase::_mfIndices, osg::ParticlesBase::_mfSizes, osg::ParticlesBase::_mfTextureZs, osg::ParticlesBase::_sfBsp, osg::ParticlesBase::_sfColors, osg::ParticlesBase::_sfDrawOrder, osg::ParticlesBase::_sfDynamic, osg::ParticlesBase::_sfMode, osg::ParticlesBase::_sfNormals, osg::ParticlesBase::_sfNumParticles, osg::ParticlesBase::_sfPositions, osg::ParticlesBase::_sfPump, osg::ParticlesBase::_sfSecPositions, osg::ParticlesBase::BspFieldMask, osg::ParticlesBase::ColorsFieldMask, osg::ParticlesBase::DrawOrderFieldMask, osg::ParticlesBase::DynamicFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::MaterialDrawableBase::getBinSize(), osg::ParticlesBase::IndicesFieldMask, osg::ParticlesBase::ModeFieldMask, osg::FieldBits::NoField, osg::ParticlesBase::NormalsFieldMask, osg::ParticlesBase::NumParticlesFieldMask, osg::ParticlesBase::PositionsFieldMask, osg::ParticlesBase::PumpFieldMask, osg::ParticlesBase::SecPositionsFieldMask, osg::ParticlesBase::SizesFieldMask, and osg::ParticlesBase::TextureZsFieldMask.
00348 { 00349 UInt32 returnValue = Inherited::getBinSize(whichField); 00350 00351 if(FieldBits::NoField != (ModeFieldMask & whichField)) 00352 { 00353 returnValue += _sfMode.getBinSize(); 00354 } 00355 00356 if(FieldBits::NoField != (PositionsFieldMask & whichField)) 00357 { 00358 returnValue += _sfPositions.getBinSize(); 00359 } 00360 00361 if(FieldBits::NoField != (SizesFieldMask & whichField)) 00362 { 00363 returnValue += _mfSizes.getBinSize(); 00364 } 00365 00366 if(FieldBits::NoField != (SecPositionsFieldMask & whichField)) 00367 { 00368 returnValue += _sfSecPositions.getBinSize(); 00369 } 00370 00371 if(FieldBits::NoField != (ColorsFieldMask & whichField)) 00372 { 00373 returnValue += _sfColors.getBinSize(); 00374 } 00375 00376 if(FieldBits::NoField != (NormalsFieldMask & whichField)) 00377 { 00378 returnValue += _sfNormals.getBinSize(); 00379 } 00380 00381 if(FieldBits::NoField != (IndicesFieldMask & whichField)) 00382 { 00383 returnValue += _mfIndices.getBinSize(); 00384 } 00385 00386 if(FieldBits::NoField != (TextureZsFieldMask & whichField)) 00387 { 00388 returnValue += _mfTextureZs.getBinSize(); 00389 } 00390 00391 if(FieldBits::NoField != (DrawOrderFieldMask & whichField)) 00392 { 00393 returnValue += _sfDrawOrder.getBinSize(); 00394 } 00395 00396 if(FieldBits::NoField != (DynamicFieldMask & whichField)) 00397 { 00398 returnValue += _sfDynamic.getBinSize(); 00399 } 00400 00401 if(FieldBits::NoField != (PumpFieldMask & whichField)) 00402 { 00403 returnValue += _sfPump.getBinSize(); 00404 } 00405 00406 if(FieldBits::NoField != (BspFieldMask & whichField)) 00407 { 00408 returnValue += _sfBsp.getBinSize(); 00409 } 00410 00411 if(FieldBits::NoField != (NumParticlesFieldMask & whichField)) 00412 { 00413 returnValue += _sfNumParticles.getBinSize(); 00414 } 00415 00416 00417 return returnValue; 00418 }
| void ParticlesBase::copyToBin | ( | BinaryDataHandler & | pMem, | |
| const BitVector & | whichField | |||
| ) | [virtual, inherited] |
Reimplemented from osg::MaterialDrawableBase.
Definition at line 420 of file OSGParticlesBase.cpp.
References osg::ParticlesBase::_mfIndices, osg::ParticlesBase::_mfSizes, osg::ParticlesBase::_mfTextureZs, osg::ParticlesBase::_sfBsp, osg::ParticlesBase::_sfColors, osg::ParticlesBase::_sfDrawOrder, osg::ParticlesBase::_sfDynamic, osg::ParticlesBase::_sfMode, osg::ParticlesBase::_sfNormals, osg::ParticlesBase::_sfNumParticles, osg::ParticlesBase::_sfPositions, osg::ParticlesBase::_sfPump, osg::ParticlesBase::_sfSecPositions, osg::ParticlesBase::BspFieldMask, osg::ParticlesBase::ColorsFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::SField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::MaterialDrawableBase::copyToBin(), osg::ParticlesBase::DrawOrderFieldMask, osg::ParticlesBase::DynamicFieldMask, osg::ParticlesBase::IndicesFieldMask, osg::ParticlesBase::ModeFieldMask, osg::FieldBits::NoField, osg::ParticlesBase::NormalsFieldMask, osg::ParticlesBase::NumParticlesFieldMask, osg::ParticlesBase::PositionsFieldMask, osg::ParticlesBase::PumpFieldMask, osg::ParticlesBase::SecPositionsFieldMask, osg::ParticlesBase::SizesFieldMask, and osg::ParticlesBase::TextureZsFieldMask.
00422 { 00423 Inherited::copyToBin(pMem, whichField); 00424 00425 if(FieldBits::NoField != (ModeFieldMask & whichField)) 00426 { 00427 _sfMode.copyToBin(pMem); 00428 } 00429 00430 if(FieldBits::NoField != (PositionsFieldMask & whichField)) 00431 { 00432 _sfPositions.copyToBin(pMem); 00433 } 00434 00435 if(FieldBits::NoField != (SizesFieldMask & whichField)) 00436 { 00437 _mfSizes.copyToBin(pMem); 00438 } 00439 00440 if(FieldBits::NoField != (SecPositionsFieldMask & whichField)) 00441 { 00442 _sfSecPositions.copyToBin(pMem); 00443 } 00444 00445 if(FieldBits::NoField != (ColorsFieldMask & whichField)) 00446 { 00447 _sfColors.copyToBin(pMem); 00448 } 00449 00450 if(FieldBits::NoField != (NormalsFieldMask & whichField)) 00451 { 00452 _sfNormals.copyToBin(pMem); 00453 } 00454 00455 if(FieldBits::NoField != (IndicesFieldMask & whichField)) 00456 { 00457 _mfIndices.copyToBin(pMem); 00458 } 00459 00460 if(FieldBits::NoField != (TextureZsFieldMask & whichField)) 00461 { 00462 _mfTextureZs.copyToBin(pMem); 00463 } 00464 00465 if(FieldBits::NoField != (DrawOrderFieldMask & whichField)) 00466 { 00467 _sfDrawOrder.copyToBin(pMem); 00468 } 00469 00470 if(FieldBits::NoField != (DynamicFieldMask & whichField)) 00471 { 00472 _sfDynamic.copyToBin(pMem); 00473 } 00474 00475 if(FieldBits::NoField != (PumpFieldMask & whichField)) 00476 { 00477 _sfPump.copyToBin(pMem); 00478 } 00479 00480 if(FieldBits::NoField != (BspFieldMask & whichField)) 00481 { 00482 _sfBsp.copyToBin(pMem); 00483 } 00484 00485 if(FieldBits::NoField != (NumParticlesFieldMask & whichField)) 00486 { 00487 _sfNumParticles.copyToBin(pMem); 00488 } 00489 00490 00491 }
| void ParticlesBase::copyFromBin | ( | BinaryDataHandler & | pMem, | |
| const BitVector & | whichField | |||
| ) | [virtual, inherited] |
Reimplemented from osg::MaterialDrawableBase.
Definition at line 493 of file OSGParticlesBase.cpp.
References osg::ParticlesBase::_mfIndices, osg::ParticlesBase::_mfSizes, osg::ParticlesBase::_mfTextureZs, osg::ParticlesBase::_sfBsp, osg::ParticlesBase::_sfColors, osg::ParticlesBase::_sfDrawOrder, osg::ParticlesBase::_sfDynamic, osg::ParticlesBase::_sfMode, osg::ParticlesBase::_sfNormals, osg::ParticlesBase::_sfNumParticles, osg::ParticlesBase::_sfPositions, osg::ParticlesBase::_sfPump, osg::ParticlesBase::_sfSecPositions, osg::ParticlesBase::BspFieldMask, osg::ParticlesBase::ColorsFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::SField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::MaterialDrawableBase::copyFromBin(), osg::ParticlesBase::DrawOrderFieldMask, osg::ParticlesBase::DynamicFieldMask, osg::ParticlesBase::IndicesFieldMask, osg::ParticlesBase::ModeFieldMask, osg::FieldBits::NoField, osg::ParticlesBase::NormalsFieldMask, osg::ParticlesBase::NumParticlesFieldMask, osg::ParticlesBase::PositionsFieldMask, osg::ParticlesBase::PumpFieldMask, osg::ParticlesBase::SecPositionsFieldMask, osg::ParticlesBase::SizesFieldMask, and osg::ParticlesBase::TextureZsFieldMask.
00495 { 00496 Inherited::copyFromBin(pMem, whichField); 00497 00498 if(FieldBits::NoField != (ModeFieldMask & whichField)) 00499 { 00500 _sfMode.copyFromBin(pMem); 00501 } 00502 00503 if(FieldBits::NoField != (PositionsFieldMask & whichField)) 00504 { 00505 _sfPositions.copyFromBin(pMem); 00506 } 00507 00508 if(FieldBits::NoField != (SizesFieldMask & whichField)) 00509 { 00510 _mfSizes.copyFromBin(pMem); 00511 } 00512 00513 if(FieldBits::NoField != (SecPositionsFieldMask & whichField)) 00514 { 00515 _sfSecPositions.copyFromBin(pMem); 00516 } 00517 00518 if(FieldBits::NoField != (ColorsFieldMask & whichField)) 00519 { 00520 _sfColors.copyFromBin(pMem); 00521 } 00522 00523 if(FieldBits::NoField != (NormalsFieldMask & whichField)) 00524 { 00525 _sfNormals.copyFromBin(pMem); 00526 } 00527 00528 if(FieldBits::NoField != (IndicesFieldMask & whichField)) 00529 { 00530 _mfIndices.copyFromBin(pMem); 00531 } 00532 00533 if(FieldBits::NoField != (TextureZsFieldMask & whichField)) 00534 { 00535 _mfTextureZs.copyFromBin(pMem); 00536 } 00537 00538 if(FieldBits::NoField != (DrawOrderFieldMask & whichField)) 00539 { 00540 _sfDrawOrder.copyFromBin(pMem); 00541 } 00542 00543 if(FieldBits::NoField != (DynamicFieldMask & whichField)) 00544 { 00545 _sfDynamic.copyFromBin(pMem); 00546 } 00547 00548 if(FieldBits::NoField != (PumpFieldMask & whichField)) 00549 { 00550 _sfPump.copyFromBin(pMem); 00551 } 00552 00553 if(FieldBits::NoField != (BspFieldMask & whichField)) 00554 { 00555 _sfBsp.copyFromBin(pMem); 00556 } 00557 00558 if(FieldBits::NoField != (NumParticlesFieldMask & whichField)) 00559 { 00560 _sfNumParticles.copyFromBin(pMem); 00561 } 00562 00563 00564 }
| ParticlesPtr osg::ParticlesBase::create | ( | void | ) | [inline, static, inherited] |
Definition at line 72 of file OSGParticlesBase.inl.
References osg::AttachmentContainerPtr::dcast(), osg::ParticlesBase::getClassType(), osg::NullFC, and osg::ParticlesBase::shallowCopy().
00073 { 00074 ParticlesPtr fc; 00075 00076 if(getClassType().getPrototype() != OSG::NullFC) 00077 { 00078 fc = ParticlesPtr::dcast( 00079 getClassType().getPrototype()-> shallowCopy()); 00080 } 00081 00082 return fc; 00083 }
| ParticlesPtr osg::ParticlesBase::createEmpty | ( | void | ) | [inline, static, inherited] |
Definition at line 87 of file OSGParticlesBase.inl.
References osg::FieldContainer::newPtr().
00088 { 00089 ParticlesPtr returnValue; 00090 00091 newPtr(returnValue); 00092 00093 return returnValue; 00094 }
| FieldContainerPtr ParticlesBase::shallowCopy | ( | void | ) | const [virtual, inherited] |
Implements osg::FieldContainer.
Definition at line 249 of file OSGParticlesBase.cpp.
References osg::FieldContainer::newPtr().
Referenced by osg::ParticlesBase::create().
00250 { 00251 ParticlesPtr returnValue; 00252 00253 newPtr(returnValue, dynamic_cast<const Particles *>(this)); 00254 00255 return returnValue; 00256 }
| void ParticlesBase::executeSyncImpl | ( | ParticlesBase * | pOther, | |
| const BitVector & | whichField | |||
| ) | [protected, inherited] |
Definition at line 567 of file OSGParticlesBase.cpp.
References osg::ParticlesBase::_mfIndices, osg::ParticlesBase::_mfSizes, osg::ParticlesBase::_mfTextureZs, osg::ParticlesBase::_sfBsp, osg::ParticlesBase::_sfColors, osg::ParticlesBase::_sfDrawOrder, osg::ParticlesBase::_sfDynamic, osg::ParticlesBase::_sfMode, osg::ParticlesBase::_sfNormals, osg::ParticlesBase::_sfNumParticles, osg::ParticlesBase::_sfPositions, osg::ParticlesBase::_sfPump, osg::ParticlesBase::_sfSecPositions, osg::ParticlesBase::BspFieldMask, osg::ParticlesBase::ColorsFieldMask, osg::ParticlesBase::DrawOrderFieldMask, osg::ParticlesBase::DynamicFieldMask, osg::MaterialDrawableBase::executeSyncImpl(), osg::ParticlesBase::IndicesFieldMask, osg::ParticlesBase::ModeFieldMask, osg::FieldBits::NoField, osg::ParticlesBase::NormalsFieldMask, osg::ParticlesBase::NumParticlesFieldMask, osg::ParticlesBase::PositionsFieldMask, osg::ParticlesBase::PumpFieldMask, osg::ParticlesBase::SecPositionsFieldMask, osg::ParticlesBase::SizesFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::syncWith(), osg::SField< FieldTypeT, fieldNameSpace >::syncWith(), and osg::ParticlesBase::TextureZsFieldMask.
Referenced by osg::ParticlesBase::executeSync().
00569 { 00570 00571 Inherited::executeSyncImpl(pOther, whichField); 00572 00573 if(FieldBits::NoField != (ModeFieldMask & whichField)) 00574 _sfMode.syncWith(pOther->_sfMode); 00575 00576 if(FieldBits::NoField != (PositionsFieldMask & whichField)) 00577 _sfPositions.syncWith(pOther->_sfPositions); 00578 00579 if(FieldBits::NoField != (SizesFieldMask & whichField)) 00580 _mfSizes.syncWith(pOther->_mfSizes); 00581 00582 if(FieldBits::NoField != (SecPositionsFieldMask & whichField)) 00583 _sfSecPositions.syncWith(pOther->_sfSecPositions); 00584 00585 if(FieldBits::NoField != (ColorsFieldMask & whichField)) 00586 _sfColors.syncWith(pOther->_sfColors); 00587 00588 if(FieldBits::NoField != (NormalsFieldMask & whichField)) 00589 _sfNormals.syncWith(pOther->_sfNormals); 00590 00591 if(FieldBits::NoField != (IndicesFieldMask & whichField)) 00592 _mfIndices.syncWith(pOther->_mfIndices); 00593 00594 if(FieldBits::NoField != (TextureZsFieldMask & whichField)) 00595 _mfTextureZs.syncWith(pOther->_mfTextureZs); 00596 00597 if(FieldBits::NoField != (DrawOrderFieldMask & whichField)) 00598 _sfDrawOrder.syncWith(pOther->_sfDrawOrder); 00599 00600 if(FieldBits::NoField != (DynamicFieldMask & whichField)) 00601 _sfDynamic.syncWith(pOther->_sfDynamic); 00602 00603 if(FieldBits::NoField != (PumpFieldMask & whichField)) 00604 _sfPump.syncWith(pOther->_sfPump); 00605 00606 if(FieldBits::NoField != (BspFieldMask & whichField)) 00607 _sfBsp.syncWith(pOther->_sfBsp); 00608 00609 if(FieldBits::NoField != (NumParticlesFieldMask & whichField)) 00610 _sfNumParticles.syncWith(pOther->_sfNumParticles); 00611 00612 00613 }
| void MaterialDrawableBase::executeSyncImpl | ( | MaterialDrawableBase * | pOther, | |
| const BitVector & | whichField | |||
| ) | [protected, inherited] |
Definition at line 219 of file OSGMaterialDrawableBase.cpp.
References osg::MaterialDrawableBase::_sfMaterial, osg::DrawableBase::executeSyncImpl(), osg::MaterialDrawableBase::MaterialFieldMask, osg::FieldBits::NoField, and osg::SField< FieldTypeT, fieldNameSpace >::syncWith().
Referenced by osg::MaterialDrawableBase::executeSync(), osg::SlicesBase::executeSyncImpl(), osg::ParticlesBase::executeSyncImpl(), and osg::GeometryBase::executeSyncImpl().
00221 { 00222 00223 Inherited::executeSyncImpl(pOther, whichField); 00224 00225 if(FieldBits::NoField != (MaterialFieldMask & whichField)) 00226 _sfMaterial.syncWith(pOther->_sfMaterial); 00227 00228 00229 }
| void DrawableBase::executeSyncImpl | ( | DrawableBase * | pOther, | |
| const BitVector & | whichField | |||
| ) | [protected, inherited] |
Definition at line 182 of file OSGDrawableBase.cpp.
References osg::NodeCore::executeSyncImpl().
Referenced by osg::DrawableBase::executeSync(), and osg::MaterialDrawableBase::executeSyncImpl().
00184 { 00185 00186 Inherited::executeSyncImpl(pOther, whichField); 00187 00188 00189 }
| void osg::NodeCore::executeSyncImpl | ( | NodeCore * | pOther, | |
| const BitVector & | whichField | |||
| ) | [inline, protected, inherited] |
Definition at line 180 of file OSGNodeCore.inl.
References osg::NodeCore::_parents, osg::AttachmentContainer::executeSyncImpl(), osg::FieldBits::NoField, osg::NodeCore::ParentsFieldMask, and osg::MField< FieldTypeT, fieldNameSpace >::syncWith().
Referenced by osg::NodeCore::executeSync(), osg::StateSortingGroupBase::executeSyncImpl(), osg::LightEnvBase::executeSyncImpl(), osg::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 ParticlesBase::executeSync | ( | FieldContainer & | other, | |
| const BitVector & | whichField | |||
| ) | [protected, virtual, inherited] |
Reimplemented from osg::MaterialDrawableBase.
Definition at line 265 of file OSGParticlesBase.cpp.
References osg::ParticlesBase::executeSyncImpl().
00267 { 00268 this->executeSyncImpl((ParticlesBase *) &other, whichField); 00269 }
| Action::ResultE MaterialDrawable::drawActionHandler | ( | Action * | action | ) | [inherited] |
Definition at line 122 of file OSGMaterialDrawable.cpp.
References osg::Action::Continue, osg::Material::draw(), osg::MaterialDrawable::drawPrimitives(), FWARNING, osg::getDefaultMaterial(), osg::MaterialDrawableBase::getMaterial(), osg::DrawActionBase::getMaterial(), osg::NullFC, and osg::osgTypedMethodFunctor1ObjPtr().
Referenced by osg::Surface::initMethod(), osg::Slices::initMethod(), initMethod(), and osg::Geometry::initMethod().
00123 { 00124 DrawAction *a = dynamic_cast<DrawAction*>(action); 00125 Material::DrawFunctor func; 00126 00127 func=osgTypedMethodFunctor1ObjPtr(&(*this), 00128 &MaterialDrawable::drawPrimitives); 00129 00130 if(a->getMaterial() != NULL) 00131 { 00132 a->getMaterial()->draw(func, a); 00133 } 00134 else if ( getMaterial() != NullFC ) 00135 { 00136 getMaterial()->draw( func, a ); 00137 } 00138 else 00139 { 00140 getDefaultMaterial()->draw( func, a ); 00141 FWARNING(("MaterialDrawable::draw:: no material!\n"));; 00142 } 00143 return Action::Continue; 00144 }
| Action::ResultE MaterialDrawable::renderActionHandler | ( | Action * | action | ) | [inherited] |
Definition at line 94 of file OSGMaterialDrawable.cpp.
References osg::Action::Continue, osg::MaterialDrawable::drawPrimitives(), osg::RenderAction::dropFunctor(), FNOTICE, osg::AttachmentContainerPtr::getCPtr(), osg::getDefaultMaterial(), osg::MaterialDrawableBase::getMaterial(), osg::DrawActionBase::getMaterial(), osg::NullFC, and osg::osgTypedMethodFunctor1ObjPtr().
Referenced by osg::Surface::initMethod(), osg::Slices::initMethod(), initMethod(), and osg::Geometry::initMethod().
00095 { 00096 RenderAction *a = dynamic_cast<RenderAction *>(action); 00097 00098 Material::DrawFunctor func; 00099 func = osgTypedMethodFunctor1ObjPtr(this, 00100 &MaterialDrawable::drawPrimitives); 00101 00102 Material* m = a->getMaterial(); 00103 00104 if(m == NULL) 00105 { 00106 if(getMaterial() != NullFC) 00107 { 00108 m = getMaterial().getCPtr(); 00109 } 00110 else 00111 { 00112 m = getDefaultMaterial().getCPtr(); 00113 FNOTICE(("MaterialDrawable::render: no Material!?!\n")); 00114 } 00115 } 00116 00117 a->dropFunctor(func, m); 00118 00119 return Action::Continue; 00120 }
| SFMaterialPtr * osg::MaterialDrawableBase::getSFMaterial | ( | void | ) | [inline, inherited] |
Definition at line 75 of file OSGMaterialDrawableBase.inl.
References osg::MaterialDrawableBase::_sfMaterial.
00076 { 00077 return &_sfMaterial; 00078 }
| MaterialPtr & osg::MaterialDrawableBase::getMaterial | ( | void | ) | [inline, inherited] |
Definition at line 83 of file OSGMaterialDrawableBase.inl.
References osg::MaterialDrawableBase::_sfMaterial, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
Referenced by osg::Surface::buildSurface(), osg::Surface::clone(), osg::Geometry::clone(), osg::MaterialDrawable::drawActionHandler(), osg::RenderAction::dropGeometry(), osg::Geometry::dump(), osg::Geometry::MergeIndex(), and osg::MaterialDrawable::renderActionHandler().
00084 { 00085 return _sfMaterial.getValue(); 00086 }
| const MaterialPtr & osg::MaterialDrawableBase::getMaterial | ( | void | ) | const [inline, inherited] |
Definition at line 90 of file OSGMaterialDrawableBase.inl.
References osg::MaterialDrawableBase::_sfMaterial, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().
00091 { 00092 return _sfMaterial.getValue(); 00093 }
| 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 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 ParticlesBase [friend] |
Definition at line 153 of file OSGParticles.h.
| enum { ... } osg::Particles::ModeE |
| enum { ... } osg::Particles::DrawOrderE |
const osg::BitVector ParticlesBase::ModeFieldMask [static, inherited] |
Initial value:
(TypeTraits<BitVector>::One << ParticlesBase::ModeFieldId)
Definition at line 122 of file OSGParticlesBase.h.
Referenced by osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), and osg::ParticlesBase::getBinSize().
const osg::BitVector ParticlesBase::PositionsFieldMask [static, inherited] |
Initial value:
(TypeTraits<BitVector>::One << ParticlesBase::PositionsFieldId)
Definition at line 123 of file OSGParticlesBase.h.
Referenced by changed(), osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), and osg::ParticlesBase::getBinSize().
const osg::BitVector ParticlesBase::SizesFieldMask [static, inherited] |
Initial value:
(TypeTraits<BitVector>::One << ParticlesBase::SizesFieldId)
Definition at line 124 of file OSGParticlesBase.h.
Referenced by osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), and osg::ParticlesBase::getBinSize().
const osg::BitVector ParticlesBase::SecPositionsFieldMask [static, inherited] |
Initial value:
(TypeTraits<BitVector>::One << ParticlesBase::SecPositionsFieldId)
Definition at line 125 of file OSGParticlesBase.h.
Referenced by changed(), osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), and osg::ParticlesBase::getBinSize().
const osg::BitVector ParticlesBase::ColorsFieldMask [static, inherited] |
Initial value:
(TypeTraits<BitVector>::One << ParticlesBase::ColorsFieldId)
Definition at line 126 of file OSGParticlesBase.h.
Referenced by changed(), osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), and osg::ParticlesBase::getBinSize().
const osg::BitVector ParticlesBase::NormalsFieldMask [static, inherited] |
Initial value:
(TypeTraits<BitVector>::One << ParticlesBase::NormalsFieldId)
Definition at line 127 of file OSGParticlesBase.h.
Referenced by changed(), osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), and osg::ParticlesBase::getBinSize().
const osg::BitVector ParticlesBase::IndicesFieldMask [static, inherited] |
Initial value:
(TypeTraits<BitVector>::One << ParticlesBase::IndicesFieldId)
Definition at line 128 of file OSGParticlesBase.h.
Referenced by osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), and osg::ParticlesBase::getBinSize().
const osg::BitVector ParticlesBase::TextureZsFieldMask [static, inherited] |
Initial value:
(TypeTraits<BitVector>::One << ParticlesBase::TextureZsFieldId)
Definition at line 129 of file OSGParticlesBase.h.
Referenced by osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), and osg::ParticlesBase::getBinSize().
const osg::BitVector ParticlesBase::DrawOrderFieldMask [static, inherited] |
Initial value:
(TypeTraits<BitVector>::One << ParticlesBase::DrawOrderFieldId)
Definition at line 130 of file OSGParticlesBase.h.
Referenced by osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), and osg::ParticlesBase::getBinSize().
const osg::BitVector ParticlesBase::DynamicFieldMask [static, inherited] |
Initial value:
(TypeTraits<BitVector>::One << ParticlesBase::DynamicFieldId)
Definition at line 131 of file OSGParticlesBase.h.
Referenced by osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), and osg::ParticlesBase::getBinSize().
const osg::BitVector ParticlesBase::PumpFieldMask [static, inherited] |
Initial value:
(TypeTraits<BitVector>::One << ParticlesBase::PumpFieldId)
Definition at line 132 of file OSGParticlesBase.h.
Referenced by osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), and osg::ParticlesBase::getBinSize().
const osg::BitVector ParticlesBase::BspFieldMask [static, inherited] |
Initial value:
(TypeTraits<BitVector>::One << ParticlesBase::BspFieldId)
Definition at line 133 of file OSGParticlesBase.h.
Referenced by osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), and osg::ParticlesBase::getBinSize().
const osg::BitVector ParticlesBase::NumParticlesFieldMask [static, inherited] |
Initial value:
(TypeTraits<BitVector>::One << ParticlesBase::NumParticlesFieldId)
Definition at line 134 of file OSGParticlesBase.h.
Referenced by osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), and osg::ParticlesBase::getBinSize().
const osg::BitVector ParticlesBase::MTInfluenceMask [static, inherited] |
Initial value:
(Inherited::MTInfluenceMask) |
(static_cast<BitVector>(0x0) << Inherited::NextFieldId)
Reimplemented from osg::MaterialDrawableBase.
Definition at line 137 of file OSGParticlesBase.h.
UInt32 ParticlesBase::_sfMode [protected, inherited] |
The particle mode, see osg::Particles::modeE for options.
Definition at line 258 of file OSGParticlesBase.h.
Referenced by osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), osg::ParticlesBase::getBinSize(), osg::ParticlesBase::getMode(), osg::ParticlesBase::getSFMode(), and osg::ParticlesBase::setMode().
GeoPositionsPtr ParticlesBase::_sfPositions [protected, inherited] |
The positions of the particles. This is the primary defining information for a particle.
Definition at line 259 of file OSGParticlesBase.h.
Referenced by changed(), osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), osg::ParticlesBase::getBinSize(), osg::ParticlesBase::getPositions(), osg::ParticlesBase::getSFPositions(), osg::ParticlesBase::setPositions(), setPositions(), and ~Particles().
Vec3f ParticlesBase::_mfSizes [protected, inherited] |
The particle sizes. If not set (1,1,1) will be used, if only one entry is set, it will be used for all particles. If the number of sizes if equal to the number of positions every particle will get its own size. Most modes only use the X coordinate of the vector. Particles with size[0] == 0 are ignored.
Definition at line 260 of file OSGParticlesBase.h.
Referenced by osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), osg::ParticlesBase::getBinSize(), osg::ParticlesBase::getMFSizes(), and osg::ParticlesBase::getSizes().
GeoPositionsPtr ParticlesBase::_sfSecPositions [protected, inherited] |
The secondary position of the particle. This information is only used by a few rendering modes, e.g. the streak mode. Usually it represents the particle's last position.
Definition at line 261 of file OSGParticlesBase.h.
Referenced by changed(), osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), osg::ParticlesBase::getBinSize(), osg::ParticlesBase::getSecPositions(), osg::ParticlesBase::getSFSecPositions(), osg::ParticlesBase::setSecPositions(), setSecPositions(), and ~Particles().
GeoColorsPtr ParticlesBase::_sfColors [protected, inherited] |
The particle colors (optional).
Definition at line 262 of file OSGParticlesBase.h.
Referenced by changed(), osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), osg::ParticlesBase::getBinSize(), osg::ParticlesBase::getColors(), osg::ParticlesBase::getSFColors(), osg::ParticlesBase::setColors(), setColors(), and ~Particles().
GeoNormalsPtr ParticlesBase::_sfNormals [protected, inherited] |
Most particles will be automatically aligned to the view direction. If normals are set they will be used to define the direction the particles are facing.
Definition at line 263 of file OSGParticlesBase.h.
Referenced by changed(), osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), osg::ParticlesBase::getBinSize(), osg::ParticlesBase::getNormals(), osg::ParticlesBase::getSFNormals(), osg::ParticlesBase::setNormals(), setNormals(), and ~Particles().
Int32 ParticlesBase::_mfIndices [protected, inherited] |
Indices for the particles. Useful to select subsets of all particles for rendering.
Definition at line 264 of file OSGParticlesBase.h.
Referenced by osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), osg::ParticlesBase::getBinSize(), osg::ParticlesBase::getIndices(), and osg::ParticlesBase::getMFIndices().
Real32 ParticlesBase::_mfTextureZs [protected, inherited] |
The texture z coordinate of the particles. Useful in conjunction with 3D textures to use different texture images on different particles.
Definition at line 265 of file OSGParticlesBase.h.
Referenced by osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), osg::ParticlesBase::getBinSize(), osg::ParticlesBase::getMFTextureZs(), and osg::ParticlesBase::getTextureZs().
UInt32 ParticlesBase::_sfDrawOrder [protected, inherited] |
Define an optional sorting on the particles, see osg::Particles::DrawOrderE for variants. Default is unordered.
Definition at line 266 of file OSGParticlesBase.h.
Referenced by osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), drawPrimitives(), osg::ParticlesBase::executeSyncImpl(), osg::ParticlesBase::getBinSize(), osg::ParticlesBase::getDrawOrder(), osg::ParticlesBase::getSFDrawOrder(), and osg::ParticlesBase::setDrawOrder().
bool ParticlesBase::_sfDynamic [protected, inherited] |
Hint to tell the system whether particles are expected to change position or not. Is used to speed up sorting.
Definition at line 267 of file OSGParticlesBase.h.
Referenced by osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), osg::ParticlesBase::getBinSize(), osg::ParticlesBase::getDynamic(), osg::ParticlesBase::getSFDynamic(), and osg::ParticlesBase::setDynamic().
ParticleBSPTree ParticlesBase::_sfBsp [protected, inherited] |
The particle mode, see osg::Particles::modeE for options.
Definition at line 268 of file OSGParticlesBase.h.
Referenced by osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), osg::ParticlesBase::getBinSize(), osg::ParticlesBase::getBsp(), osg::ParticlesBase::getSFBsp(), and osg::ParticlesBase::setBsp().
Int32 ParticlesBase::_sfNumParticles [protected, inherited] |
Optional number of particles to use. If set to -1, all the particles in pos, or indices if set, will be used.
Definition at line 269 of file OSGParticlesBase.h.
Referenced by osg::ParticlesBase::copyFromBin(), osg::ParticlesBase::copyToBin(), osg::ParticlesBase::executeSyncImpl(), osg::ParticlesBase::getBinSize(), osg::ParticlesBase::getNumParticles(), osg::ParticlesBase::getSFNumParticles(), and osg::ParticlesBase::setNumParticles().
const osg::BitVector MaterialDrawableBase::MaterialFieldMask [static, inherited] |
Initial value:
(TypeTraits<BitVector>::One << MaterialDrawableBase::MaterialFieldId)
Definition at line 98 of file OSGMaterialDrawableBase.h.
Referenced by osg::Slices::changed(), changed(), osg::Geometry::changed(), osg::MaterialDrawableBase::copyFromBin(), osg::MaterialDrawableBase::copyToBin(), osg::MaterialDrawableBase::executeSyncImpl(), and osg::MaterialDrawableBase::getBinSize().
MaterialPtr MaterialDrawableBase::_sfMaterial [protected, inherited] |
The material used to render the Drawable.
Definition at line 162 of file OSGMaterialDrawableBase.h.
Referenced by osg::Slices::changed(), changed(), osg::Geometry::changed(), osg::MaterialDrawableBase::copyFromBin(), osg::MaterialDrawableBase::copyToBin(), osg::MaterialDrawableBase::executeSyncImpl(), osg::MaterialDrawableBase::getBinSize(), osg::MaterialDrawableBase::getMaterial(), osg::MaterialDrawableBase::getSFMaterial(), osg::Geometry::onDestroy(), osg::Slices::setMaterial(), setMaterial(), osg::MaterialDrawableBase::setMaterial(), osg::MaterialDrawable::setMaterial(), osg::Geometry::setMaterial(), ~Particles(), and osg::Slices::~Slices().
StatElemDesc< StatIntElem > Drawable::statNTriangles [static, inherited] |
Definition at line 68 of file OSGDrawable.h.
Referenced by osg::Slices::drawPrimitives(), osg::Geometry::drawPrimitives(), osg::SimpleSceneManager::initialize(), and osg::DrawActionBase::start().
StatElemDesc< StatIntElem > Drawable::statNLines [static, inherited] |
Definition at line 69 of file OSGDrawable.h.
Referenced by osg::Geometry::drawPrimitives(), osg::SimpleSceneManager::initialize(), and osg::DrawActionBase::start().
StatElemDesc< StatIntElem > Drawable::statNPoints [static, inherited] |
Definition at line 70 of file OSGDrawable.h.
Referenced by osg::SimpleSceneManager::initialize(), and osg::DrawActionBase::start().
StatElemDesc< StatIntElem > Drawable::statNVertices [static, inherited] |
Definition at line 71 of file OSGDrawable.h.
Referenced by osg::Slices::drawPrimitives(), osg::Geometry::drawPrimitives(), osg::SimpleSceneManager::initialize(), and osg::DrawActionBase::start().
StatElemDesc< StatIntElem > Drawable::statNPrimitives [static, inherited] |
Definition at line 72 of file OSGDrawable.h.
Referenced by osg::Geometry::drawPrimitives(), and osg::DrawActionBase::start().
StatElemDesc< StatIntOnceElem > Drawable::statNGeoBytes [static, inherited] |
Definition at line 73 of file OSGDrawable.h.
Referenced by osg::Geometry::drawPrimitives(), and osg::DrawActionBase::start().
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(), 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