Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members | Tutorials

IParticleEmitter.h

Go to the documentation of this file.
00001 // Copyright (C) 2002-2010 Nikolaus Gebhardt
00002 // This file is part of the "Irrlicht Engine".
00003 // For conditions of distribution and use, see copyright notice in irrlicht.h
00004 
00005 #ifndef __I_PARTICLE_EMITTER_H_INCLUDED__
00006 #define __I_PARTICLE_EMITTER_H_INCLUDED__
00007 
00008 #include "IAttributeExchangingObject.h"
00009 #include "SParticle.h"
00010 
00011 namespace irr
00012 {
00013 namespace scene
00014 {
00015 
00017 enum E_PARTICLE_EMITTER_TYPE
00018 {
00019         EPET_POINT = 0,
00020         EPET_ANIMATED_MESH,
00021         EPET_BOX,
00022         EPET_CYLINDER,
00023         EPET_MESH,
00024         EPET_RING,
00025         EPET_SPHERE,
00026         EPET_COUNT
00027 };
00028 
00030 const c8* const ParticleEmitterTypeNames[] =
00031 {
00032         "Point",
00033         "AnimatedMesh",
00034         "Box",
00035         "Cylinder",
00036         "Mesh",
00037         "Ring",
00038         "Sphere",
00039         0
00040 };
00041 
00043 
00045 class IParticleEmitter : public virtual io::IAttributeExchangingObject
00046 {
00047 public:
00048 
00050 
00055         virtual s32 emitt(u32 now, u32 timeSinceLastCall, SParticle*& outArray) = 0;
00056 
00058         virtual void setDirection( const core::vector3df& newDirection ) = 0;
00059 
00061         virtual void setMinParticlesPerSecond( u32 minPPS ) = 0;
00062 
00064         virtual void setMaxParticlesPerSecond( u32 maxPPS ) = 0;
00065 
00067         virtual void setMinStartColor( const video::SColor& color ) = 0;
00068 
00070         virtual void setMaxStartColor( const video::SColor& color ) = 0;
00071 
00073         virtual void setMaxStartSize( const core::dimension2df& size ) = 0;
00074 
00076         virtual void setMinStartSize( const core::dimension2df& size ) = 0;
00077 
00079         virtual const core::vector3df& getDirection() const = 0;
00080 
00082         virtual u32 getMinParticlesPerSecond() const = 0;
00083 
00085         virtual u32 getMaxParticlesPerSecond() const = 0;
00086 
00088         virtual const video::SColor& getMinStartColor() const = 0;
00089 
00091         virtual const video::SColor& getMaxStartColor() const = 0;
00092 
00094         virtual const core::dimension2df& getMaxStartSize() const = 0;
00095 
00097         virtual const core::dimension2df& getMinStartSize() const = 0;
00098 
00099 
00101         virtual E_PARTICLE_EMITTER_TYPE getType() const { return EPET_POINT; }
00102 };
00103 
00104 typedef IParticleEmitter IParticlePointEmitter;
00105 
00106 } // end namespace scene
00107 } // end namespace irr
00108 
00109 
00110 #endif
00111 

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2010 by Nikolaus Gebhardt. Generated on Sun Oct 24 12:41:57 2010 by Doxygen (1.6.2)