30 #else // TES_IS_BIG_ENDIAN 35 #endif // TES_IS_BIG_ENDIAN 48 #else // TES_IS_BIG_ENDIAN 53 #endif // TES_IS_BIG_ENDIAN 60 Colour(uint32_t c = 0xffffffffu);
84 explicit Colour(uint8_t r, uint8_t g, uint8_t b, uint8_t a = 255u);
91 Colour(
int r,
int g,
int b,
int a = 255);
98 Colour(
float r,
float g,
float b,
float a = 1.0f);
129 void setf(
float f,
int index);
133 float getf(
int index)
const;
138 Colour adjust(
float factor)
const;
155 static void rgbToHsv(
float &h,
float &s,
float &v,
const float r,
const float g,
const float b);
164 static void hsvToRgb(
float &r,
float &g,
float &b,
const float h,
const float s,
const float v);
172 static void hsvToRgb(uint8_t &r, uint8_t &g, uint8_t &b,
173 const float h,
const float s,
const float v);
185 bool operator==(
const Colour &other)
const;
189 bool operator!=(
const Colour &other)
const;
255 LightGoldenrodYellow,
384 static const Colour Colours[PredefinedCount];
390 static const int *ColourCycles[CycleCount];
393 static const int CycleCounts[CycleCount];
443 : r(r), g(g), b(b), a(a)
515 rgba[index] = uint8_t(f * 255.0f);
521 return rgba[index] / 255.0f;
544 #endif // _3ESCOLOUR_H_ A 32-bit integer colour class.
Definition: 3escolour.h:19
float getf(int index) const
Get a channel in floating point form.
Definition: 3escolour.h:519
bool operator==(const Colour &other) const
Precise equality operator.
Definition: 3escolour.h:532
Colour(uint32_t c=0xffffffffu)
Construct a colour with the given numeric value.
Definition: 3escolour.h:409
void setGf(float f)
Set green channel from a floating point value.
Definition: 3escolour.h:495
uint8_t r
Red channel.
Definition: 3escolour.h:52
Colour lighten() const
Lighten the colour by 1.5.
Definition: 3escolour.h:142
Channels
Channel index enumeration.
Definition: 3escolour.h:23
uint8_t a
Alpha channel.
Definition: 3escolour.h:49
uint8_t rgba[4]
Indexed channels.
Definition: 3escolour.h:55
float rf() const
Get red channel in floating point form.
Definition: 3escolour.h:465
Definition: 3esbounds.h:13
Colour & operator=(const Colour &other)
Assignment operator.
Definition: 3escolour.h:525
void setf(float f, int index)
Set a channel in floating point form.
Definition: 3escolour.h:513
void setAf(float f)
Set alpha channel from a floating point value.
Definition: 3escolour.h:507
Predefined
Enumerates a set of predefined colours ("web safe" colours).
Definition: 3escolour.h:192
uint8_t b
Blue channel.
Definition: 3escolour.h:50
float gf() const
Get green channel in floating point form.
Definition: 3escolour.h:471
A colour set which attempts to cater for Protanomaly colour blindness.
Definition: 3escolour.h:374
A small grey scale colour set.
Definition: 3escolour.h:378
float bf() const
Get blue channel in floating point form.
Definition: 3escolour.h:477
uint32_t c
Encoded colour value.
Definition: 3escolour.h:39
uint8_t g
Green channel.
Definition: 3escolour.h:51
A colour set which attempts to cater for Deuteranomaly colour blindness.
Definition: 3escolour.h:372
bool operator!=(const Colour &other) const
Precise inequality operator.
Definition: 3escolour.h:538
float af() const
Get alpha channel in floating point form.
Definition: 3escolour.h:483
ColourCycle
Enumerates the various available colour cycles.
Definition: 3escolour.h:367
void setRf(float f)
Set red channel from a floating point value.
Definition: 3escolour.h:489
Colour darken() const
Darken the colour by 0.5.
Definition: 3escolour.h:146
A colour set which attempts to cater for Tritanomaly colour blindness.
Definition: 3escolour.h:376
Standard colour set.
Definition: 3escolour.h:370
void setBf(float f)
Set blue channel from a floating point value.
Definition: 3escolour.h:501