Plasma Engine  2.0
Loading...
Searching...
No Matches
DefaultParticleStreams.h
1#pragma once
2
3#include <ParticlePlugin/Streams/ParticleStream.h>
4
6// ZERO-INIT STREAM
8
9class PL_PARTICLEPLUGIN_DLL plParticleStream_ZeroInit final : public plParticleStream
10{
11 PL_ADD_DYNAMIC_REFLECTION(plParticleStream_ZeroInit, plParticleStream);
12
13protected:
14 // base class implementation already zero fills the stream data
15 // virtual void InitializeElements(plUInt64 uiStartIndex, plUInt64 uiNumElements) override;
16};
17
19// POSITION STREAM
21
22class PL_PARTICLEPLUGIN_DLL plParticleStreamFactory_Position final : public plParticleStreamFactory
23{
25
26public:
28};
29
30class PL_PARTICLEPLUGIN_DLL plParticleStream_Position final : public plParticleStream
31{
32 PL_ADD_DYNAMIC_REFLECTION(plParticleStream_Position, plParticleStream);
33
34protected:
35 virtual void Initialize(plParticleSystemInstance* pOwner) override;
36 virtual void InitializeElements(plUInt64 uiStartIndex, plUInt64 uiNumElements) override;
37
39};
40
42// SIZE STREAM
44
45class PL_PARTICLEPLUGIN_DLL plParticleStreamFactory_Size final : public plParticleStreamFactory
46{
47 PL_ADD_DYNAMIC_REFLECTION(plParticleStreamFactory_Size, plParticleStreamFactory);
48
49public:
51};
52
53class PL_PARTICLEPLUGIN_DLL plParticleStream_Size final : public plParticleStream
54{
55 PL_ADD_DYNAMIC_REFLECTION(plParticleStream_Size, plParticleStream);
56
57protected:
58 virtual void InitializeElements(plUInt64 uiStartIndex, plUInt64 uiNumElements) override;
59};
60
62// COLOR STREAM
64
65class PL_PARTICLEPLUGIN_DLL plParticleStreamFactory_Color final : public plParticleStreamFactory
66{
68
69public:
71};
72
73class PL_PARTICLEPLUGIN_DLL plParticleStream_Color final : public plParticleStream
74{
75 PL_ADD_DYNAMIC_REFLECTION(plParticleStream_Color, plParticleStream);
76
77protected:
78 virtual void InitializeElements(plUInt64 uiStartIndex, plUInt64 uiNumElements) override;
79};
80
82// VELOCITY STREAM
84
85class PL_PARTICLEPLUGIN_DLL plParticleStreamFactory_Velocity final : public plParticleStreamFactory
86{
88
89public:
91};
92
93class PL_PARTICLEPLUGIN_DLL plParticleStream_Velocity final : public plParticleStream
94{
95 PL_ADD_DYNAMIC_REFLECTION(plParticleStream_Velocity, plParticleStream);
96
97protected:
98 virtual void Initialize(plParticleSystemInstance* pOwner) override;
99 virtual void InitializeElements(plUInt64 uiStartIndex, plUInt64 uiNumElements) override;
100
101 plParticleSystemInstance* m_pOwner;
102};
103
105// LIFETIME STREAM
107
108// always default initialized by the behavior
109
111// LAST POSITION STREAM
113
114class PL_PARTICLEPLUGIN_DLL plParticleStreamFactory_LastPosition final : public plParticleStreamFactory
115{
117
118public:
120};
121
123// ROTATION SPEED STREAM
125
126class PL_PARTICLEPLUGIN_DLL plParticleStreamFactory_RotationSpeed final : public plParticleStreamFactory
127{
129
130public:
132};
133
135// ROTATION OFFSET STREAM
137
138class PL_PARTICLEPLUGIN_DLL plParticleStreamFactory_RotationOffset final : public plParticleStreamFactory
139{
141
142public:
144};
145
147// EFFECT ID STREAM
149
150class PL_PARTICLEPLUGIN_DLL plParticleStreamFactory_EffectID final : public plParticleStreamFactory
151{
153
154public:
156};
157
159// ON OFF STREAM
161
162class PL_PARTICLEPLUGIN_DLL plParticleStreamFactory_OnOff final : public plParticleStreamFactory
163{
164 PL_ADD_DYNAMIC_REFLECTION(plParticleStreamFactory_OnOff, plParticleStreamFactory);
165
166public:
168};
169
171// AXIS STREAM
173
174class PL_PARTICLEPLUGIN_DLL plParticleStreamFactory_Axis final : public plParticleStreamFactory
175{
176 PL_ADD_DYNAMIC_REFLECTION(plParticleStreamFactory_Axis, plParticleStreamFactory);
177
178public:
180};
181
182class PL_PARTICLEPLUGIN_DLL plParticleStream_Axis final : public plParticleStream
183{
184 PL_ADD_DYNAMIC_REFLECTION(plParticleStream_Axis, plParticleStream);
185
186protected:
187 virtual void InitializeElements(plUInt64 uiStartIndex, plUInt64 uiNumElements) override;
188};
189
191// TRAIL DATA STREAM
193
194class PL_PARTICLEPLUGIN_DLL plParticleStreamFactory_TrailData final : public plParticleStreamFactory
195{
197
198public:
200};
201
203// VARIATION STREAM
205
206class PL_PARTICLEPLUGIN_DLL plParticleStreamFactory_Variation final : public plParticleStreamFactory
207{
209
210public:
212};
213
214class PL_PARTICLEPLUGIN_DLL plParticleStream_Variation final : public plParticleStream
215{
216 PL_ADD_DYNAMIC_REFLECTION(plParticleStream_Variation, plParticleStream);
217
218protected:
219 virtual void Initialize(plParticleSystemInstance* pOwner) override;
220 virtual void InitializeElements(plUInt64 uiStartIndex, plUInt64 uiNumElements) override;
221
222 plParticleSystemInstance* m_pOwner;
223};
Definition DefaultParticleStreams.h:183
Definition DefaultParticleStreams.h:74
Definition DefaultParticleStreams.h:31
Definition DefaultParticleStreams.h:54
Definition DefaultParticleStreams.h:215
Definition DefaultParticleStreams.h:94
Definition DefaultParticleStreams.h:10
Definition DefaultParticleStreams.h:175
Definition DefaultParticleStreams.h:66
Definition DefaultParticleStreams.h:151
Definition DefaultParticleStreams.h:115
Definition DefaultParticleStreams.h:163
Definition DefaultParticleStreams.h:23
Definition DefaultParticleStreams.h:139
Definition DefaultParticleStreams.h:127
Definition DefaultParticleStreams.h:46
Definition DefaultParticleStreams.h:195
Definition DefaultParticleStreams.h:207
Definition DefaultParticleStreams.h:86
Base class for all particle stream factories.
Definition ParticleStream.h:14
Base class for all particle streams.
Definition ParticleStream.h:36
virtual void InitializeElements(plUInt64 uiStartIndex, plUInt64 uiNumElements) override
The default implementation initializes all data with zero.
Definition ParticleStream.cpp:71
A particle system stores all data for one 'layer' of a running particle effect.
Definition ParticleSystemInstance.h:15