TDME2  1.9.200
CircleParticleEmitterPlaneVelocity.h
Go to the documentation of this file.
1 
2 #pragma once
3 
4 #include <tdme/tdme.h>
5 #include <tdme/engine/fwd-tdme.h>
7 #include <tdme/engine/Color4.h>
10 #include <tdme/math/fwd-tdme.h>
11 #include <tdme/math/Vector3.h>
12 
18 
19 /**
20  * Circle particle emitter with velocity that lives in plane only
21  * @author Andreas Drewke
22  */
24  : public ParticleEmitter
25 {
26 private:
27  int32_t count;
28  int64_t lifeTime;
29  int64_t lifeTimeRnd;
33  float radius;
34  float mass;
35  float massRnd;
36  float velocity;
37  float velocityRnd;
41  float worldRadius;
44 
45 public:
46  // forbid class copy
48 
49  /**
50  * Public constructor
51  * @param count particles to emit in one second
52  * @param lifeTime life time
53  * @param lifeTimeRnd life time rnd
54  * @param axis0 axis 0
55  * @param axis1 axis 1
56  * @param center center
57  * @param radius radius
58  * @param mass mass
59  * @param massRnd mass rnd
60  * @param velocity velocity
61  * @param velocityRnd velocity rnd
62  * @param colorStart color start
63  * @param colorEnd color end
64  */
65  CircleParticleEmitterPlaneVelocity(int32_t count, int64_t lifeTime, int64_t lifeTimeRnd, const Vector3& axis0, const Vector3& axis1, const Vector3& center, float radius, float mass, float massRnd, float velocity, float velocityRnd, const Color4& colorStart, const Color4& colorEnd);
66 
67  // overridden methods
68  inline const Vector3& getCenter() const override {
69  return worldCenter;
70  }
71 
72  inline int32_t getCount() const override {
73  return count;
74  }
75 
76  inline float getVelocity() const {
77  return velocity;
78  }
79 
80  inline float getVelocityRnd() const {
81  return velocityRnd;
82  }
83 
84  inline const Color4& getColorStart() const override {
85  return colorStart;
86  }
87 
88  inline void setColorStart(const Color4& colorStart) override {
89  this->colorStart = colorStart;
90  }
91 
92  inline const Color4& getColorEnd() const override {
93  return colorEnd;
94  }
95 
96  inline void setColorEnd(const Color4& colorEnd) override {
97  this->colorEnd = colorEnd;
98  }
99 
100  void emit(Particle* particle) override;
101  void setTransform(const Transform& transform) override;
102 
103 };
Color 4 definition class.
Definition: Color4.h:18
Transform which contain scale, rotations and translation.
Definition: Transform.h:29
void setTransform(const Transform &transform) override
Update transform with given transform.
CircleParticleEmitterPlaneVelocity(int32_t count, int64_t lifeTime, int64_t lifeTimeRnd, const Vector3 &axis0, const Vector3 &axis1, const Vector3 &center, float radius, float mass, float massRnd, float velocity, float velocityRnd, const Color4 &colorStart, const Color4 &colorEnd)
Public constructor.
Vector3 class representing vector3 mathematical structure and operations with x, y,...
Definition: Vector3.h:20
#define FORBID_CLASS_COPY(CLASS)
Definition: tdme.h:6