summaryrefslogtreecommitdiff
path: root/Runtime/Filters/Particles/EllipsoidParticleEmitter.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-08-14 22:50:43 +0800
committerchai <chaifix@163.com>2019-08-14 22:50:43 +0800
commit15740faf9fe9fe4be08965098bbf2947e096aeeb (patch)
treea730ec236656cc8cab5b13f088adfaed6bb218fb /Runtime/Filters/Particles/EllipsoidParticleEmitter.h
+Unity Runtime codeHEADmaster
Diffstat (limited to 'Runtime/Filters/Particles/EllipsoidParticleEmitter.h')
-rw-r--r--Runtime/Filters/Particles/EllipsoidParticleEmitter.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/Runtime/Filters/Particles/EllipsoidParticleEmitter.h b/Runtime/Filters/Particles/EllipsoidParticleEmitter.h
new file mode 100644
index 0000000..8a93dda
--- /dev/null
+++ b/Runtime/Filters/Particles/EllipsoidParticleEmitter.h
@@ -0,0 +1,35 @@
+#ifndef ELLIPSOIDPARTICLEEMITTER_H
+#define ELLIPSOIDPARTICLEEMITTER_H
+
+#include "ParticleEmitter.h"
+#include "Runtime/Math/Vector3.h"
+#include "ParticleStruct.h"
+
+class Matrix4x4f;
+
+
+
+class EllipsoidParticleEmitter : public ParticleEmitter
+{
+public:
+ REGISTER_DERIVED_CLASS (EllipsoidParticleEmitter, ParticleEmitter)
+ DECLARE_OBJECT_SERIALIZE (EllipsoidParticleEmitter)
+ EllipsoidParticleEmitter (MemLabelId label, ObjectCreationMode mode);
+
+ static void InitializeClass ();
+ static void CleanupClass ();
+
+private:
+
+ void SetupParticle (Particle& p, const Vector3f& velocityOffset, const Matrix3x3f& rotation, float deltaTime);
+ virtual void SetupParticles (ParticleArray& particles, const Vector3f& velocityOffset,
+ const Matrix3x3f& rotation, int firstIndex);
+
+public:
+ Vector3f m_Ellipsoid; ///< Size of emission area
+ float m_MinEmitterRange;///< [0...1] relative range to maxEmitterSize where particles will not be spawned
+ // 0 means that a full ellipsoid will be filled with particles
+ // 1 means only the outline will be filled with particles
+};
+
+#endif