5 #ifndef __I_PARTICLE_SYSTEM_SCENE_NODE_H_INCLUDED__ 6 #define __I_PARTICLE_SYSTEM_SCENE_NODE_H_INCLUDED__ 203 f32 normalDirectionModifier = 100.0
f,
s32 mbNumber = -1,
204 bool everyMeshVertex =
false,
205 u32 minParticlesPerSecond = 5,
u32 maxParticlesPerSecond = 10,
208 u32 lifeTimeMin = 2000,
u32 lifeTimeMax = 4000,
209 s32 maxAngleDegrees = 0,
243 u32 minParticlesPerSecond = 5,
244 u32 maxParticlesPerSecond = 10,
247 u32 lifeTimeMin=2000,
u32 lifeTimeMax=4000,
248 s32 maxAngleDegrees=0,
287 bool outlineOnly =
false,
289 u32 minParticlesPerSecond = 5,
u32 maxParticlesPerSecond = 10,
292 u32 lifeTimeMin = 2000,
u32 lifeTimeMax = 4000,
293 s32 maxAngleDegrees = 0,
343 f32 normalDirectionModifier = 100.0
f,
s32 mbNumber = -1,
344 bool everyMeshVertex =
false,
345 u32 minParticlesPerSecond = 5,
u32 maxParticlesPerSecond = 10,
348 u32 lifeTimeMin = 2000,
u32 lifeTimeMax = 4000,
349 s32 maxAngleDegrees = 0,
381 u32 minParticlesPerSecond = 5,
382 u32 maxParticlesPerSecond = 10,
385 u32 lifeTimeMin=2000,
u32 lifeTimeMax=4000,
386 s32 maxAngleDegrees=0,
424 u32 minParticlesPerSecond = 5,
425 u32 maxParticlesPerSecond = 10,
428 u32 lifeTimeMin=2000,
u32 lifeTimeMax=4000,
429 s32 maxAngleDegrees=0,
464 u32 minParticlesPerSecond = 5,
465 u32 maxParticlesPerSecond = 10,
468 u32 lifeTimeMin=2000,
u32 lifeTimeMax=4000,
469 s32 maxAngleDegrees=0,
493 bool affectX =
true,
bool affectY =
true,
bool affectZ =
true) = 0;
521 u32 timeNeededToFadeOut = 1000) = 0;
538 u32 timeForceLost = 1000) = 0;
GLenum GLenum GLenum GLenum GLenum scale
Provides a generic interface for attributes and their values and the possibility to serialize them.
A particle affector which attracts or detracts particles.
float f32
32 bit floating point variable.
A particle emitter which emits from a cylindrically shaped space.
virtual IParticlePointEmitter * createPointEmitter(const core::vector3df &direction=core::vector3df(0.0f, 0.03f, 0.0f), u32 minParticlesPerSecond=5, u32 maxParticlesPerSecond=10, const video::SColor &minStartColor=video::SColor(255, 0, 0, 0), const video::SColor &maxStartColor=video::SColor(255, 255, 255, 255), u32 lifeTimeMin=2000, u32 lifeTimeMax=4000, s32 maxAngleDegrees=0, const core::dimension2df &minStartSize=core::dimension2df(5.0f, 5.0f), const core::dimension2df &maxStartSize=core::dimension2df(5.0f, 5.0f))=0
Creates a point particle emitter.
Continue updating particle positions or deleting them even when the node is invisible.
virtual void clearParticles()=0
Remove all currently visible particles.
virtual void setEmitter(IParticleEmitter *emitter)=0
Sets the particle emitter, which creates the particles.
virtual IParticleAffector * createScaleParticleAffector(const core::dimension2df &scaleTo=core::dimension2df(1.0f, 1.0f))=0
Creates a scale particle affector.
struct holding data describing options
IParticleSystemSceneNode(ISceneNode *parent, ISceneManager *mgr, s32 id, const core::vector3df &position=core::vector3df(0, 0, 0), const core::vector3df &rotation=core::vector3df(0, 0, 0), const core::vector3df &scale=core::vector3df(1.0f, 1.0f, 1.0f))
Constructor.
virtual void deserializeAttributes(io::IAttributes *in, io::SAttributeReadWriteOptions *options) _IRR_OVERRIDE_
Reads attributes of the scene node.
virtual void setParticleSize(const core::dimension2d< f32 > &size=core::dimension2d< f32 >(5.0f, 5.0f))=0
Sets the size of all particles.
virtual void addAffector(IParticleAffector *affector)=0
Adds new particle effector to the particle system.
Everything in the Irrlicht Engine can be found in this namespace.
A particle emitter which emits particles from mesh vertices.
virtual IParticleSphereEmitter * createSphereEmitter(const core::vector3df ¢er, f32 radius, const core::vector3df &direction=core::vector3df(0.0f, 0.03f, 0.0f), u32 minParticlesPerSecond=5, u32 maxParticlesPerSecond=10, const video::SColor &minStartColor=video::SColor(255, 0, 0, 0), const video::SColor &maxStartColor=video::SColor(255, 255, 255, 255), u32 lifeTimeMin=2000, u32 lifeTimeMax=4000, s32 maxAngleDegrees=0, const core::dimension2df &minStartSize=core::dimension2df(5.0f, 5.0f), const core::dimension2df &maxStartSize=core::dimension2df(5.0f, 5.0f))=0
Creates a sphere particle emitter.
Specifies a 2 dimensional size.
virtual IParticleRotationAffector * createRotationAffector(const core::vector3df &speed=core::vector3df(5.0f, 5.0f, 5.0f), const core::vector3df &pivotPoint=core::vector3df(0.0f, 0.0f, 0.0f))=0
Creates a rotation affector.
virtual IParticleGravityAffector * createGravityAffector(const core::vector3df &gravity=core::vector3df(0.0f,-0.03f, 0.0f), u32 timeForceLost=1000)=0
Creates a gravity affector.
Doubly linked list template.
Class which holds the geometry of an object.
A particle affector modifies particles.
EParticleBehavior
A particle system scene node for creating snow, fire, explosions, smoke...
virtual void removeAllAffectors()=0
Removes all particle affectors in the particle system.
virtual IParticleRingEmitter * createRingEmitter(const core::vector3df ¢er, f32 radius, f32 ringThickness, const core::vector3df &direction=core::vector3df(0.0f, 0.03f, 0.0f), u32 minParticlesPerSecond=5, u32 maxParticlesPerSecond=10, const video::SColor &minStartColor=video::SColor(255, 0, 0, 0), const video::SColor &maxStartColor=video::SColor(255, 255, 255, 255), u32 lifeTimeMin=2000, u32 lifeTimeMax=4000, s32 maxAngleDegrees=0, const core::dimension2df &minStartSize=core::dimension2df(5.0f, 5.0f), const core::dimension2df &maxStartSize=core::dimension2df(5.0f, 5.0f))=0
Creates a ring particle emitter.
signed int s32
32 bit signed variable.
Scene node capable of displaying an animated mesh.
virtual IParticleEmitter * getEmitter()=0
Gets the particle emitter, which creates the particles.
unsigned int u32
32 bit unsigned variable.
A particle affector which fades out the particles.
virtual IParticleMeshEmitter * createMeshEmitter(scene::IMesh *mesh, bool useNormalDirection=true, const core::vector3df &direction=core::vector3df(0.0f, 0.03f, 0.0f), f32 normalDirectionModifier=100.0f, s32 mbNumber=-1, bool everyMeshVertex=false, u32 minParticlesPerSecond=5, u32 maxParticlesPerSecond=10, const video::SColor &minStartColor=video::SColor(255, 0, 0, 0), const video::SColor &maxStartColor=video::SColor(255, 255, 255, 255), u32 lifeTimeMin=2000, u32 lifeTimeMax=4000, s32 maxAngleDegrees=0, const core::dimension2df &minStartSize=core::dimension2df(5.0f, 5.0f), const core::dimension2df &maxStartSize=core::dimension2df(5.0f, 5.0f))=0
Creates a mesh particle emitter.
A particle emitter which emits from a spherical space.
virtual void setParticleBehavior(irr::u32 flags)
Bitflags to change the particle behavior.
virtual IParticleFadeOutAffector * createFadeOutParticleAffector(const video::SColor &targetColor=video::SColor(0, 0, 0, 0), u32 timeNeededToFadeOut=1000)=0
Creates a fade out particle affector.
virtual void serializeAttributes(io::IAttributes *out, io::SAttributeReadWriteOptions *options) const _IRR_OVERRIDE_
Writes attributes of the scene node.
Class representing a 32 bit ARGB color.
A particle emitter for using with particle systems.
The Scene Manager manages scene nodes, mesh resources, cameras and all the other stuff.
virtual irr::u32 getParticleBehavior() const
Gets how particles behave in different situations.
#define _IRR_OVERRIDE_
Defines an override macro, to protect virtual functions from typos and other mismatches.
A particle affector which rotates the particle system.
A particle emitter which emits particles along a ring shaped area.
virtual IParticleBoxEmitter * createBoxEmitter(const core::aabbox3df &box=core::aabbox3df(-10, 28,-10, 10, 30, 10), const core::vector3df &direction=core::vector3df(0.0f, 0.03f, 0.0f), u32 minParticlesPerSecond=5, u32 maxParticlesPerSecond=10, const video::SColor &minStartColor=video::SColor(255, 0, 0, 0), const video::SColor &maxStartColor=video::SColor(255, 255, 255, 255), u32 lifeTimeMin=2000, u32 lifeTimeMax=4000, s32 maxAngleDegrees=0, const core::dimension2df &minStartSize=core::dimension2df(5.0f, 5.0f), const core::dimension2df &maxStartSize=core::dimension2df(5.0f, 5.0f))=0
Creates a box particle emitter.
virtual void setParticlesAreGlobal(bool global=true)=0
Sets if the particles should be global.
virtual IParticleCylinderEmitter * createCylinderEmitter(const core::vector3df ¢er, f32 radius, const core::vector3df &normal, f32 length, bool outlineOnly=false, const core::vector3df &direction=core::vector3df(0.0f, 0.03f, 0.0f), u32 minParticlesPerSecond=5, u32 maxParticlesPerSecond=10, const video::SColor &minStartColor=video::SColor(255, 0, 0, 0), const video::SColor &maxStartColor=video::SColor(255, 255, 255, 255), u32 lifeTimeMin=2000, u32 lifeTimeMax=4000, s32 maxAngleDegrees=0, const core::dimension2df &minStartSize=core::dimension2df(5.0f, 5.0f), const core::dimension2df &maxStartSize=core::dimension2df(5.0f, 5.0f))=0
Creates a particle emitter for emitting from a cylinder.
virtual void doParticleSystem(u32 time)=0
Do manually update the particles.
virtual IParticleAnimatedMeshSceneNodeEmitter * createAnimatedMeshSceneNodeEmitter(scene::IAnimatedMeshSceneNode *node, bool useNormalDirection=true, const core::vector3df &direction=core::vector3df(0.0f, 0.03f, 0.0f), f32 normalDirectionModifier=100.0f, s32 mbNumber=-1, bool everyMeshVertex=false, u32 minParticlesPerSecond=5, u32 maxParticlesPerSecond=10, const video::SColor &minStartColor=video::SColor(255, 0, 0, 0), const video::SColor &maxStartColor=video::SColor(255, 255, 255, 255), u32 lifeTimeMin=2000, u32 lifeTimeMax=4000, s32 maxAngleDegrees=0, const core::dimension2df &minStartSize=core::dimension2df(5.0f, 5.0f), const core::dimension2df &maxStartSize=core::dimension2df(5.0f, 5.0f))=0
Creates a particle emitter for an animated mesh scene node.
virtual IParticleAttractionAffector * createAttractionAffector(const core::vector3df &point, f32 speed=1.0f, bool attract=true, bool affectX=true, bool affectY=true, bool affectZ=true)=0
Creates a point attraction affector.
virtual const core::list< IParticleAffector * > & getAffectors() const =0
Get a list of all particle affectors.
A particle emitter which emits from vertices of a mesh.
GLuint GLsizei GLsizei * length
A particle emitter which emits particles from a box shaped space.
A particle affector which applies gravity to particles.
Clear all particles when node gets invisible.
Continue emitting new particles even when the node is invisible.
Continue affecting particles even when the node is invisible.