IParticleCylinderEmitter.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // Copyright (C) 2002-2012 Nikolaus Gebhardt
  2. // This file is part of the "Irrlicht Engine".
  3. // For conditions of distribution and use, see copyright notice in irrlicht.h
  4. #ifndef __I_PARTICLE_CYLINDER_EMITTER_H_INCLUDED__
  5. #define __I_PARTICLE_CYLINDER_EMITTER_H_INCLUDED__
  6. #include "IParticleEmitter.h"
  7. namespace irr
  8. {
  9. namespace scene
  10. {
  11. //! A particle emitter which emits from a cylindrically shaped space.
  12. class IParticleCylinderEmitter : public IParticleEmitter
  13. {
  14. public:
  15. //! Set the center of the radius for the cylinder, at one end of the cylinder
  16. virtual void setCenter( const core::vector3df& center ) = 0;
  17. //! Set the normal of the cylinder
  18. virtual void setNormal( const core::vector3df& normal ) = 0;
  19. //! Set the radius of the cylinder
  20. virtual void setRadius( f32 radius ) = 0;
  21. //! Set the length of the cylinder
  22. virtual void setLength( f32 length ) = 0;
  23. //! Set whether or not to draw points inside the cylinder
  24. virtual void setOutlineOnly( bool outlineOnly = true ) = 0;
  25. //! Get the center of the cylinder
  26. virtual const core::vector3df& getCenter() const = 0;
  27. //! Get the normal of the cylinder
  28. virtual const core::vector3df& getNormal() const = 0;
  29. //! Get the radius of the cylinder
  30. virtual f32 getRadius() const = 0;
  31. //! Get the center of the cylinder
  32. virtual f32 getLength() const = 0;
  33. //! Get whether or not to draw points inside the cylinder
  34. virtual bool getOutlineOnly() const = 0;
  35. //! Get emitter type
  36. virtual E_PARTICLE_EMITTER_TYPE getType() const _IRR_OVERRIDE_ { return EPET_CYLINDER; }
  37. };
  38. } // end namespace scene
  39. } // end namespace irr
  40. #endif