Plasma Engine  2.0
Loading...
Searching...
No Matches
ParticleInitializer.h
1#pragma once
2
3#include <Foundation/DataProcessing/Stream/ProcessingStream.h>
4#include <Foundation/Reflection/Reflection.h>
5#include <ParticlePlugin/Declarations.h>
6#include <ParticlePlugin/Module/ParticleModule.h>
7#include <ParticlePlugin/ParticlePluginDLL.h>
8
13
15class PL_PARTICLEPLUGIN_DLL plParticleInitializerFactory : public plReflectedClass
16{
17 PL_ADD_DYNAMIC_REFLECTION(plParticleInitializerFactory, plReflectedClass);
18
19public:
20 virtual const plRTTI* GetInitializerType() const = 0;
21 virtual void CopyInitializerProperties(plParticleInitializer* pInitializer, bool bFirstTime) const = 0;
22 virtual float GetSpawnCountMultiplier(const plParticleEffectInstance* pEffect) const;
23
24 plParticleInitializer* CreateInitializer(plParticleSystemInstance* pOwner) const;
25
26 virtual void Save(plStreamWriter& inout_stream) const = 0;
27 virtual void Load(plStreamReader& inout_stream) = 0;
28
29 virtual void QueryFinalizerDependencies(plSet<const plRTTI*>& inout_finalizerDeps) const {}
30};
31
33class PL_PARTICLEPLUGIN_DLL plParticleInitializer : public plParticleModule
34{
35 PL_ADD_DYNAMIC_REFLECTION(plParticleInitializer, plParticleModule);
36
37 friend class plParticleSystemInstance;
39
40protected:
42
43 virtual void Process(plUInt64 uiNumElements) final override {}
44};
Definition ParticleEffectInstance.h:25
Base class for all particle emitters.
Definition ParticleInitializer.h:16
Base class for stream spawners that are used by plParticleEmitter's.
Definition ParticleInitializer.h:34
virtual void Process(plUInt64 uiNumElements) final override
The actual method which processes the data, will be called with the number of elements to process.
Definition ParticleInitializer.h:43
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
Definition Set.h:238
Interface for binary in (read) streams.
Definition Stream.h:22
Interface for binary out (write) streams.
Definition Stream.h:107