Loading...
Searching...
No Matches
IParticleEmitter.h
Go to the documentation of this file.
// Copyright (C) 2002-2012 Nikolaus Gebhardt
// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in irrlicht.h
#ifndef __I_PARTICLE_EMITTER_H_INCLUDED__
#define __I_PARTICLE_EMITTER_H_INCLUDED__
#include "IAttributeExchangingObject.h"
#include "SParticle.h"
namespace irr
{
namespace scene
{
enum E_PARTICLE_EMITTER_TYPE
{
EPET_POINT = 0,
EPET_ANIMATED_MESH,
EPET_BOX,
EPET_CYLINDER,
EPET_MESH,
EPET_RING,
EPET_SPHERE,
EPET_COUNT
};
const c8* const ParticleEmitterTypeNames[] =
{
"Point",
"AnimatedMesh",
"Box",
"Cylinder",
"Mesh",
"Ring",
"Sphere",
0
};
class IParticleEmitter : public virtual io::IAttributeExchangingObject
{
public:
virtual s32 emitt(u32 now, u32 timeSinceLastCall, SParticle*& outArray) = 0;
virtual void setDirection( const core::vector3df& newDirection ) = 0;
virtual void setMinParticlesPerSecond( u32 minPPS ) = 0;
virtual void setMaxParticlesPerSecond( u32 maxPPS ) = 0;
virtual void setMinStartColor( const video::SColor& color ) = 0;
virtual void setMaxStartColor( const video::SColor& color ) = 0;
virtual void setMaxStartSize( const core::dimension2df& size ) = 0;
virtual void setMinStartSize( const core::dimension2df& size ) = 0;
virtual void setMinLifeTime( u32 lifeTimeMin ) = 0;
virtual void setMaxLifeTime( u32 lifeTimeMax ) = 0;
virtual void setMaxAngleDegrees( s32 maxAngleDegrees ) = 0;
virtual const core::vector3df& getDirection() const = 0;
virtual u32 getMinParticlesPerSecond() const = 0;
virtual u32 getMaxParticlesPerSecond() const = 0;
virtual const video::SColor& getMinStartColor() const = 0;
virtual const video::SColor& getMaxStartColor() const = 0;
virtual const core::dimension2df& getMaxStartSize() const = 0;
virtual const core::dimension2df& getMinStartSize() const = 0;
virtual u32 getMinLifeTime() const = 0;
virtual u32 getMaxLifeTime() const = 0;
virtual s32 getMaxAngleDegrees() const = 0;
virtual E_PARTICLE_EMITTER_TYPE getType() const { return EPET_POINT; }
};
typedef IParticleEmitter IParticlePointEmitter;
} // end namespace scene
} // end namespace irr
#endif
IAttributeExchangingObject.h
SParticle.h
irr::io::IAttributeExchangingObject
An object which is able to serialize and deserialize its attributes into an attributes object.
Definition IAttributeExchangingObject.h:52
irr::scene::IParticleEmitter
A particle emitter for using with particle systems.
Definition IParticleEmitter.h:46
irr::scene::IParticleEmitter::setMinStartSize
virtual void setMinStartSize(const core::dimension2df &size)=0
Set the minimum starting size for particles.
irr::scene::IParticleEmitter::getMinLifeTime
virtual u32 getMinLifeTime() const =0
Get the minimum particle life-time in milliseconds.
irr::scene::IParticleEmitter::getMinParticlesPerSecond
virtual u32 getMinParticlesPerSecond() const =0
Get the minimum number of particles the emitter emits per second.
irr::scene::IParticleEmitter::getType
virtual E_PARTICLE_EMITTER_TYPE getType() const
Get emitter type.
Definition IParticleEmitter.h:119
irr::scene::IParticleEmitter::getMaxStartColor
virtual const video::SColor & getMaxStartColor() const =0
Get the maximum starting color for particles.
irr::scene::IParticleEmitter::setMinStartColor
virtual void setMinStartColor(const video::SColor &color)=0
Set minimum starting color for particles.
irr::scene::IParticleEmitter::setMinLifeTime
virtual void setMinLifeTime(u32 lifeTimeMin)=0
Set the minimum particle life-time in milliseconds.
irr::scene::IParticleEmitter::setMaxLifeTime
virtual void setMaxLifeTime(u32 lifeTimeMax)=0
Set the maximum particle life-time in milliseconds.
irr::scene::IParticleEmitter::getMinStartSize
virtual const core::dimension2df & getMinStartSize() const =0
Get the minimum starting size for particles.
irr::scene::IParticleEmitter::setMaxStartColor
virtual void setMaxStartColor(const video::SColor &color)=0
Set maximum starting color for particles.
irr::scene::IParticleEmitter::getMaxLifeTime
virtual u32 getMaxLifeTime() const =0
Get the maximum particle life-time in milliseconds.
irr::scene::IParticleEmitter::getMinStartColor
virtual const video::SColor & getMinStartColor() const =0
Get the minimum starting color for particles.
irr::scene::IParticleEmitter::setMaxAngleDegrees
virtual void setMaxAngleDegrees(s32 maxAngleDegrees)=0
Set maximal random derivation from the direction.
irr::scene::IParticleEmitter::emitt
virtual s32 emitt(u32 now, u32 timeSinceLastCall, SParticle *&outArray)=0
Prepares an array with new particles to emitt into the system.
irr::scene::IParticleEmitter::setMaxStartSize
virtual void setMaxStartSize(const core::dimension2df &size)=0
Set the maximum starting size for particles.
irr::scene::IParticleEmitter::setMaxParticlesPerSecond
virtual void setMaxParticlesPerSecond(u32 maxPPS)=0
Set maximum number of particles the emitter emits per second.
irr::scene::IParticleEmitter::setDirection
virtual void setDirection(const core::vector3df &newDirection)=0
Set direction the emitter emits particles.
irr::scene::IParticleEmitter::getDirection
virtual const core::vector3df & getDirection() const =0
Get direction the emitter emits particles.
irr::scene::IParticleEmitter::getMaxAngleDegrees
virtual s32 getMaxAngleDegrees() const =0
Get maximal random derivation from the direction.
irr::scene::IParticleEmitter::getMaxStartSize
virtual const core::dimension2df & getMaxStartSize() const =0
Get the maximum starting size for particles.
irr::scene::IParticleEmitter::setMinParticlesPerSecond
virtual void setMinParticlesPerSecond(u32 minPPS)=0
Set minimum number of particles the emitter emits per second.
irr::scene::IParticleEmitter::getMaxParticlesPerSecond
virtual u32 getMaxParticlesPerSecond() const =0
Get the maximum number of particles the emitter emits per second.
irr::video::SColor
Class representing a 32 bit ARGB color.
Definition SColor.h:202
irr::core::vector3df
vector3d< f32 > vector3df
Typedef for a f32 3d vector.
Definition vector3d.h:445
irr::core::dimension2df
dimension2d< f32 > dimension2df
Typedef for an f32 dimension.
Definition dimension2d.h:210
irr::scene
All scene management can be found in this namespace: Mesh loading, special scene nodes like octrees a...
Definition CDynamicMeshBuffer.h:16
irr::scene::E_PARTICLE_EMITTER_TYPE
E_PARTICLE_EMITTER_TYPE
Types of built in particle emitters.
Definition IParticleEmitter.h:18
irr::scene::EPET_SPHERE
@ EPET_SPHERE
Definition IParticleEmitter.h:25
irr::scene::EPET_ANIMATED_MESH
@ EPET_ANIMATED_MESH
Definition IParticleEmitter.h:20
irr::scene::EPET_MESH
@ EPET_MESH
Definition IParticleEmitter.h:23
irr::scene::EPET_CYLINDER
@ EPET_CYLINDER
Definition IParticleEmitter.h:22
irr::scene::EPET_BOX
@ EPET_BOX
Definition IParticleEmitter.h:21
irr::scene::EPET_COUNT
@ EPET_COUNT
Definition IParticleEmitter.h:26
irr::scene::EPET_RING
@ EPET_RING
Definition IParticleEmitter.h:24
irr::scene::EPET_POINT
@ EPET_POINT
Definition IParticleEmitter.h:19
irr::scene::IParticlePointEmitter
IParticleEmitter IParticlePointEmitter
Definition IParticleEmitter.h:122
irr::scene::ParticleEmitterTypeNames
const c8 *const ParticleEmitterTypeNames[]
Names for built in particle emitters.
Definition IParticleEmitter.h:30
irr
Everything in the Irrlicht Engine can be found in this namespace.
Definition aabbox3d.h:13
irr::u32
unsigned int u32
32 bit unsigned variable.
Definition irrTypes.h:58
irr::c8
char c8
8 bit character variable.
Definition irrTypes.h:31
irr::s32
signed int s32
32 bit signed variable.
Definition irrTypes.h:66
irr::scene::SParticle
Struct for holding particle data.
Definition SParticle.h:18
- Irrlicht Engine Documentation © 2003-2012 by Nikolaus Gebhardt. Generated on for Irrlicht 3D Engine by Doxygen 1.15.0