Plasma Engine
2.0
Loading...
Searching...
No Matches
ParticleEventReaction_Effect.h
1
#pragma once
2
3
#include <Core/Physics/SurfaceResourceDescriptor.h>
4
#include <Foundation/Types/RangeView.h>
5
#include <Foundation/Types/SharedPtr.h>
6
#include <ParticlePlugin/Events/ParticleEventReaction.h>
7
8
class
PL_PARTICLEPLUGIN_DLL
plParticleEventReactionFactory_Effect
final :
public
plParticleEventReactionFactory
9
{
10
PL_ADD_DYNAMIC_REFLECTION(
plParticleEventReactionFactory_Effect
,
plParticleEventReactionFactory
);
11
12
public
:
13
plParticleEventReactionFactory_Effect
();
14
15
virtual
const
plRTTI
* GetEventReactionType()
const override
;
16
virtual
void
CopyReactionProperties(
plParticleEventReaction
* pObject,
bool
bFirstTime)
const override
;
17
18
virtual
void
Save(
plStreamWriter
& inout_stream)
const override
;
19
virtual
void
Load(
plStreamReader
& inout_stream)
override
;
20
21
plString
m_sEffect;
22
plEnum<plSurfaceInteractionAlignment>
m_Alignment;
23
25
// Exposed Parameters
26
public
:
27
const
plRangeView<const char*, plUInt32>
GetParameters()
const
;
28
void
SetParameter(
const
char
* szKey,
const
plVariant
& value);
29
void
RemoveParameter(
const
char
* szKey);
30
bool
GetParameter(
const
char
* szKey,
plVariant
& out_value)
const
;
31
32
private
:
33
plSharedPtr<plParticleEffectParameters>
m_pParameters;
34
};
35
36
class
PL_PARTICLEPLUGIN_DLL
plParticleEventReaction_Effect
final :
public
plParticleEventReaction
37
{
38
PL_ADD_DYNAMIC_REFLECTION(
plParticleEventReaction_Effect
,
plParticleEventReaction
);
39
40
public
:
41
plParticleEventReaction_Effect
();
42
~plParticleEventReaction_Effect
();
43
44
plParticleEffectResourceHandle
m_hEffect;
45
plEnum<plSurfaceInteractionAlignment>
m_Alignment;
46
plSharedPtr<plParticleEffectParameters>
m_Parameters;
47
48
protected
:
49
virtual
void
ProcessEvent(
const
plParticleEvent
& e)
override
;
50
};
plParticleEventReaction_Effect
Definition
ParticleEventReaction_Effect.h:37
plParticleEventReactionFactory_Effect
Definition
ParticleEventReaction_Effect.h:9
plParticleEventReactionFactory
Base class for all particle event reactions.
Definition
ParticleEventReaction.h:12
plParticleEventReaction
Definition
ParticleEventReaction.h:29
plRTTI
This class holds information about reflected types. Each instance represents one type that is known t...
Definition
RTTI.h:30
plRangeView
This class uses delegates to define a range of values that can be enumerated using a forward iterator...
Definition
RangeView.h:24
plSharedPtr
A Shared ptr manages a shared object and destroys that object when no one references it anymore....
Definition
SharedPtr.h:10
plStreamReader
Interface for binary in (read) streams.
Definition
Stream.h:22
plStreamWriter
Interface for binary out (write) streams.
Definition
Stream.h:107
plTypedResourceHandle< class plParticleEffectResource >
plVariant
plVariant is a class that can store different types of variables, which is useful in situations where...
Definition
Variant.h:44
plEnum
A custom enum implementation that allows to define the underlying storage type to control its memory ...
Definition
Enum.h:37
plHybridString< 32, plDefaultAllocatorWrapper >
plParticleEvent
Definition
ParticleEvent.h:9
Code
EnginePlugins
ParticlePlugin
Events
ParticleEventReaction_Effect.h
Generated by
1.11.0