Inheritance diagram for osgParticle::ParticleSystem:
Public Types | |
enum | Alignment { BILLBOARD, FIXED } |
Public Member Functions | |
ParticleSystem () | |
ParticleSystem (const ParticleSystem ©, const osg::CopyOp ©op=osg::CopyOp::SHALLOW_COPY) | |
META_Object (osgParticle, ParticleSystem) | |
Alignment | getParticleAlignment () const |
Get the alignment type of particles. | |
void | setParticleAlignment (Alignment a) |
Set the alignment type of particles. | |
const osg::Vec3 & | getAlignVectorX () const |
Get the X-axis alignment vector. | |
void | setAlignVectorX (const osg::Vec3 &v) |
Set the X-axis alignment vector. | |
const osg::Vec3 & | getAlignVectorY () const |
Get the Y-axis alignment vector. | |
void | setAlignVectorY (const osg::Vec3 &v) |
Set the Y-axis alignment vector. | |
void | setAlignVectors (const osg::Vec3 &X, const osg::Vec3 &Y) |
Set the alignment vectors. | |
const osg::BoundingBox & | getDefaultBoundingBox () const |
Get the default bounding box. | |
void | setDefaultBoundingBox (const osg::BoundingBox &bbox) |
Set the default bounding box. | |
bool | getDoublePassRendering () const |
Get the double pass rendering flag. | |
void | setDoublePassRendering (bool v) |
Set the double pass rendering flag. | |
bool | isFrozen () const |
Return true if the particle system is frozen. | |
void | setFrozen (bool v) |
Set or reset the frozen state. | |
int | numParticles () const |
Get the number of allocated particles (alive + dead). | |
int | numDeadParticles () const |
Get the number of dead particles. | |
Particle * | getParticle (int i) |
Get a pointer to the i-th particle. | |
const Particle * | getParticle (int i) const |
Get a const pointer to the i-th particle. | |
virtual Particle * | createParticle (const Particle *ptemplate) |
Create a new particle from the specified template (or the default one if ptemplate is null). | |
virtual void | destroyParticle (int i) |
Destroy the i-th particle. | |
int | getLastFrameNumber () const |
Get the last frame number. | |
const Particle & | getDefaultParticleTemplate () const |
Get a reference to the default particle template. | |
void | setDefaultParticleTemplate (const Particle &p) |
Set the default particle template (particle is copied). | |
bool | getFreezeOnCull () const |
Get whether the particle system can freeze when culled. | |
void | setFreezeOnCull (bool v) |
Set whether the particle system can freeze when culled (default is true). | |
void | setDefaultAttributes (const std::string &texturefile="", bool emissive_particles=true, bool lighting=false, int texture_unit=0) |
A useful method to set the most common StateAttribute 's in one call. | |
int | getLevelOfDetail () const |
(EXPERIMENTAL) Get the level of detail. | |
void | setLevelOfDetail (int v) |
(EXPERIMENTAL) Set the level of detail. | |
virtual void | update (double dt) |
Update the particles. Don't call this directly, use a ParticleSystemUpdater instead. | |
virtual void | drawImplementation (osg::State &state) const |
Protected Member Functions | |
virtual | ~ParticleSystem () |
ParticleSystem & | operator= (const ParticleSystem &) |
virtual bool | computeBound () const |
compute the bounding box of the drawable. | |
void | update_bounds (const osg::Vec3 &p, float r) |
void | single_pass_render (osg::State &state, const osg::Matrix &modelview) const |
You can add this drawable to any Geode
as you usually do with other Drawable
classes. Each instance of ParticleSystem
is a separate set of particles; it provides the interface for creating particles and iterating through them (see the Emitter
and Program
classes).
|
|
|
|
|
|
|
|
|
compute the bounding box of the drawable. Method must be implemented by subclasses. Reimplemented from osg::Drawable. |
|
Create a new particle from the specified template (or the default one if
|
|
Destroy the i-th particle.
|
|
|
|
Get the X-axis alignment vector.
|
|
Get the Y-axis alignment vector.
|
|
Get the default bounding box.
|
|
Get a reference to the default particle template.
|
|
Get the double pass rendering flag.
|
|
Get whether the particle system can freeze when culled.
|
|
Get the last frame number.
|
|
(EXPERIMENTAL) Get the level of detail.
|
|
Get a const pointer to the i-th particle.
|
|
Get a pointer to the i-th particle.
|
|
Get the alignment type of particles.
|
|
Return true if the particle system is frozen.
|
|
|
|
Get the number of dead particles.
|
|
Get the number of allocated particles (alive + dead).
|
|
|
|
Set the alignment vectors.
|
|
Set the X-axis alignment vector.
|
|
Set the Y-axis alignment vector.
|
|
A useful method to set the most common
If |
|
Set the default bounding box. The default bounding box is used when a real bounding box cannot be computed, for example because no particles has been updated yet. |
|
Set the default particle template (particle is copied).
|
|
Set the double pass rendering flag.
Double pass rendering avoids overdraw problems between particle systems and other opaque objects. If you can render all the particle systems <u>after</u> the opaque objects, then double pass is not necessary and can be turned off (best choice). If you set the default attributes with |
|
Set whether the particle system can freeze when culled (default is true).
|
|
Set or reset the frozen state. When the particle system is frozen, emitters and programs won't do anything on it. |
|
(EXPERIMENTAL) Set the level of detail. The total number of particles is divided by the detail value to get the actual number of particles to be drawn. This value must be greater than zero. |
|
Set the alignment type of particles.
|
|
|
|
Update the particles. Don't call this directly, use a
|
|
|