Public Types | |
| INVALID_INDEX = -1 | |
| POINT | |
| QUAD | |
| QUAD_TRIANGLESTRIP | |
| HEXAGON | |
| LINE | |
| enum | { INVALID_INDEX = -1 } |
| enum | Shape { POINT, QUAD, QUAD_TRIANGLESTRIP, HEXAGON, LINE } |
Public Member Functions | |
| Particle () | |
| Shape | getShape () const |
| Get the shape of the particle. | |
| void | setShape (Shape s) |
| Set the shape of the particle. | |
| bool | isAlive () const |
| Get whether the particle is still alive. | |
| double | getLifeTime () const |
| Get the life time of the particle (in seconds). | |
| double | getAge () const |
| Get the age of the particle (in seconds). | |
| const rangef & | getSizeRange () const |
| Get the minimum and maximum values for polygon size. | |
| const rangef & | getAlphaRange () const |
| Get the minimum and maximum values for alpha. | |
| const rangev4 & | getColorRange () const |
| Get the minimum and maximum values for color. | |
| const Interpolator * | getSizeInterpolator () const |
| Get the interpolator for computing the size of polygons. | |
| const Interpolator * | getAlphaInterpolator () const |
| Get the interpolator for computing alpha values. | |
| const Interpolator * | getColorInterpolator () const |
| Get the interpolator for computing color values. | |
| float | getRadius () const |
| float | getMass () const |
| float | getMassInv () const |
Get 1 / getMass(). | |
| const osg::Vec3 & | getPosition () const |
| Get the position vector. | |
| const osg::Vec3 & | getVelocity () const |
| const osg::Vec3 & | getPreviousPosition () const |
| Get the previous position (the position before last update). | |
| const osg::Vec3 & | getAngle () const |
| Get the angle vector. | |
| const osg::Vec3 & | getAngularVelocity () const |
| Get the rotational velocity vector. | |
| const osg::Vec3 & | getPreviousAngle () const |
| Get the previous angle vector. | |
| const osg::Vec4 & | getCurrentColor () const |
| Get the current color. | |
| float | getCurrentAlpha () const |
| Get the current alpha. | |
| const float | getSTexCoord () const |
| Get the s texture coordinate of the bottom left of the particle. | |
| float | getTCoord () const |
| Get the t texture coordinate of the bottom left of the particle. | |
| int | getTileS () const |
| Get width of texture tile. | |
| int | getTileT () const |
| Get height of texture tile. | |
| int | getNumTiles () const |
| Get number of texture tiles. | |
| void | kill () |
| void | setLifeTime (double t) |
| Set the life time of the particle. | |
| void | setSizeRange (const rangef &r) |
| Set the minimum and maximum values for polygon size. | |
| void | setAlphaRange (const rangef &r) |
| Set the minimum and maximum values for alpha. | |
| void | setColorRange (const rangev4 &r) |
| Set the minimum and maximum values for color. | |
| void | setSizeInterpolator (Interpolator *ri) |
| Set the interpolator for computing size values. | |
| void | setAlphaInterpolator (Interpolator *ai) |
| Set the interpolator for computing alpha values. | |
| void | setColorInterpolator (Interpolator *ci) |
| Set the interpolator for computing color values. | |
| void | setRadius (float r) |
| void | setMass (float m) |
| void | setPosition (const osg::Vec3 &p) |
| Set the position vector. | |
| void | setVelocity (const osg::Vec3 &v) |
| void | addVelocity (const osg::Vec3 &dv) |
| Add a vector to the velocity vector. | |
| void | transformPositionVelocity (const osg::Matrix &xform) |
| Transform position and velocity vectors by a matrix. | |
| void | transformPositionVelocity (const osg::Matrix &xform1, const osg::Matrix &xform2, float r) |
| Transform position and velocity vectors by a combination of two matrices. | |
| void | setAngle (const osg::Vec3 &a) |
| Set the angle vector. | |
| void | setAngularVelocity (const osg::Vec3 &v) |
| void | addAngularVelocity (const osg::Vec3 &dv) |
| Add a vector to the angular velocity vector. | |
| void | transformAngleVelocity (const osg::Matrix &xform) |
| Transform angle and angularVelocity vectors by a matrix. | |
| bool | update (double dt) |
| void | beginRender () const |
| Perform some pre-rendering tasks. Called automatically by particle systems. | |
| void | render (const osg::Vec3 &xpos, const osg::Vec3 &px, const osg::Vec3 &py, float scale=1.0f) const |
| Render the particle. Called automatically by particle systems. | |
| void | endRender () const |
| Perform some post-rendering tasks. Called automatically by particle systems. | |
| float | getCurrentSize () const |
| Get the current (interpolated) polygon size. Valid only after the first call to update(). | |
| void | setTextureTile (int sTile, int tTile, int numTiles=0) |
| Specify how the particle texture is tiled. | |
| void | setPreviousParticle (int previous) |
| Set the previous particle. | |
| int | getPreviousParticle () const |
| Get the previous particle. | |
| void | setNextParticle (int next) |
| Set the next particle. | |
| int | getNextParticle () const |
| Get the const next particle. | |
| void | setUpTexCoordsAsPartOfConnectedParticleSystem (ParticleSystem *ps) |
| Method for initializing a particles texture coords as part of a connected particle system. | |
Protected Attributes | |
| Shape | _shape |
| rangef | _sr |
| rangef | _ar |
| rangev4 | _cr |
| osg::ref_ptr< Interpolator > | _si |
| osg::ref_ptr< Interpolator > | _ai |
| osg::ref_ptr< Interpolator > | _ci |
| bool | _alive |
| bool | _mustdie |
| double | _lifeTime |
| float | _radius |
| float | _mass |
| float | _massinv |
| osg::Vec3 | _prev_pos |
| osg::Vec3 | _position |
| osg::Vec3 | _velocity |
| osg::Vec3 | _prev_angle |
| osg::Vec3 | _angle |
| osg::Vec3 | _angul_arvel |
| double | _t0 |
| float | _current_size |
| float | _current_alpha |
| osg::Vec4 | _current_color |
| float | _s_tile |
| float | _t_tile |
| int | _num_tile |
| int | _cur_tile |
| float | _s_coord |
| float | _t_coord |
| int | _previousParticle |
| int | _nextParticle |
Shape of particles. NOTE: the LINE shape should be used in conjunction with FIXED alignment mode (see ParticleSystem).
| osgParticle::Particle::Particle | ( | ) |
| void osgParticle::Particle::addAngularVelocity | ( | const osg::Vec3 & | dv | ) | [inline] |
Add a vector to the angular velocity vector.
| void osgParticle::Particle::addVelocity | ( | const osg::Vec3 & | dv | ) | [inline] |
Add a vector to the velocity vector.
| void osgParticle::Particle::beginRender | ( | ) | const [inline] |
Perform some pre-rendering tasks. Called automatically by particle systems.
| void osgParticle::Particle::endRender | ( | ) | const [inline] |
Perform some post-rendering tasks. Called automatically by particle systems.
| double osgParticle::Particle::getAge | ( | ) | const [inline] |
Get the age of the particle (in seconds).
| const Interpolator * osgParticle::Particle::getAlphaInterpolator | ( | ) | const [inline] |
Get the interpolator for computing alpha values.
| const rangef & osgParticle::Particle::getAlphaRange | ( | ) | const [inline] |
Get the minimum and maximum values for alpha.
| const osg::Vec3 & osgParticle::Particle::getAngle | ( | ) | const [inline] |
Get the angle vector.
| const osg::Vec3 & osgParticle::Particle::getAngularVelocity | ( | ) | const [inline] |
Get the rotational velocity vector.
| const Interpolator * osgParticle::Particle::getColorInterpolator | ( | ) | const [inline] |
Get the interpolator for computing color values.
| const rangev4 & osgParticle::Particle::getColorRange | ( | ) | const [inline] |
Get the minimum and maximum values for color.
| float osgParticle::Particle::getCurrentAlpha | ( | ) | const [inline] |
Get the current alpha.
| const osg::Vec4& osgParticle::Particle::getCurrentColor | ( | ) | const [inline] |
Get the current color.
| float osgParticle::Particle::getCurrentSize | ( | ) | const [inline] |
Get the current (interpolated) polygon size. Valid only after the first call to update().
| double osgParticle::Particle::getLifeTime | ( | ) | const [inline] |
Get the life time of the particle (in seconds).
| float osgParticle::Particle::getMass | ( | ) | const [inline] |
Get the mass of the particle. For built-in operators to work correctly, remember that the mass is expressed in kg.
| float osgParticle::Particle::getMassInv | ( | ) | const [inline] |
Get 1 / getMass().
| int osgParticle::Particle::getNextParticle | ( | ) | const [inline] |
Get the const next particle.
| int osgParticle::Particle::getNumTiles | ( | ) | const [inline] |
Get number of texture tiles.
| const osg::Vec3 & osgParticle::Particle::getPosition | ( | ) | const [inline] |
Get the position vector.
| const osg::Vec3 & osgParticle::Particle::getPreviousAngle | ( | ) | const [inline] |
Get the previous angle vector.
| int osgParticle::Particle::getPreviousParticle | ( | ) | const [inline] |
Get the previous particle.
| const osg::Vec3 & osgParticle::Particle::getPreviousPosition | ( | ) | const [inline] |
Get the previous position (the position before last update).
| float osgParticle::Particle::getRadius | ( | ) | const [inline] |
Get the physical radius of the particle. For built-in operators to work correctly, lengths must be expressed in meters.
| Particle::Shape osgParticle::Particle::getShape | ( | ) | const [inline] |
Get the shape of the particle.
| const Interpolator * osgParticle::Particle::getSizeInterpolator | ( | ) | const [inline] |
Get the interpolator for computing the size of polygons.
| const rangef & osgParticle::Particle::getSizeRange | ( | ) | const [inline] |
Get the minimum and maximum values for polygon size.
| const float osgParticle::Particle::getSTexCoord | ( | ) | const [inline] |
Get the s texture coordinate of the bottom left of the particle.
| float osgParticle::Particle::getTCoord | ( | ) | const [inline] |
Get the t texture coordinate of the bottom left of the particle.
| int osgParticle::Particle::getTileS | ( | ) | const [inline] |
Get width of texture tile.
| int osgParticle::Particle::getTileT | ( | ) | const [inline] |
Get height of texture tile.
| const osg::Vec3 & osgParticle::Particle::getVelocity | ( | ) | const [inline] |
Get the velocity vector. For built-in operators to work correctly, remember that velocity components are expressed in meters per second.
| bool osgParticle::Particle::isAlive | ( | ) | const [inline] |
Get whether the particle is still alive.
| void osgParticle::Particle::kill | ( | ) | [inline] |
Kill the particle on next update NOTE: after calling this function, the isAlive() method will still return true until the particle is updated again.
| void osgParticle::Particle::render | ( | const osg::Vec3 & | xpos, | |
| const osg::Vec3 & | px, | |||
| const osg::Vec3 & | py, | |||
| float | scale = 1.0f | |||
| ) | const |
Render the particle. Called automatically by particle systems.
| void osgParticle::Particle::setAlphaInterpolator | ( | Interpolator * | ai | ) | [inline] |
Set the interpolator for computing alpha values.
| void osgParticle::Particle::setAlphaRange | ( | const rangef & | r | ) | [inline] |
Set the minimum and maximum values for alpha.
| void osgParticle::Particle::setAngle | ( | const osg::Vec3 & | a | ) | [inline] |
Set the angle vector.
| void osgParticle::Particle::setAngularVelocity | ( | const osg::Vec3 & | v | ) | [inline] |
Set the angular velocity vector. Components x, y and z are angles of rotation around the respective axis (in radians).
| void osgParticle::Particle::setColorInterpolator | ( | Interpolator * | ci | ) | [inline] |
Set the interpolator for computing color values.
| void osgParticle::Particle::setColorRange | ( | const rangev4 & | r | ) | [inline] |
Set the minimum and maximum values for color.
| void osgParticle::Particle::setLifeTime | ( | double | t | ) | [inline] |
Set the life time of the particle.
| void osgParticle::Particle::setMass | ( | float | m | ) | [inline] |
Set the mass of the particle. For built-in operators to work correctly, remember that the mass is expressed in kg.
| void osgParticle::Particle::setNextParticle | ( | int | next | ) | [inline] |
Set the next particle.
| void osgParticle::Particle::setPosition | ( | const osg::Vec3 & | p | ) | [inline] |
Set the position vector.
| void osgParticle::Particle::setPreviousParticle | ( | int | previous | ) | [inline] |
Set the previous particle.
| void osgParticle::Particle::setRadius | ( | float | r | ) | [inline] |
Set the physical radius of the particle. For built-in operators to work correctly, lengths must be expressed in meters.
| void osgParticle::Particle::setShape | ( | Shape | s | ) | [inline] |
Set the shape of the particle.
| void osgParticle::Particle::setSizeInterpolator | ( | Interpolator * | ri | ) | [inline] |
Set the interpolator for computing size values.
| void osgParticle::Particle::setSizeRange | ( | const rangef & | r | ) | [inline] |
Set the minimum and maximum values for polygon size.
| void osgParticle::Particle::setTextureTile | ( | int | sTile, | |
| int | tTile, | |||
| int | numTiles = 0 | |||
| ) | [inline] |
Specify how the particle texture is tiled.
| void osgParticle::Particle::setUpTexCoordsAsPartOfConnectedParticleSystem | ( | ParticleSystem * | ps | ) |
Method for initializing a particles texture coords as part of a connected particle system.
| void osgParticle::Particle::setVelocity | ( | const osg::Vec3 & | v | ) | [inline] |
Set the velocity vector. For built-in operators to work correctly, remember that velocity components are expressed in meters per second.
| void osgParticle::Particle::transformAngleVelocity | ( | const osg::Matrix & | xform | ) | [inline] |
Transform angle and angularVelocity vectors by a matrix.
| void osgParticle::Particle::transformPositionVelocity | ( | const osg::Matrix & | xform1, | |
| const osg::Matrix & | xform2, | |||
| float | r | |||
| ) | [inline] |
Transform position and velocity vectors by a combination of two matrices.
| void osgParticle::Particle::transformPositionVelocity | ( | const osg::Matrix & | xform | ) | [inline] |
Transform position and velocity vectors by a matrix.
| bool osgParticle::Particle::update | ( | double | dt | ) |
Update the particle (don't call this method manually). This method is called automatically by ParticleSystem::update(); it updates the graphical properties of the particle for the current time, checks whether the particle is still alive, and then updates its position by computing P = P + V * dt (where P is the position and V is the velocity).
osg::ref_ptr<Interpolator> osgParticle::Particle::_ai [protected] |
bool osgParticle::Particle::_alive [protected] |
osg::Vec3 osgParticle::Particle::_angle [protected] |
osg::Vec3 osgParticle::Particle::_angul_arvel [protected] |
rangef osgParticle::Particle::_ar [protected] |
osg::ref_ptr<Interpolator> osgParticle::Particle::_ci [protected] |
rangev4 osgParticle::Particle::_cr [protected] |
int osgParticle::Particle::_cur_tile [protected] |
float osgParticle::Particle::_current_alpha [protected] |
osg::Vec4 osgParticle::Particle::_current_color [protected] |
float osgParticle::Particle::_current_size [protected] |
double osgParticle::Particle::_lifeTime [protected] |
float osgParticle::Particle::_mass [protected] |
float osgParticle::Particle::_massinv [protected] |
bool osgParticle::Particle::_mustdie [protected] |
int osgParticle::Particle::_nextParticle [protected] |
int osgParticle::Particle::_num_tile [protected] |
osg::Vec3 osgParticle::Particle::_position [protected] |
osg::Vec3 osgParticle::Particle::_prev_angle [protected] |
osg::Vec3 osgParticle::Particle::_prev_pos [protected] |
int osgParticle::Particle::_previousParticle [protected] |
float osgParticle::Particle::_radius [protected] |
float osgParticle::Particle::_s_coord [protected] |
float osgParticle::Particle::_s_tile [protected] |
Shape osgParticle::Particle::_shape [protected] |
osg::ref_ptr<Interpolator> osgParticle::Particle::_si [protected] |
rangef osgParticle::Particle::_sr [protected] |
double osgParticle::Particle::_t0 [protected] |
float osgParticle::Particle::_t_coord [protected] |
float osgParticle::Particle::_t_tile [protected] |
osg::Vec3 osgParticle::Particle::_velocity [protected] |
1.4.7