Fission FSN
Loading...
Searching...
No Matches
fsSColour.h
Go to the documentation of this file.
1/********************************************************************
2*
3* File: fsCColour.h
4*
5* Purpose: RGBA rendering colour.
6*
7*********************************************************************/
8
9#ifndef fsCColourhdr
10#define fsCColourhdr
11
12#include <fsCore/fsBaseTypes.h>
13
14class fsStr;
15struct fsSColour4B;
16
17// More complex colour class to use in graphs and the like.
18// Allows basic arithmetic operations
19class fsSColour final
20{
21public:
22
23 fsBool operator==(const fsSColour& pRhs) const;
24 fsBool operator!=(const fsSColour& pRhs) const;
25
26 const fsSColour operator+(const fsSColour& pRhs) const; // Note: Clamped.
27 const fsSColour operator-(const fsSColour& pRhs) const; // Note: Not clamped.
28 const fsSColour operator*(fsS32 pRhs) const; // Note: Not clamped.
29 const fsSColour operator/(fsS32 pRhs) const;
30
31 fsU8 redByteGet() const;
32 fsU8 greenByteGet() const;
33 fsU8 blueByteGet() const;
34 fsU8 alphaByteGet() const;
35
36 fsSColour();
37 fsSColour(const fsSColour4B& pByteColour);
38 fsSColour(fsF32 pR, fsF32 pG, fsF32 pB, fsF32 pA);
39 fsSColour(const fsStr& pRGBAStr);
40 ~fsSColour();
41
46
47private:
48};
49
50
51// Base level colour class. No arithmetic operations due to overflow on byte type
52// DON'T add any - use fssColour instead and convert
53struct fsSColour4B final
54{
55public:
56
57 fsBool operator<(const fsSColour4B& pRhs) const;
58 fsBool operator!=(const fsSColour4B& pRhs) const;
59 fsBool operator==(const fsSColour4B& pRhs) const;
60
61 static fsSColour4B fsNONE();
62 static fsSColour4B fsBLACK();
63 static fsSColour4B fsWHITE();
64 static fsSColour4B fsRED();
65
66 fsSColour4B(const fsSColour& pCol);
67 fsSColour4B(const fsStr& pRGBAStr);
68
70 {
71 }
72
73 fsSColour4B(fsU8 pR, fsU8 pG, fsU8 pB, fsU8 pA) :
74 mR(pR),
75 mG(pG),
76 mB(pB),
77 mA(pA)
78 {
79 }
80
81 fsU8 mR = 0;
82 fsU8 mG = 0;
83 fsU8 mB = 0;
84 fsU8 mA = 0;
85};
86
87
88#endif
Definition fsSColour.h:20
fsU8 redByteGet() const
Definition fsSColour.cpp:77
const fsSColour operator+(const fsSColour &pRhs) const
Definition fsSColour.cpp:18
fsU8 greenByteGet() const
Definition fsSColour.cpp:82
~fsSColour()
Definition fsSColour.cpp:137
fsF32 mG
Definition fsSColour.h:43
fsBool operator!=(const fsSColour &pRhs) const
Definition fsSColour.cpp:8
fsF32 mR
Definition fsSColour.h:42
const fsSColour operator-(const fsSColour &pRhs) const
Definition fsSColour.cpp:47
const fsSColour operator*(fsS32 pRhs) const
Definition fsSColour.cpp:57
fsSColour()
Definition fsSColour.cpp:97
fsU8 blueByteGet() const
Definition fsSColour.cpp:87
fsF32 mB
Definition fsSColour.h:44
fsF32 mA
Definition fsSColour.h:45
fsU8 alphaByteGet() const
Definition fsSColour.cpp:92
const fsSColour operator/(fsS32 pRhs) const
Definition fsSColour.cpp:67
fsBool operator==(const fsSColour &pRhs) const
Definition fsSColour.cpp:13
Definition fsStr.h:23
bool fsBool
Definition fsBaseTypes.h:26
unsigned char fsU8
Definition fsBaseTypes.h:15
int fsS32
Definition fsBaseTypes.h:20
float fsF32
Definition fsBaseTypes.h:28
Definition fsSColour.h:54
static fsSColour4B fsBLACK()
Definition fsSColour.cpp:177
fsBool operator<(const fsSColour4B &pRhs) const
Definition fsSColour.cpp:157
static fsSColour4B fsWHITE()
Definition fsSColour.cpp:182
fsU8 mG
Definition fsSColour.h:82
fsU8 mR
Definition fsSColour.h:81
static fsSColour4B fsNONE()
Definition fsSColour.cpp:172
fsSColour4B()
Definition fsSColour.h:69
fsBool operator!=(const fsSColour4B &pRhs) const
Definition fsSColour.cpp:167
fsSColour4B(fsU8 pR, fsU8 pG, fsU8 pB, fsU8 pA)
Definition fsSColour.h:73
static fsSColour4B fsRED()
Definition fsSColour.cpp:187
fsSColour4B(const fsSColour &pCol)
Definition fsSColour.cpp:192
fsU8 mB
Definition fsSColour.h:83
fsBool operator==(const fsSColour4B &pRhs) const
Definition fsSColour.cpp:162
fsU8 mA
Definition fsSColour.h:84