Plasma Engine  2.0
Loading...
Searching...
No Matches
AdobeCUBEReader.h
1
2#pragma once
3
4#include <Foundation/Basics.h>
5#include <Foundation/Containers/DynamicArray.h>
6#include <Foundation/Math/Vec3.h>
7#include <Foundation/Types/Status.h>
8
10class plStreamReader;
11
16{
17public:
20
21 plStatus ParseFile(plStreamReader& inout_stream, plLogInterface* pLog = nullptr);
22
23 plVec3 GetDomainMin() const;
24 plVec3 GetDomainMax() const;
25
26 plUInt32 GetLUTSize() const;
27 const plString& GetTitle() const;
28
29 plVec3 GetLUTEntry(plUInt32 r, plUInt32 g, plUInt32 b) const;
30
31protected:
32 plUInt32 m_uiLUTSize = 0;
33 plString m_sTitle = "<UNTITLED>";
34
35 plVec3 m_vDomainMin = plVec3::MakeZero();
36 plVec3 m_vDomainMax = plVec3(1.0f);
37
38 plDynamicArray<plVec3> m_LUTValues;
39
40 plUInt32 GetLUTIndex(plUInt32 r, plUInt32 g, plUInt32 b) const;
41};
Simple implementation to read Adobe CUBE LUT files.
Definition AdobeCUBEReader.h:16
Definition DynamicArray.h:81
Base class for all logging classes.
Definition Log.h:77
Interface for binary in (read) streams.
Definition Stream.h:22
static plVec3Template< float > MakeZero()
Definition Vec3.h:38
An plResult with an additional message for the reason of failure.
Definition Status.h:12