IParticleAnimatedMeshSceneNodeEmitter.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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 IRR_I_PARTICLE_ANIMATED_MESH_SCENE_NODE_EMITTER_H_INCLUDED
  5. #define IRR_I_PARTICLE_ANIMATED_MESH_SCENE_NODE_EMITTER_H_INCLUDED
  6. #include "IParticleEmitter.h"
  7. #include "IAnimatedMeshSceneNode.h"
  8. namespace irr
  9. {
  10. namespace scene
  11. {
  12. //! A particle emitter which emits particles from mesh vertices.
  13. class IParticleAnimatedMeshSceneNodeEmitter : public IParticleEmitter
  14. {
  15. public:
  16. //! Set Mesh to emit particles from
  17. virtual void setAnimatedMeshSceneNode( IAnimatedMeshSceneNode* node ) = 0;
  18. //! Set whether to use vertex normal for direction, or direction specified
  19. virtual void setUseNormalDirection( bool useNormalDirection = true ) = 0;
  20. //! Set the amount that the normal is divided by for getting a particles direction
  21. virtual void setNormalDirectionModifier( f32 normalDirectionModifier ) = 0;
  22. //! Sets whether to emit min<->max particles for every vertex or to pick min<->max vertices
  23. virtual void setEveryMeshVertex( bool everyMeshVertex = true ) = 0;
  24. //! Get mesh we're emitting particles from
  25. virtual const IAnimatedMeshSceneNode* getAnimatedMeshSceneNode() const = 0;
  26. //! Get whether to use vertex normal for direction, or direction specified
  27. virtual bool isUsingNormalDirection() const = 0;
  28. //! Get the amount that the normal is divided by for getting a particles direction
  29. virtual f32 getNormalDirectionModifier() const = 0;
  30. //! Gets whether to emit min<->max particles for every vertex or to pick min<->max vertices
  31. virtual bool getEveryMeshVertex() const = 0;
  32. //! Get emitter type
  33. virtual E_PARTICLE_EMITTER_TYPE getType() const IRR_OVERRIDE { return EPET_ANIMATED_MESH; }
  34. };
  35. } // end namespace scene
  36. } // end namespace irr
  37. #endif // IRR_I_PARTICLE_ANIMATED_MESH_SCENE_NODE_EMITTER_H_INCLUDED