Plasma Engine  2.0
Loading...
Searching...
No Matches
ParticleEffectAsset.h
1#pragma once
2
3#include <EditorFramework/Assets/SimpleAssetDocument.h>
4#include <Foundation/Communication/Event.h>
5#include <ParticlePlugin/Effect/ParticleEffectDescriptor.h>
6
9
11{
12 enum Type
13 {
14 RestartEffect,
15 AutoRestartChanged,
16 SimulationSpeedChanged,
17 RenderVisualizersChanged,
18 };
19
21 Type m_Type;
22};
23
24class plParticleEffectAssetDocument : public plSimpleAssetDocument<plParticleEffectDescriptor>
25{
27
28public:
30
31 static void PropertyMetaStateEventHandler(plPropertyMetaStateEvent& e);
32
33 void WriteResource(plStreamWriter& inout_stream) const;
34
35 void TriggerRestartEffect();
36
38
39 void SetAutoRestart(bool bEnable);
40 bool GetAutoRestart() const { return m_bAutoRestart; }
41
42 void SetSimulationPaused(bool bPaused);
43 bool GetSimulationPaused() const { return m_bSimulationPaused; }
44
45 void SetSimulationSpeed(float fSpeed);
46 float GetSimulationSpeed() const { return m_fSimulationSpeed; }
47
48 bool GetRenderVisualizers() const { return m_bRenderVisualizers; }
49 void SetRenderVisualizers(bool b);
50
51 // Overridden to enable support for visualizers/manipulators
52 virtual plResult ComputeObjectTransformation(const plDocumentObject* pObject, plTransform& out_result) const override;
53
54protected:
55 virtual void UpdateAssetDocumentInfo(plAssetDocumentInfo* pInfo) const override;
56 virtual plTransformStatus InternalTransformAsset(plStreamWriter& stream, plStringView sOutputTag, const plPlatformProfile* pAssetProfile,
57 const plAssetFileHeader& AssetHeader, plBitflags<plTransformFlags> transformFlags) override;
59
60private:
61 bool m_bSimulationPaused = false;
62 bool m_bAutoRestart = true;
63 bool m_bRenderVisualizers = false;
64 float m_fSimulationSpeed = 1.0f;
65};
The thumbnail info containing the hash of the file is appended to assets. The serialized size of this...
Definition AssetDocument.h:49
Definition AssetDocumentInfo.h:7
Simple class to handle asset file headers (the very first bytes in all transformed asset files)
Definition AssetFileHeader.h:8
Definition DocumentObjectBase.h:11
Definition Event.h:177
Definition ParticleEffectAsset.h:25
virtual void UpdateAssetDocumentInfo(plAssetDocumentInfo *pInfo) const override
Override this to add custom data (e.g. additional file dependencies) to the info struct.
Definition ParticleEffectAsset.cpp:214
virtual plTransformStatus InternalCreateThumbnail(const ThumbnailInfo &ThumbnailInfo) override
Override this function to generate a thumbnail. Only called if GetAssetFlags returns plAssetDocumentF...
Definition ParticleEffectAsset.cpp:275
virtual plResult ComputeObjectTransformation(const plDocumentObject *pObject, plTransform &out_result) const override
Tries to compute the position and rotation for an object in the document. Returns PL_SUCCESS if it wa...
Definition ParticleEffectAsset.cpp:207
virtual plTransformStatus InternalTransformAsset(plStreamWriter &stream, plStringView sOutputTag, const plPlatformProfile *pAssetProfile, const plAssetFileHeader &AssetHeader, plBitflags< plTransformFlags > transformFlags) override
Override this and write the transformed file for the given szOutputTag into the given stream.
Definition ParticleEffectAsset.cpp:268
Definition PlatformProfile.h:25
Definition SimpleAssetDocument.h:23
Interface for binary out (write) streams.
Definition Stream.h:107
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
The plBitflags class allows you to work with type-safe bitflags.
Definition Bitflags.h:82
Definition ParticleEffectAsset.h:11
Event that is broadcast whenever information about how to present properties is required.
Definition PropertyMetaState.h:35
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54
Definition Declarations.h:114