Particle Universe
1.2
|
#include <ParticleUniverseRenderer.h>
Public Member Functions | |
ParticleRenderer (void) | |
virtual | ~ParticleRenderer (void) |
const String & | getRendererType (void) const |
void | setRendererType (String rendererType) |
ParticleTechnique * | getParentTechnique (void) const |
void | setParentTechnique (ParticleTechnique *parentTechnique) |
bool | isRendererInitialised (void) const |
void | setRendererInitialised (bool rendererInitialised) |
virtual void | _notifyStart (void) |
virtual void | _notifyStop (void) |
virtual void | _notifyRescaled (const Vector3 &scale) |
virtual void | setVisible (bool visible=true) |
virtual void | _prepare (ParticleTechnique *technique)=0 |
virtual void | _unprepare (ParticleTechnique *particleTechnique) |
virtual void | _processParticle (ParticleTechnique *particleTechnique, Particle *particle, Real timeElapsed, bool firstParticle) |
bool | getUseSoftParticles (void) const |
void | setUseSoftParticles (bool useSoftParticles) |
Real | getSoftParticlesContrastPower (void) const |
Real | getSoftParticlesScale (void) const |
Real | getSoftParticlesDelta (void) const |
void | setSoftParticlesContrastPower (Real softParticlesContrastPower) |
void | setSoftParticlesScale (Real softParticlesScale) |
void | setSoftParticlesDelta (Real softParticlesDelta) |
virtual void | _updateRenderQueue (Ogre::RenderQueue *queue, ParticlePool *pool) |
virtual void | _setMaterialName (const String &materialName)=0 |
virtual void | _notifyCurrentCamera (Camera *cam)=0 |
virtual void | _notifyAttached (Ogre::Node *parent, bool isTagPoint=false)=0 |
virtual void | _notifyParticleQuota (size_t quota)=0 |
virtual void | _notifyDefaultDimensions (Real width, Real height, Real depth)=0 |
virtual void | _notifyParticleResized (void)=0 |
virtual void | _notifyParticleZRotated (void) |
virtual void | setRenderQueueGroup (uint8 queueId) |
virtual uint8 | getRenderQueueGroup (void) const |
virtual SortMode | _getSortMode (void) const =0 |
const bool | isSorted (void) const |
void | setSorted (bool sorted) |
const uchar | getTextureCoordsRows (void) const |
void | setTextureCoordsRows (uchar const textureCoordsRows) |
const uchar | getTextureCoordsColumns (void) const |
void | setTextureCoordsColumns (uchar const textureCoordsColumns) |
size_t | getNumTextureCoords (void) |
virtual void | copyAttributesTo (ParticleRenderer *renderer) |
virtual void | copyParentAttributesTo (ParticleRenderer *renderer) |
void | addTextureCoords (const Real u, const Real v, const Real width, const Real height) |
const vector< Ogre::FloatRect * > & | getTextureCoords (void) const |
Public Member Functions inherited from ParticleUniverse::IAlias | |
IAlias (void) | |
virtual | ~IAlias (void) |
const String & | getAliasName (void) const |
void | setAliasName (String aliasName) |
const AliasType | getAliasType (void) const |
void | setAliasType (AliasType aliasType) |
Public Member Functions inherited from ParticleUniverse::IElement | |
IElement (void) | |
virtual | ~IElement (void) |
Public Attributes | |
bool | autoRotate |
Static Public Attributes | |
static const uint8 | DEFAULT_RENDER_QUEUE_GROUP |
static const bool | DEFAULT_SORTED |
static const uchar | DEFAULT_TEXTURECOORDS_ROWS |
static const uchar | DEFAULT_TEXTURECOORDS_COLUMNS |
static const bool | DEFAULT_USE_SOFT_PARTICLES |
static const Real | DEFAULT_SOFT_PARTICLES_CONTRAST_POWER |
static const Real | DEFAULT_SOFT_PARTICLES_SCALE |
static const Real | DEFAULT_SOFT_PARTICLES_DELTA |
Protected Member Functions | |
void | _createSoftMaterial (void) |
void | _stripNameFromSoftPrefix (String &name) |
Protected Attributes | |
ParticleTechnique * | mParentTechnique |
Ogre::BillboardSet * | mBillboardSet |
String | mRendererType |
bool | mCullIndividual |
Real | mHeight |
Real | mWidth |
Real | mDepth |
bool | mSorted |
uint8 | mQueueId |
bool | mRendererInitialised |
Vector3 | _mRendererScale |
vector< Ogre::FloatRect * > | mUVList |
uchar | mTextureCoordsRows |
uchar | mTextureCoordsColumns |
bool | mTextureCoordsRowsAndColumnsSet |
bool | mTextureCoordsSet |
bool | mUseSoftParticles |
Real | mSoftParticlesContrastPower |
Real | mSoftParticlesScale |
Real | mSoftParticlesDelta |
bool | mNotifiedDepthMap |
bool | mVisible |
bool | mDepthCheckEnabled |
bool | mDepthWriteEnabled |
Protected Attributes inherited from ParticleUniverse::IAlias | |
String | mAliasName |
AliasType | mAliasType |
Additional Inherited Members | |
Public Types inherited from ParticleUniverse::IAlias | |
enum | AliasType { AT_UNDEFINED, AT_TECHNIQUE, AT_RENDERER, AT_EMITTER, AT_AFFECTOR, AT_OBSERVER, AT_EXTERN, AT_HANDLER, AT_BEHAVIOUR } |
ParticleRenderer is a virtual class and must be subclassed. A subclass of ParticleRenderer is responsible for rendering the visual particles.
ParticleUniverse::ParticleRenderer::ParticleRenderer | ( | void | ) |
|
virtual |
|
protected |
In case soft particles are used, a new material must be created.
|
pure virtual |
Gets the particles sort mode
Implemented in ParticleUniverse::LightRenderer, ParticleUniverse::RibbonTrailRenderer, ParticleUniverse::BeamRenderer, ParticleUniverse::BillboardRenderer, ParticleUniverse::EntityRenderer, ParticleUniverse::BoxRenderer, and ParticleUniverse::SphereRenderer.
|
pure virtual |
Delegated to by ParticleTechnique::_notifyAttached
Implemented in ParticleUniverse::LightRenderer, ParticleUniverse::RibbonTrailRenderer, ParticleUniverse::BeamRenderer, ParticleUniverse::BillboardRenderer, ParticleUniverse::EntityRenderer, ParticleUniverse::BoxRenderer, and ParticleUniverse::SphereRenderer.
|
pure virtual |
Delegated to by ParticleTechnique::_notifyCurrentCamera
Implemented in ParticleUniverse::LightRenderer, ParticleUniverse::RibbonTrailRenderer, ParticleUniverse::BeamRenderer, ParticleUniverse::BillboardRenderer, ParticleUniverse::EntityRenderer, ParticleUniverse::BoxRenderer, and ParticleUniverse::SphereRenderer.
|
pure virtual |
The particle default size has changed
Implemented in ParticleUniverse::LightRenderer, ParticleUniverse::RibbonTrailRenderer, ParticleUniverse::BeamRenderer, ParticleUniverse::BillboardRenderer, ParticleUniverse::EntityRenderer, ParticleUniverse::BoxRenderer, and ParticleUniverse::SphereRenderer.
|
pure virtual |
The particle quota has changed
Implemented in ParticleUniverse::LightRenderer, ParticleUniverse::RibbonTrailRenderer, ParticleUniverse::BeamRenderer, ParticleUniverse::BillboardRenderer, ParticleUniverse::EntityRenderer, ParticleUniverse::BoxRenderer, and ParticleUniverse::SphereRenderer.
|
pure virtual |
Callback when particles are resized
Implemented in ParticleUniverse::LightRenderer, ParticleUniverse::RibbonTrailRenderer, ParticleUniverse::BeamRenderer, ParticleUniverse::BillboardRenderer, ParticleUniverse::EntityRenderer, ParticleUniverse::BoxRenderer, and ParticleUniverse::SphereRenderer.
|
inlinevirtual |
Callback when particles are rotated
Reimplemented in ParticleUniverse::RibbonTrailRenderer, ParticleUniverse::BeamRenderer, ParticleUniverse::BillboardRenderer, ParticleUniverse::EntityRenderer, ParticleUniverse::BoxRenderer, and ParticleUniverse::SphereRenderer.
|
virtual |
Notify that the Particle System is rescaled.
Reimplemented in ParticleUniverse::RibbonTrailRenderer.
|
virtual |
Perform activities when a Renderer is started.
|
virtual |
Perform activities when a Renderer is stopped.
|
pure virtual |
Prepare the renderer before it can be used.
Implemented in ParticleUniverse::LightRenderer, ParticleUniverse::RibbonTrailRenderer, ParticleUniverse::BeamRenderer, ParticleUniverse::EntityRenderer, ParticleUniverse::BillboardRenderer, ParticleUniverse::BoxRenderer, and ParticleUniverse::SphereRenderer.
|
inlinevirtual |
Entry point for processing an individual particle.
Reimplemented in ParticleUniverse::LightRenderer, and ParticleUniverse::BeamRenderer.
|
pure virtual |
Sets the material this renderer must use; called by ParticleTechnique.
Implemented in ParticleUniverse::LightRenderer, ParticleUniverse::RibbonTrailRenderer, ParticleUniverse::BeamRenderer, ParticleUniverse::BillboardRenderer, ParticleUniverse::EntityRenderer, ParticleUniverse::BoxRenderer, and ParticleUniverse::SphereRenderer.
|
protected |
Used to determine the original material name
|
inlinevirtual |
Reverse the actions from the _prepare.
Reimplemented in ParticleUniverse::LightRenderer, ParticleUniverse::RibbonTrailRenderer, ParticleUniverse::BeamRenderer, ParticleUniverse::EntityRenderer, ParticleUniverse::BillboardRenderer, ParticleUniverse::BoxRenderer, and ParticleUniverse::SphereRenderer.
|
virtual |
Updates the renderqueue
Reimplemented in ParticleUniverse::RibbonTrailRenderer, ParticleUniverse::BillboardRenderer, ParticleUniverse::BeamRenderer, ParticleUniverse::EntityRenderer, ParticleUniverse::BoxRenderer, and ParticleUniverse::SphereRenderer.
void ParticleUniverse::ParticleRenderer::addTextureCoords | ( | const Real | u, |
const Real | v, | ||
const Real | width, | ||
const Real | height | ||
) |
Add a texture coordinate set, which consist of a the texel position (u, v), width and height
|
virtual |
Copy attributes to another renderer.
Reimplemented in ParticleUniverse::LightRenderer, ParticleUniverse::RibbonTrailRenderer, ParticleUniverse::BeamRenderer, ParticleUniverse::BillboardRenderer, ParticleUniverse::EntityRenderer, ParticleUniverse::BoxRenderer, and ParticleUniverse::SphereRenderer.
|
virtual |
Copy parent attributes to another renderer.
size_t ParticleUniverse::ParticleRenderer::getNumTextureCoords | ( | void | ) |
Return the number of texture coordinates.
ParticleTechnique* ParticleUniverse::ParticleRenderer::getParentTechnique | ( | void | ) | const |
Get / set the parent.
const String& ParticleUniverse::ParticleRenderer::getRendererType | ( | void | ) | const |
|
virtual |
Get renderqueue group
Real ParticleUniverse::ParticleRenderer::getSoftParticlesContrastPower | ( | void | ) | const |
Contrast Power determines the strength of the alpha that is applied to the particles.
Real ParticleUniverse::ParticleRenderer::getSoftParticlesDelta | ( | void | ) | const |
The delta is a threshold value that determines at what 'depth distance' alpha fading is applied.
Real ParticleUniverse::ParticleRenderer::getSoftParticlesScale | ( | void | ) | const |
Scale determines the 'velocity' of alpha fading.
const vector<Ogre::FloatRect*>& ParticleUniverse::ParticleRenderer::getTextureCoords | ( | void | ) | const |
Returns the list with texture coordinates.
const uchar ParticleUniverse::ParticleRenderer::getTextureCoordsColumns | ( | void | ) | const |
Get the number of textureCoords colums (slices) of an atlas texture.
const uchar ParticleUniverse::ParticleRenderer::getTextureCoordsRows | ( | void | ) | const |
Get the number of textureCoords rows (stacks) of an atlas texture.
bool ParticleUniverse::ParticleRenderer::getUseSoftParticles | ( | void | ) | const |
Returns value that indicates whether usage of soft particles is on or off.
bool ParticleUniverse::ParticleRenderer::isRendererInitialised | ( | void | ) | const |
Get / set whether the renderer is initialised.
const bool ParticleUniverse::ParticleRenderer::isSorted | ( | void | ) | const |
Returns whether the particles are sorted
void ParticleUniverse::ParticleRenderer::setParentTechnique | ( | ParticleTechnique * | parentTechnique | ) |
void ParticleUniverse::ParticleRenderer::setRendererInitialised | ( | bool | rendererInitialised | ) |
void ParticleUniverse::ParticleRenderer::setRendererType | ( | String | rendererType | ) |
|
virtual |
Sets renderqueue group
Reimplemented in ParticleUniverse::RibbonTrailRenderer, ParticleUniverse::BeamRenderer, ParticleUniverse::BillboardRenderer, ParticleUniverse::EntityRenderer, ParticleUniverse::BoxRenderer, and ParticleUniverse::SphereRenderer.
void ParticleUniverse::ParticleRenderer::setSoftParticlesContrastPower | ( | Real | softParticlesContrastPower | ) |
Todo
void ParticleUniverse::ParticleRenderer::setSoftParticlesDelta | ( | Real | softParticlesDelta | ) |
Todo
void ParticleUniverse::ParticleRenderer::setSoftParticlesScale | ( | Real | softParticlesScale | ) |
Todo
void ParticleUniverse::ParticleRenderer::setSorted | ( | bool | sorted | ) |
Determines whether the particles are sorted
void ParticleUniverse::ParticleRenderer::setTextureCoordsColumns | ( | uchar const | textureCoordsColumns | ) |
Set the number of textureCoords colums (slices) of an atlas texture.
void ParticleUniverse::ParticleRenderer::setTextureCoordsRows | ( | uchar const | textureCoordsRows | ) |
Set the number of textureCoords rows (stacks) of an atlas texture.
void ParticleUniverse::ParticleRenderer::setUseSoftParticles | ( | bool | useSoftParticles | ) |
Set usage of soft particles on or off.
|
inlinevirtual |
To make currently displayed objects visible or not.
Reimplemented in ParticleUniverse::BillboardRenderer, ParticleUniverse::BeamRenderer, ParticleUniverse::RibbonTrailRenderer, ParticleUniverse::EntityRenderer, ParticleUniverse::BoxRenderer, and ParticleUniverse::SphereRenderer.
|
protected |
Although the scale is on a Particle System level, the renderer can also be scaled.
bool ParticleUniverse::ParticleRenderer::autoRotate |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
protected |
|
protected |
|
protected |
|
protected |
Original material (pass) settings.
|
protected |
|
protected |
|
protected |
In case soft particles are used, the renderer notifies the ParticleSystemManager until notification succeeded. The notification may be done multiple times, because a camera is needed from the Parent System, and it is not guaranteed that it already exists.
|
protected |
|
protected |
Defines the renderqueue.
|
protected |
Determines whether renderer is initialised.
|
protected |
|
protected |
Soft particles properties.
|
protected |
|
protected |
|
protected |
Determines whether the visual particles must be sorted.
|
protected |
If an atlas texture is used, it is possible to define texture coordinates. This is the number of image columns (slices) in the atlas texture.
|
protected |
If an atlas texture is used, it is possible to define texture coordinates. This is the number of image rows (stacks) in the atlas texture.
|
protected |
If mTextureCoordsRows and mTextureCoordsColumns are set, this boolean is set to true, indicating that Texture Coordinates are used.
|
protected |
If textureCoords are set individually, this boolean is set to true, indicating that Texture Coordinates are used.
|
protected |
Determines whether soft particles are used.
|
protected |
List of texture coordinates.
|
protected |
Determines visibility of the renderer. This means that particles arenīt renderer anymore.
|
protected |