Plasma Engine  2.0
Loading...
Searching...
No Matches
ParticleBehavior_SizeCurve.h
1#pragma once
2
3#include <Core/Curves/Curve1DResource.h>
4#include <ParticlePlugin/Behavior/ParticleBehavior.h>
5
6class PL_PARTICLEPLUGIN_DLL plParticleBehaviorFactory_SizeCurve final : public plParticleBehaviorFactory
7{
9
10public:
11 virtual const plRTTI* GetBehaviorType() const override;
12 virtual void CopyBehaviorProperties(plParticleBehavior* pObject, bool bFirstTime) const override;
13
14 virtual void Save(plStreamWriter& inout_stream) const override;
15 virtual void Load(plStreamReader& inout_stream) override;
16
17 void SetSizeCurveFile(const char* szFile);
18 const char* GetSizeCurveFile() const;
19
20 float m_fBaseSize;
21 float m_fCurveScale;
23};
24
25class PL_PARTICLEPLUGIN_DLL plParticleBehavior_SizeCurve final : public plParticleBehavior
26{
27 PL_ADD_DYNAMIC_REFLECTION(plParticleBehavior_SizeCurve, plParticleBehavior);
28
29public:
30 float m_fBaseSize;
31 float m_fCurveScale;
33
34 virtual void CreateRequiredStreams() override;
35
36protected:
37 virtual void InitializeElements(plUInt64 uiStartIndex, plUInt64 uiNumElements) override;
38 virtual void Process(plUInt64 uiNumElements) override;
39
40 plProcessingStream* m_pStreamLifeTime = nullptr;
41 plProcessingStream* m_pStreamSize = nullptr;
42 plUInt8 m_uiFirstToUpdate = 0;
43 plUInt8 m_uiCurrentUpdateInterval = 8;
44};
Definition ParticleBehavior_SizeCurve.h:26
Definition ParticleBehavior_SizeCurve.h:7
Base class for all particle behaviors.
Definition ParticleBehavior.h:14
Definition ParticleBehavior.h:30
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
Interface for binary in (read) streams.
Definition Stream.h:22
Interface for binary out (write) streams.
Definition Stream.h:107