1 // Copyright (C) 2002-2012 Nikolaus Gebhardt
\r
2 // This file is part of the "Irrlicht Engine".
\r
3 // For conditions of distribution and use, see copyright notice in irrlicht.h
\r
5 #ifndef __I_PARTICLE_CYLINDER_EMITTER_H_INCLUDED__
\r
6 #define __I_PARTICLE_CYLINDER_EMITTER_H_INCLUDED__
\r
8 #include "IParticleEmitter.h"
\r
15 //! A particle emitter which emits from a cylindrically shaped space.
\r
16 class IParticleCylinderEmitter : public IParticleEmitter
\r
20 //! Set the center of the radius for the cylinder, at one end of the cylinder
\r
21 virtual void setCenter( const core::vector3df& center ) = 0;
\r
23 //! Set the normal of the cylinder
\r
24 virtual void setNormal( const core::vector3df& normal ) = 0;
\r
26 //! Set the radius of the cylinder
\r
27 virtual void setRadius( f32 radius ) = 0;
\r
29 //! Set the length of the cylinder
\r
30 virtual void setLength( f32 length ) = 0;
\r
32 //! Set whether or not to draw points inside the cylinder
\r
33 virtual void setOutlineOnly( bool outlineOnly = true ) = 0;
\r
35 //! Get the center of the cylinder
\r
36 virtual const core::vector3df& getCenter() const = 0;
\r
38 //! Get the normal of the cylinder
\r
39 virtual const core::vector3df& getNormal() const = 0;
\r
41 //! Get the radius of the cylinder
\r
42 virtual f32 getRadius() const = 0;
\r
44 //! Get the center of the cylinder
\r
45 virtual f32 getLength() const = 0;
\r
47 //! Get whether or not to draw points inside the cylinder
\r
48 virtual bool getOutlineOnly() const = 0;
\r
50 //! Get emitter type
\r
51 virtual E_PARTICLE_EMITTER_TYPE getType() const _IRR_OVERRIDE_ { return EPET_CYLINDER; }
\r
54 } // end namespace scene
\r
55 } // end namespace irr
\r