Plasma Engine  2.0
Loading...
Searching...
No Matches
ParticleEmitter_Distance.h
1#pragma once
2
3#include <Foundation/Types/VarianceTypes.h>
4#include <ParticlePlugin/Emitter/ParticleEmitter.h>
5
6class PL_PARTICLEPLUGIN_DLL plParticleEmitterFactory_Distance final : public plParticleEmitterFactory
7{
9
10public:
12
13 virtual const plRTTI* GetEmitterType() const override;
14 virtual void CopyEmitterProperties(plParticleEmitter* pEmitter, bool bFirstTime) const override;
15 virtual void QueryMaxParticleCount(plUInt32& out_uiMaxParticlesAbs, plUInt32& out_uiMaxParticlesPerSecond) const override;
16
17 virtual void Save(plStreamWriter& inout_stream) const override;
18 virtual void Load(plStreamReader& inout_stream) override;
19
20public:
21 float m_fDistanceThreshold = 0.1f;
22 plUInt32 m_uiSpawnCountMin = 1;
23 plUInt32 m_uiSpawnCountRange = 0;
24 plString m_sSpawnCountScaleParameter;
25};
26
27
28class PL_PARTICLEPLUGIN_DLL plParticleEmitter_Distance final : public plParticleEmitter
29{
30 PL_ADD_DYNAMIC_REFLECTION(plParticleEmitter_Distance, plParticleEmitter);
31
32public:
33 float m_fDistanceThresholdSQR;
34 plUInt32 m_uiSpawnCountMin;
35 plUInt32 m_uiSpawnCountRange;
36 plTempHashedString m_sSpawnCountScaleParameter;
37
38 virtual void CreateRequiredStreams() override;
39
40protected:
41 virtual bool IsContinuous() const override;
42 virtual void OnFinalize() override;
43 virtual void InitializeElements(plUInt64 uiStartIndex, plUInt64 uiNumElements) override;
44
45 virtual plParticleEmitterState IsFinished() override;
46 virtual plUInt32 ComputeSpawnCount(const plTime& tDiff) override;
47
48 bool m_bFirstUpdate = true;
49 plVec3 m_vLastSpawnPosition;
50};
Definition ParticleEmitter_Distance.h:29
Definition ParticleEmitter_Distance.h:7
Base class for all particle emitters.
Definition ParticleEmitter.h:14
Base class for stream spawners that are used by plParticleEmitter's.
Definition ParticleEmitter.h:38
This class holds information about reflected types. Each instance represents one type that is known t...
Definition RTTI.h:30
Interface for binary in (read) streams.
Definition Stream.h:22
Interface for binary out (write) streams.
Definition Stream.h:107
A class to use together with plHashedString for quick comparisons with temporary strings that need no...
Definition HashedString.h:151
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12