VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Friends
makVrv::DtOsgParticleRibbon Class Reference

A ribbon with some particle system features, such as expansion rate texture, and fading out.

Inheritance diagram for makVrv::DtOsgParticleRibbon:
Inheritance graph
[legend]

Classes

struct  Particle
 

Public Member Functions

virtual void update (double dt, double simTime) override
 
virtual void setAlphaVelocity (float alphaVelocity)
 
virtual void setTextureRepeat (float textureRepeat)
 
virtual void setNewParticlesVisible (bool enable)
 
- Public Member Functions inherited from makVrv::DtOsgRibbon
 DtOsgRibbon (DtDe &de, float segmentSpacing=1.0, const osg::Vec4 &color=osg::Vec4d(0.5, 0.5, 0.5, 1.0), float maxLength=2000, float timeout=3600.0)
 
virtual ~DtOsgRibbon ()
 
virtual void traverse (osg::NodeVisitor &nv)
 
virtual osg::Node * node ()
 
virtual void setColor (const osg::Vec4 &color)
 
virtual const osg::Vec4 & color () const
 
virtual void setDroppedPoints (const osg::Vec3d &pointA, const osg::Vec3d &pointB)
 
virtual void setDroppedPointsPositionOffset (const osg::Vec3d &posOffset)
 
virtual void update ()
 
virtual void setMaxSegments (long segments)
 
virtual long maxSegments () const
 
virtual void setSegmentSpacing (float spacing)
 
virtual void setSegmentTimeout (float duration)
 
virtual float segmentSpacing () const
 
virtual void setStippled (bool stippled)
 
virtual bool isStippled () const
 
virtual void setLightingEnabled (bool enable)
 
virtual bool lightingEnabled ()
 

Protected Types

typedef std::list< ParticleParticles
 

Protected Member Functions

 DtOsgParticleRibbon (DtDe &de, float segmentSpacing, const osg::Vec4 &color, osg::Texture *texture, float expansionRate, float maxLength)
 
virtual ~DtOsgParticleRibbon ()
 
virtual void addParticle (osg::Vec3d const &left, osg::Vec3d const &right, double simTime) override
 
virtual float currentSegmentLength () override
 
virtual void cleanupOldSegments (double simTime) override
 
virtual void extendCurrentSegment (osg::Vec3d const &left, osg::Vec3d const &right, double simTime) override
 
virtual osg::Drawable * getDrawable () override
 
virtual osg::Geode * createGeode () override
 
virtual int particleIndexAtOffset (int offset)
 
virtual void updateParticles (double dt)
 
virtual void updateGeometryFromParticles (double dt)
 
virtual osg::Vec2 getTextureCoordinateFor (int pointIndex, float vScale) const
 
- Protected Member Functions inherited from makVrv::DtOsgRibbon
virtual void setDrawable ()
 

Protected Attributes

osg::ref_ptr< osg::Vec3Array > myPoints
 
osg::ref_ptr< osg::Vec4Array > myColors
 
osg::ref_ptr< osg::Vec2Array > myTextureCoordinates
 
osg::ref_ptr< osg::Texture > myTexture
 
osg::ref_ptr
< osg::DrawElementsUInt > 
myRibbon
 
osg::ref_ptr< osg::Geometry > myGeometry
 
bool myWrappingVertices
 
int myParticleIndex
 
float myTextureRepeat
 
double myLastAddTime
 
Particles myParticles
 
float myAlphaVelocity
 
float myExpansionRate
 
float myRotationalVelocity
 
bool myNewParticleVisible
 
- Protected Attributes inherited from makVrv::DtOsgRibbon
osg::ref_ptr
< osg::MatrixTransform > 
myPositionNode
 
osg::ref_ptr< osg::Geode > myGeode
 
osg::Matrixd myWorldTransformInv
 
osg::Matrixd myLastLocalToWork
 
int myLastUpdatedFrame
 
double myLastUpdateTime
 
long myMaxSegments
 
float mySegmentSpacingSquared
 
float mySegmentSpacing
 
float mySegmentTimeout
 
osg::Vec3d myLocalPointA
 
osg::Vec3d myLocalPointB
 
osg::Vec3d myLocalPosOffset
 
osg::Vec4 myColor
 
bool myFirstUpdate
 
bool myStippled
 
DtDemyDe
 
bool myLightingEnabled
 
bool myShaderSet
 

Private Member Functions

 DtOsgParticleRibbon ()=delete
 
 DtOsgParticleRibbon (const DtOsgParticleRibbon &)=delete
 
DtOsgParticleRibbonoperator= (const DtOsgParticleRibbon &)=delete
 

Friends

class DtOsgParticleRibbonCreator
 

Member Typedef Documentation

typedef std::list<Particle> makVrv::DtOsgParticleRibbon::Particles
protected

Constructor & Destructor Documentation

makVrv::DtOsgParticleRibbon::DtOsgParticleRibbon ( DtDe de,
float  segmentSpacing,
const osg::Vec4 &  color,
osg::Texture *  texture,
float  expansionRate,
float  maxLength 
)
protected

CTOR (create through DtOsgDecalRibbonCreator method)

