IParticleAttractionAffector.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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_ATTRACTION_AFFECTOR_H_INCLUDED__
  5. #define __I_PARTICLE_ATTRACTION_AFFECTOR_H_INCLUDED__
  6. #include "IParticleAffector.h"
  7. namespace irr
  8. {
  9. namespace scene
  10. {
  11. //! A particle affector which attracts or detracts particles.
  12. class IParticleAttractionAffector : public IParticleAffector
  13. {
  14. public:
  15. //! Set the point that particles will attract to
  16. virtual void setPoint( const core::vector3df& point ) = 0;
  17. //! Set the speed, in game units per second that the particles will attract to the specified point
  18. virtual void setSpeed( f32 speed ) =0;
  19. //! Set whether or not the particles are attracting or detracting
  20. virtual void setAttract( bool attract ) = 0;
  21. //! Set whether or not this will affect particles in the X direction
  22. virtual void setAffectX( bool affect ) = 0;
  23. //! Set whether or not this will affect particles in the Y direction
  24. virtual void setAffectY( bool affect ) = 0;
  25. //! Set whether or not this will affect particles in the Z direction
  26. virtual void setAffectZ( bool affect ) = 0;
  27. //! Get the point that particles are attracted to
  28. virtual const core::vector3df& getPoint() const = 0;
  29. //! Get the speed that points attract to the specified point
  30. virtual f32 getSpeed() const =0;
  31. //! Get whether or not the particles are attracting or detracting
  32. virtual bool getAttract() const = 0;
  33. //! Get whether or not the particles X position are affected
  34. virtual bool getAffectX() const = 0;
  35. //! Get whether or not the particles Y position are affected
  36. virtual bool getAffectY() const = 0;
  37. //! Get whether or not the particles Z position are affected
  38. virtual bool getAffectZ() const = 0;
  39. //! Get emitter type
  40. virtual E_PARTICLE_AFFECTOR_TYPE getType() const _IRR_OVERRIDE_ { return EPAT_ATTRACT; }
  41. };
  42. } // end namespace scene
  43. } // end namespace irr
  44. #endif // __I_PARTICLE_ATTRACTION_AFFECTOR_H_INCLUDED__