Go to the documentation of this file.
7 #ifndef INCLUDE_JET_POINT_PARTICLE_EMITTER2_H_
8 #define INCLUDE_JET_POINT_PARTICLE_EMITTER2_H_
45 double spreadAngleInDegrees,
46 size_t maxNumOfNewParticlesPerSec = 1,
68 double _firstFrameTimeInSeconds = 0.0;
69 size_t _numberOfEmittedParticles = 0;
71 size_t _maxNumberOfNewParticlesPerSecond;
72 size_t _maxNumberOfParticles;
77 double _spreadAngleInRadians;
86 double currentTimeInSeconds,
87 double timeIntervalInSeconds)
override;
92 size_t maxNewNumberOfParticles);
119 size_t maxNumOfNewParticlesPerSec);
134 size_t _maxNumberOfNewParticlesPerSecond = 1;
135 size_t _maxNumberOfParticles =
kMaxSize;
139 double _spreadAngleInDegrees = 90.0;
145 #endif // INCLUDE_JET_POINT_PARTICLE_EMITTER2_H_
size_t maxNumberOfNewParticlesPerSecond() const
Returns max number of new particles per second.
1-D array class.
Definition: array1.h:31
Abstract base class for 2-D particle emitter.
Definition: particle_emitter2.h:18
std::shared_ptr< PointParticleEmitter2 > PointParticleEmitter2Ptr
Shared pointer for the PointParticleEmitter2 type.
Definition: point_particle_emitter2.h:98
Front-end to create PointParticleEmitter2 objects step by step.
Definition: point_particle_emitter2.h:104
void setMaxNumberOfNewParticlesPerSecond(size_t rate)
Sets max number of new particles per second.
Point2< T > max(const Point2< T > &a, const Point2< T > &b)
Returns element-wise max point: (max(a.x, b.x), max(a.y, b.y)).
void setMaxNumberOfParticles(size_t maxNumberOfParticles)
Sets max number of particles to be emitted.
2-D point particle emitter.
Definition: point_particle_emitter2.h:22
Builder & withOrigin(const Vector2D &origin)
Returns builder with origin.
constexpr size_t kMaxSize
Max size_t.
Definition: constants.h:79
Definition: advection_solver2.h:18
Builder & withRandomSeed(uint32_t seed)
Returns builder with random seed.
Builder & withMaxNumberOfParticles(size_t maxNumberOfParticles)
Returns builder with max number of particles.
PointParticleEmitter2Ptr makeShared() const
Builds shared pointer of PointParticleEmitter2 instance.
PointParticleEmitter2(const Vector2D &origin, const Vector2D &direction, double speed, double spreadAngleInDegrees, size_t maxNumOfNewParticlesPerSec=1, size_t maxNumOfParticles=std::numeric_limits< size_t >::max(), uint32_t seed=0)
Builder & withSpreadAngleInDegrees(double spreadAngleInDegrees)
Returns builder with spread angle in degrees.
2-D vector class.
Definition: vector2.h:24
Builder & withSpeed(double speed)
Returns builder with speed.
Builder & withDirection(const Vector2D &direction)
Returns builder with direction.
PointParticleEmitter2 build() const
Builds PointParticleEmitter2.
static Builder builder()
Returns builder fox PointParticleEmitter2.
size_t maxNumberOfParticles() const
Returns max number of particles to be emitted.
Builder & withMaxNumberOfNewParticlesPerSecond(size_t maxNumOfNewParticlesPerSec)