Jet  v1.3.3
particle_emitter3.h
Go to the documentation of this file.
1 // Copyright (c) 2019 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_EMITTER3_H_
8 #define INCLUDE_JET_PARTICLE_EMITTER3_H_
9 
10 #include <jet/animation.h>
12 
13 namespace jet {
14 
19  public:
26  typedef std::function<void(ParticleEmitter3*, double, double)>
28 
31 
33  virtual ~ParticleEmitter3();
34 
37  void update(double currentTimeInSeconds, double timeIntervalInSeconds);
38 
41 
43  void setTarget(const ParticleSystemData3Ptr& particles);
44 
46  bool isEnabled() const;
47 
49  void setIsEnabled(bool enabled);
50 
62 
63  protected:
65  virtual void onSetTarget(const ParticleSystemData3Ptr& particles);
66 
68  virtual void onUpdate(
69  double currentTimeInSeconds,
70  double timeIntervalInSeconds) = 0;
71 
72  private:
73  bool _isEnabled = true;
74  ParticleSystemData3Ptr _particles;
75  OnBeginUpdateCallback _onBeginUpdateCallback;
76 };
77 
79 typedef std::shared_ptr<ParticleEmitter3> ParticleEmitter3Ptr;
80 
81 } // namespace jet
82 
83 #endif // INCLUDE_JET_PARTICLE_EMITTER3_H_
animation.h
jet::ParticleEmitter3::setOnBeginUpdateCallback
void setOnBeginUpdateCallback(const OnBeginUpdateCallback &callback)
Sets the callback function to be called when ParticleEmitter3::update function is invoked.
jet::ParticleSystemData3Ptr
std::shared_ptr< ParticleSystemData3 > ParticleSystemData3Ptr
Shared pointer type of ParticleSystemData3.
Definition: particle_system_data3.h:250
jet::ParticleEmitter3Ptr
std::shared_ptr< ParticleEmitter3 > ParticleEmitter3Ptr
Shared pointer for the ParticleEmitter3 type.
Definition: particle_emitter3.h:79
jet::ParticleEmitter3::ParticleEmitter3
ParticleEmitter3()
Default constructor.
jet::ParticleEmitter3
Abstract base class for 3-D particle emitter.
Definition: particle_emitter3.h:18
jet::ParticleEmitter3::onUpdate
virtual void onUpdate(double currentTimeInSeconds, double timeIntervalInSeconds)=0
Called when ParticleEmitter3::update is executed.
jet::ParticleEmitter3::update
void update(double currentTimeInSeconds, double timeIntervalInSeconds)
particle_system_data3.h
jet::ParticleEmitter3::onSetTarget
virtual void onSetTarget(const ParticleSystemData3Ptr &particles)
Called when ParticleEmitter3::setTarget is executed.
jet::ParticleEmitter3::OnBeginUpdateCallback
std::function< void(ParticleEmitter3 *, double, double)> OnBeginUpdateCallback
Callback function type for update calls.
Definition: particle_emitter3.h:27
jet::ParticleEmitter3::isEnabled
bool isEnabled() const
Returns true if the emitter is enabled.
jet
Definition: advection_solver2.h:18
jet::ParticleEmitter3::~ParticleEmitter3
virtual ~ParticleEmitter3()
Destructor.
jet::ParticleEmitter3::setTarget
void setTarget(const ParticleSystemData3Ptr &particles)
Sets the target particle system to emit.
jet::ParticleEmitter3::setIsEnabled
void setIsEnabled(bool enabled)
Sets true/false to enable/disable the emitter.
jet::ParticleEmitter3::target
const ParticleSystemData3Ptr & target() const
Returns the target particle system to emit.