VR-Forces 4.7 Class Documentation
 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
makVrv::DtOsgParticleRibbon Class Reference

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

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

Classes

struct  Particle
 Definition for a particle in the ribbon. More...

Public Member Functions

 DtOsgParticleRibbon (DtDe &de, float segmentSpacing, const osg::Vec4 &color, osg::Texture *texture, float expansionRate, float maxLength=2000)
 CTOR.
virtual void update (double dt, double simTime)
 Override the behavior of the osg ribbon.
virtual void setAlphaVelocity (float alphaVelocity)
 Set the rate in units/second at which the alpha values of particles change.
virtual void setTextureRepeat (float textureRepeat)
 Set the number of copies of the texture to repeat into each quad.
virtual void setNewParticlesVisible (bool enable)
 If true then particles are created normally.
- 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)
 CTOR.
virtual ~DtOsgRibbon ()
 DTOR.
virtual void traverse (osg::NodeVisitor &nv)
 Interrupt CullVisitors by updating the ribbon.
virtual osg::Node * node ()
 Get the osg geometry node associated with the ribbon.
virtual void setColor (const osg::Vec4 &color)
 Set the ribbon's color.
const osg::Vec4 & color () const
 Get the ribbon's color.
virtual void setDroppedPoints (const osg::Vec3d &pointA, const osg::Vec3d &pointB)
 Set the points to drop in local coordinates.
virtual void update ()
 Optional time independent update method.
virtual void setMaxSegments (long segments)
 Sets the maximum number of segments allowed in the ribbon.
long maxSegments () const
 Gets the maximum number of segments allowed in the ribbon.
virtual void setSegmentSpacing (float spacing)
 Sets the maximum length of ribbon segments.
float segmentSpacing () const
 Gets the maximum length of the ribbon segments.
virtual void setStippled (bool stippled)
bool isStippled () const
 Get the stipple setting for this ribbon.
virtual void setLightingEnabled (bool enable)
 set to true the lighting enabled flag to turn lighting on for the ribbon
virtual bool lightingEnabled ()
 get the lighting enabled flag

Protected Types

typedef std::list< ParticleParticles

Protected Member Functions

virtual ~DtOsgParticleRibbon ()
 DTOR.
virtual void addParticle (osg::Vec3d const &left, osg::Vec3d const &right, double simTime)
 Add a particle to the ribbon.
virtual float currentSegmentLength ()
 Find the length of the current ribbon segment.
virtual void extendCurrentSegment (osg::Vec3d const &left, osg::Vec3d const &right, double simTime)
 Extend the current segment to left and right points.
virtual osg::Drawable * getDrawable ()
 Create or get the ribbon drawable.
virtual int particleIndexAtOffset (int offset)
 Get index of particle at offset from current particle.
virtual void updateParticles (double dt)
 Update the particles with given time change.
virtual void updateGeometry (double dt)
 Update the geometry with the given time change.
virtual osg::Vec2 getTextureCoordinateFor (int pointIndex, float vScale)
 Get the texture coordinate for a vertex.
virtual osg::Geode * createGeode ()
 Create the geode to reender the ribbon.
- Protected Member Functions inherited from makVrv::DtOsgRibbon
virtual void setDrawable ()
 Removes any existing drawables and add the drawable returned from getDrawable.

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
bool myWrappingVertices
int myParticleIndex
float myTextureRepeat
double myLastAddTime
Particles myParticles
float myAlphaVelocity
float myExpansionRate
 speed at which alpha decreases
float myRotationalVelocity
 speed at which particles move apart
double myLastUpdateTime
bool myNewParticleVisible

Detailed Description

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

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 = 2000 
)

CTOR.

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

DTOR.

Member Function Documentation

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

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 
)
protectedvirtual

Add a particle to the ribbon.

Implements makVrv::DtOsgRibbon.

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

Find the length of the current ribbon segment.

Implements makVrv::DtOsgRibbon.

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

Extend the current segment to left and right points.

Implements makVrv::DtOsgRibbon.

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

Create or get the ribbon drawable.

Implements 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::updateGeometry ( double  dt)
protectedvirtual

Update the geometry with the given time change.

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

Get the texture coordinate for a vertex.

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

Create the geode to reender the ribbon.

Reimplemented from makVrv::DtOsgRibbon.

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
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

double makVrv::DtOsgParticleRibbon::myLastUpdateTime
protected
bool makVrv::DtOsgParticleRibbon::myNewParticleVisible
protected

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

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)