41 typedef std::array<CIEPoint, 4>
Params;
62 const ID id()
const {
return d->id; }
92 const Data *d =
nullptr;
93 static const Data *lookup(
ID val);
A point in the CIE 1931 xy chromaticity diagram.
Definition ciepoint.h:26
Represents a color space with chromaticity coordinates and transfer functions.
Definition colorspace.h:24
double(* TransformFunc)(double)
Function pointer type for electro-optical transfer functions.
Definition colorspace.h:38
const String desc() const
Returns the color space description.
Definition colorspace.h:68
double invtTransferFunc(double input) const
Applies the inverse transfer function (EOTF) to the given value.
Definition colorspace.h:89
const ID id() const
Returns the color space ID.
Definition colorspace.h:62
const String name() const
Returns the color space name.
Definition colorspace.h:66
std::array< CIEPoint, 4 > Params
CIE chromaticity coordinates: red, green, blue primaries and white point.
Definition colorspace.h:41
ColorSpace inverseColorSpace()
Returns the inverse color space.
Definition colorspace.h:64
const CIEPoint & red() const
Returns the red chromaticity coordinate.
Definition colorspace.h:70
ColorSpace(ID id=Invalid)
Constructs a ColorSpace from the given ID, defaulting to Invalid.
Definition colorspace.h:59
double transferFunc(double input) const
Applies the forward transfer function (OETF) to the given value.
Definition colorspace.h:82
const CIEPoint & blue() const
Returns the blue chromaticity coordinate.
Definition colorspace.h:74
const CIEPoint & whitePoint() const
Returns the white point chromaticity coordinate.
Definition colorspace.h:76
const CIEPoint & green() const
Returns the green chromaticity coordinate.
Definition colorspace.h:72
ID
Identifies a known color space.
Definition colorspace.h:27
@ Rec709
ITU-R BT.709 (gamma-corrected).
Definition colorspace.h:29
@ LinearRec601_NTSC
ITU-R BT.601 NTSC (linear).
Definition colorspace.h:34
@ Rec601_NTSC
ITU-R BT.601 NTSC (gamma-corrected).
Definition colorspace.h:33
@ Invalid
Invalid or unset color space.
Definition colorspace.h:28
@ LinearRec709
ITU-R BT.709 (linear / scene-referred).
Definition colorspace.h:30
@ Rec601_PAL
ITU-R BT.601 PAL (gamma-corrected).
Definition colorspace.h:31
@ LinearRec601_PAL
ITU-R BT.601 PAL (linear).
Definition colorspace.h:32
Dynamic array container wrapping std::vector.
Definition list.h:40
Encoding-aware string class with copy-on-write semantics.
Definition string.h:35
#define PROMEKI_NAMESPACE_BEGIN
Starts a promeki namespace block.
Definition namespace.h:14
#define PROMEKI_NAMESPACE_END
Ends a promeki namespace block.
Definition namespace.h:19
Static data describing a color space.
Definition colorspace.h:46
TransformFunc transferFunc
Forward (OETF) transfer function.
Definition colorspace.h:52
Params params
Red, green, blue, and white point chromaticities.
Definition colorspace.h:51
String desc
Longer description.
Definition colorspace.h:49
TransformFunc invTransferFunc
Inverse (EOTF) transfer function.
Definition colorspace.h:53
String name
Human-readable name.
Definition colorspace.h:48
ID id
Color space identifier.
Definition colorspace.h:47
ID invID
ID of the inverse (linear/gamma) counterpart.
Definition colorspace.h:50