Plasma Engine  2.0
Loading...
Searching...
No Matches
ParticleFinalizer.h
1#pragma once
2
3#include <Foundation/DataProcessing/Stream/ProcessingStreamProcessor.h>
4#include <Foundation/Reflection/Reflection.h>
5#include <ParticlePlugin/Module/ParticleModule.h>
6#include <ParticlePlugin/ParticlePluginDLL.h>
7
11
13class PL_PARTICLEPLUGIN_DLL plParticleFinalizerFactory : public plReflectedClass
14{
15 PL_ADD_DYNAMIC_REFLECTION(plParticleFinalizerFactory, plReflectedClass);
16
17public:
18 virtual const plRTTI* GetFinalizerType() const = 0;
19 virtual void CopyFinalizerProperties(plParticleFinalizer* pObject, bool bFirstTime) const = 0;
20
21 plParticleFinalizer* CreateFinalizer(plParticleSystemInstance* pOwner) const;
22};
23
24class PL_PARTICLEPLUGIN_DLL plParticleFinalizer : public plParticleModule
25{
26 PL_ADD_DYNAMIC_REFLECTION(plParticleFinalizer, plParticleModule);
27
28 friend class plParticleSystemInstance;
29
30protected:
32 virtual void InitializeElements(plUInt64 uiStartIndex, plUInt64 uiNumElements) override {}
33 virtual void StepParticleSystem(const plTime& tDiff, plUInt32 uiNumNewParticles) { m_TimeDiff = tDiff; }
34
35 plTime m_TimeDiff;
36};
Base class for all particle Finalizers.
Definition ParticleFinalizer.h:14
Definition ParticleFinalizer.h:25
virtual void InitializeElements(plUInt64 uiStartIndex, plUInt64 uiNumElements) override
This method needs to be implemented in order to initialize new elements to specific values.
Definition ParticleFinalizer.h:32
Definition ParticleModule.h:12
A particle system stores all data for one 'layer' of a running particle effect.
Definition ParticleSystemInstance.h:15
A single stream in a stream group holding contiguous data of a given type.
Definition ProcessingStream.h:8
This class holds information about reflected types. Each instance represents one type that is known t...
Definition RTTI.h:30
All classes that should be dynamically reflectable, need to be derived from this base class.
Definition DynamicRTTI.h:86
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12