Jet  v1.3.3
particle_emitter2.h
Go to the documentation of this file.
1 // Copyright (c) 2010 Doyub Kim
2 //
3 // I am making my contributions/submissions to this project solely in my
4 // personal capacity and am not conveying any rights to any intellectual
5 // property of any third parties.
6 
7 #ifndef INCLUDE_JET_PARTICLE_EMITTER2_H_
8 #define INCLUDE_JET_PARTICLE_EMITTER2_H_
9 
10 #include <jet/animation.h>
12 
13 namespace jet {
14 
19  public:
26  typedef std::function<void(ParticleEmitter2*, double, double)>
28 
31 
33  virtual ~ParticleEmitter2();
34 
37  void update(double currentTimeInSeconds, double timeIntervalInSeconds);
38 
41 
43  void setTarget(const ParticleSystemData2Ptr& particles);
44 
46  bool isEnabled() const;
47 
49  void setIsEnabled(bool enabled);
50 
62 
63  protected:
65  virtual void onSetTarget(const ParticleSystemData2Ptr& particles);
66 
68  virtual void onUpdate(
69  double currentTimeInSeconds,
70  double timeIntervalInSeconds) = 0;
71 
72  private:
73  bool _isEnabled = true;
74  ParticleSystemData2Ptr _particles;
75  OnBeginUpdateCallback _onBeginUpdateCallback;
76 };
77 
79 typedef std::shared_ptr<ParticleEmitter2> ParticleEmitter2Ptr;
80 
81 } // namespace jet
82 
83 #endif // INCLUDE_JET_PARTICLE_EMITTER2_H_
jet::ParticleEmitter2
Abstract base class for 2-D particle emitter.
Definition: particle_emitter2.h:18
animation.h
jet::ParticleEmitter2::target
const ParticleSystemData2Ptr & target() const
Returns the target particle system to emit.
jet::ParticleEmitter2::setTarget
void setTarget(const ParticleSystemData2Ptr &particles)
Sets the target particle system to emit.
jet::ParticleEmitter2::ParticleEmitter2
ParticleEmitter2()
Default constructor.
jet::ParticleEmitter2::setIsEnabled
void setIsEnabled(bool enabled)
Sets true/false to enable/disable the emitter.
jet::ParticleEmitter2::update
void update(double currentTimeInSeconds, double timeIntervalInSeconds)
jet
Definition: advection_solver2.h:18
particle_system_data2.h
jet::ParticleEmitter2::onUpdate
virtual void onUpdate(double currentTimeInSeconds, double timeIntervalInSeconds)=0
Called when ParticleEmitter3::update is executed.
jet::ParticleEmitter2Ptr
std::shared_ptr< ParticleEmitter2 > ParticleEmitter2Ptr
Shared pointer for the ParticleEmitter2 type.
Definition: particle_emitter2.h:79
jet::ParticleEmitter2::isEnabled
bool isEnabled() const
Returns true if the emitter is enabled.
jet::ParticleSystemData2Ptr
std::shared_ptr< ParticleSystemData2 > ParticleSystemData2Ptr
Shared pointer type of ParticleSystemData2.
Definition: particle_system_data2.h:250
jet::ParticleEmitter2::OnBeginUpdateCallback
std::function< void(ParticleEmitter2 *, double, double)> OnBeginUpdateCallback
Callback function type for update calls.
Definition: particle_emitter2.h:27
jet::ParticleEmitter2::~ParticleEmitter2
virtual ~ParticleEmitter2()
Destructor.
jet::ParticleEmitter2::setOnBeginUpdateCallback
void setOnBeginUpdateCallback(const OnBeginUpdateCallback &callback)
Sets the callback function to be called when ParticleEmitter2::update function is invoked.
jet::ParticleEmitter2::onSetTarget
virtual void onSetTarget(const ParticleSystemData2Ptr &particles)
Called when ParticleEmitter3::setTarget is executed.