virtual makVrv::DtOsgParticleRibbon::~DtOsgParticleRibbon ( )
protectedvirtual

DTOR.

makVrv::DtOsgParticleRibbon::DtOsgParticleRibbon ( )
privatedelete

unimplemented private default constructor

makVrv::DtOsgParticleRibbon::DtOsgParticleRibbon ( const DtOsgParticleRibbon )
privatedelete

Copy Constructor not implemented – Copy not allowed.

Member Function Documentation

DtOsgParticleRibbon& makVrv::DtOsgParticleRibbon::operator= ( const DtOsgParticleRibbon )
privatedelete

Assignment Operator not implemented – Copy not allowed.

virtual void makVrv::DtOsgParticleRibbon::update ( double  dt,
double  simTime 
)
overridevirtual

Override the behavior of the osg ribbon.

Reimplemented from makVrv::DtOsgRibbon.

virtual void makVrv::DtOsgParticleRibbon::setAlphaVelocity ( float  alphaVelocity)
virtual

Set the rate in units/second at which the alpha values of particles change.

virtual void makVrv::DtOsgParticleRibbon::setTextureRepeat ( float  textureRepeat)
virtual

Set the number of copies of the texture to repeat into each quad. Textures are tiled in their v coordinate only.

virtual void makVrv::DtOsgParticleRibbon::setNewParticlesVisible ( bool  enable)
virtual

If true then particles are created normally. If false than all new particles have an alpha of 0 so they are still created but not visible and the transition from off to on is not a sudden one.

virtual void makVrv::DtOsgParticleRibbon::addParticle ( osg::Vec3d const &  left,
osg::Vec3d const &  right,
double  simTime 
)
overrideprotectedvirtual

Add a particle to the ribbon.

Implements makVrv::DtOsgRibbon.

virtual float makVrv::DtOsgParticleRibbon::currentSegmentLength ( )
overrideprotectedvirtual

Find the length of the current ribbon segment.

Implements makVrv::DtOsgRibbon.

virtual void makVrv::DtOsgParticleRibbon::cleanupOldSegments ( double  simTime)
overrideprotectedvirtual

Check to see if any segments have reached their timeout if so remove them from the list to be rendered. currently only implemented for track histories.

Implements makVrv::DtOsgRibbon.

virtual void makVrv::DtOsgParticleRibbon::extendCurrentSegment ( osg::Vec3d const &  left,
osg::Vec3d const &  right,
double  simTime 
)
overrideprotectedvirtual

Extend the current segment to left and right points.

Implements makVrv::DtOsgRibbon.

virtual osg::Drawable* makVrv::DtOsgParticleRibbon::getDrawable ( )
overrideprotectedvirtual

Create or get the ribbon drawable.

Implements makVrv::DtOsgRibbon.

virtual osg::Geode* makVrv::DtOsgParticleRibbon::createGeode ( )
overrideprotectedvirtual

Create the geode to re-render the ribbon.

Reimplemented from makVrv::DtOsgRibbon.

virtual int makVrv::DtOsgParticleRibbon::particleIndexAtOffset ( int  offset)
protectedvirtual

Get index of particle at offset from current particle.

virtual void makVrv::DtOsgParticleRibbon::updateParticles ( double  dt)
protectedvirtual

Update the particles with given time change.

virtual void makVrv::DtOsgParticleRibbon::updateGeometryFromParticles ( double  dt)
protectedvirtual

Update the underlying geometry from the particles' list with the given time change.

virtual osg::Vec2 makVrv::DtOsgParticleRibbon::getTextureCoordinateFor ( int  pointIndex,
float  vScale 
) const
protectedvirtual

Get the texture coordinate for a vertex.

Friends And Related Function Documentation

friend class DtOsgParticleRibbonCreator
friend

Member Data Documentation

osg::ref_ptr<osg::Vec3Array> makVrv::DtOsgParticleRibbon::myPoints
protected
osg::ref_ptr<osg::Vec4Array> makVrv::DtOsgParticleRibbon::myColors
protected
osg::ref_ptr<osg::Vec2Array> makVrv::DtOsgParticleRibbon::myTextureCoordinates
protected
osg::ref_ptr<osg::Texture> makVrv::DtOsgParticleRibbon::myTexture
protected
osg::ref_ptr<osg::DrawElementsUInt> makVrv::DtOsgParticleRibbon::myRibbon
protected
osg::ref_ptr<osg::Geometry> makVrv::DtOsgParticleRibbon::myGeometry
protected
bool makVrv::DtOsgParticleRibbon::myWrappingVertices
protected
int makVrv::DtOsgParticleRibbon::myParticleIndex
protected
float makVrv::DtOsgParticleRibbon::myTextureRepeat
protected
double makVrv::DtOsgParticleRibbon::myLastAddTime
protected
Particles makVrv::DtOsgParticleRibbon::myParticles
protected
float makVrv::DtOsgParticleRibbon::myAlphaVelocity
protected
float makVrv::DtOsgParticleRibbon::myExpansionRate
protected

speed at which alpha decreases

float makVrv::DtOsgParticleRibbon::myRotationalVelocity
protected

speed at which particles move apart

bool makVrv::DtOsgParticleRibbon::myNewParticleVisible
protected

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

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)