Plasma Engine  2.0
Loading...
Searching...
No Matches
ParticleEffectDescriptor.h
1#pragma once
2
3#include <Foundation/Reflection/Reflection.h>
4#include <ParticlePlugin/Declarations.h>
5#include <ParticlePlugin/ParticlePluginDLL.h>
6
7class PL_PARTICLEPLUGIN_DLL plParticleEffectDescriptor final : public plReflectedClass
8{
9 PL_ADD_DYNAMIC_REFLECTION(plParticleEffectDescriptor, plReflectedClass);
10
11public:
14
15 void AddParticleSystem(plParticleSystemDescriptor* pSystem) { m_ParticleSystems.PushBack(pSystem); }
16 void RemoveParticleSystem(plParticleSystemDescriptor* pSystem) { m_ParticleSystems.RemoveAndCopy(pSystem); }
17 const plHybridArray<plParticleSystemDescriptor*, 4>& GetParticleSystems() const { return m_ParticleSystems; }
18
19 void AddEventReaction(plParticleEventReactionFactory* pSystem) { m_EventReactions.PushBack(pSystem); }
20 void RemoveEventReaction(plParticleEventReactionFactory* pSystem) { m_EventReactions.RemoveAndCopy(pSystem); }
21 const plHybridArray<plParticleEventReactionFactory*, 4>& GetEventReactions() const { return m_EventReactions; }
22
23
24 void Save(plStreamWriter& inout_stream) const;
25 void Load(plStreamReader& inout_stream);
26
27 void ClearSystems();
28 void ClearEventReactions();
29
30 plEnum<plEffectInvisibleUpdateRate> m_InvisibleUpdateRate;
31 bool m_bSimulateInLocalSpace = false;
32 bool m_bAlwaysShared = false;
33 float m_fApplyInstanceVelocity = 0.0f;
34 plTime m_PreSimulateDuration;
35 plVec3U32 m_vNumWindSamples = plVec3U32(1);
36 plMap<plString, float> m_FloatParameters;
37 plMap<plString, plColor> m_ColorParameters;
38
39private:
42};
void PushBack(const T &value)
Pushes value at the end of the array.
Definition ArrayBase_inl.h:333
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition HybridArray.h:12
Definition Map.h:408
Definition ParticleEffectDescriptor.h:8
Base class for all particle event reactions.
Definition ParticleEventReaction.h:12
Definition ParticleSystemDescriptor.h:15
All classes that should be dynamically reflectable, need to be derived from this base class.
Definition DynamicRTTI.h:86
Interface for binary in (read) streams.
Definition Stream.h:22
Interface for binary out (write) streams.
Definition Stream.h:107
A custom enum implementation that allows to define the underlying storage type to control its memory ...
Definition Enum.h:37
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12