Plasma Engine  2.0
Loading...
Searching...
No Matches
ColorGradientAsset.h
1#pragma once
2
3#include <EditorFramework/Assets/SimpleAssetDocument.h>
4
6
8{
9 PL_ADD_DYNAMIC_REFLECTION(plColorControlPoint, plReflectedClass);
10
11public:
12 plTime GetTickAsTime() const { return plTime::MakeFromSeconds(m_iTick / 4800.0); }
13 void SetTickFromTime(plTime time, plInt64 iFps);
14
15 // double m_fPositionX;
16 plInt64 m_iTick; // 4800 ticks per second
17 plUInt8 m_Red;
18 plUInt8 m_Green;
19 plUInt8 m_Blue;
20};
21
23{
24 PL_ADD_DYNAMIC_REFLECTION(plAlphaControlPoint, plReflectedClass);
25
26public:
27 plTime GetTickAsTime() const { return plTime::MakeFromSeconds(m_iTick / 4800.0); }
28 void SetTickFromTime(plTime time, plInt64 iFps);
29
30 // double m_fPositionX;
31 plInt64 m_iTick; // 4800 ticks per second
32 plUInt8 m_Alpha;
33};
34
36{
37 PL_ADD_DYNAMIC_REFLECTION(plIntensityControlPoint, plReflectedClass);
38
39public:
40 plTime GetTickAsTime() const { return plTime::MakeFromSeconds(m_iTick / 4800.0); }
41 void SetTickFromTime(plTime time, plInt64 iFps);
42
43 // double m_fPositionX;
44 plInt64 m_iTick; // 4800 ticks per second
45 float m_fIntensity;
46};
47
49{
50 PL_ADD_DYNAMIC_REFLECTION(plColorGradientAssetData, plReflectedClass);
51
52public:
56
57 static plInt64 TickFromTime(plTime time);
58
61 void FillGradientData(plColorGradient& out_result) const;
62 plColor Evaluate(plInt64 iTick) const;
63};
64
65class plColorGradientAssetDocument : public plSimpleAssetDocument<plColorGradientAssetData>
66{
68
69public:
71
72 void WriteResource(plStreamWriter& inout_stream) const;
73
74protected:
75 virtual plTransformStatus InternalTransformAsset(plStreamWriter& stream, plStringView sOutputTag, const plPlatformProfile* pAssetProfile,
76 const plAssetFileHeader& AssetHeader, plBitflags<plTransformFlags> transformFlags) override;
78};
Definition ColorGradientAsset.h:23
The thumbnail info containing the hash of the file is appended to assets. The serialized size of this...
Definition AssetDocument.h:49
Simple class to handle asset file headers (the very first bytes in all transformed asset files)
Definition AssetFileHeader.h:8
Definition ColorGradientAsset.h:8
Definition ColorGradientAsset.h:49
void FillGradientData(plColorGradient &out_result) const
Fills out the plColorGradient structure with an exact copy of the data in the asset....
Definition ColorGradientAsset.cpp:105
static plInt64 TickFromTime(plTime time)
Definition ColorGradientAsset.cpp:97
Definition ColorGradientAsset.h:66
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 ColorGradientAsset.cpp:181
virtual plTransformStatus InternalCreateThumbnail(const ThumbnailInfo &ThumbnailInfo) override
Override this function to generate a thumbnail. Only called if GetAssetFlags returns plAssetDocumentF...
Definition ColorGradientAsset.cpp:187
A color curve for animating colors.
Definition ColorGradient.h:15
plColor represents an RGBA color in linear color space. Values are stored as float,...
Definition Color.h:44
Definition DynamicArray.h:81
Definition ColorGradientAsset.h:36
Definition PlatformProfile.h:25
All classes that should be dynamically reflectable, need to be derived from this base class.
Definition DynamicRTTI.h:86
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
The time class encapsulates a double value storing the time in seconds.
Definition Time.h:12
PL_ALWAYS_INLINE static constexpr plTime MakeFromSeconds(double fSeconds)
Creates an instance of plTime that was initialized from seconds.
Definition Time.h:30
Definition Declarations.h:114