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
7
class
PL_PARTICLEPLUGIN_DLL
plParticleEffectDescriptor
final :
public
plReflectedClass
8
{
9
PL_ADD_DYNAMIC_REFLECTION(
plParticleEffectDescriptor
,
plReflectedClass
);
10
11
public
:
12
plParticleEffectDescriptor
();
13
~plParticleEffectDescriptor
();
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
39
private
:
40
plHybridArray<plParticleSystemDescriptor*, 4>
m_ParticleSystems;
41
plHybridArray<plParticleEventReactionFactory*, 4>
m_EventReactions;
42
};
plArrayBase::PushBack
void PushBack(const T &value)
Pushes value at the end of the array.
Definition
ArrayBase_inl.h:333
plHybridArray
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition
HybridArray.h:12
plMap
Definition
Map.h:408
plParticleEffectDescriptor
Definition
ParticleEffectDescriptor.h:8
plParticleEventReactionFactory
Base class for all particle event reactions.
Definition
ParticleEventReaction.h:12
plParticleSystemDescriptor
Definition
ParticleSystemDescriptor.h:15
plReflectedClass
All classes that should be dynamically reflectable, need to be derived from this base class.
Definition
DynamicRTTI.h:86
plStreamReader
Interface for binary in (read) streams.
Definition
Stream.h:22
plStreamWriter
Interface for binary out (write) streams.
Definition
Stream.h:107
plVec3Template< plUInt32 >
plEnum
A custom enum implementation that allows to define the underlying storage type to control its memory ...
Definition
Enum.h:37
plTime
The time class encapsulates a double value storing the time in seconds.
Definition
Time.h:12
Code
EnginePlugins
ParticlePlugin
Effect
ParticleEffectDescriptor.h
Generated by
1.11.0