2015-07-26 21:39:49 +00:00
|
|
|
#ifndef CCOLOR_H
|
|
|
|
#define CCOLOR_H
|
|
|
|
|
|
|
|
#include <FileIO/CInputStream.h>
|
|
|
|
#include <FileIO/COutputStream.h>
|
|
|
|
#include "CVector4f.h"
|
|
|
|
#include "types.h"
|
|
|
|
|
|
|
|
class CColor
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
u8 r, g, b, a;
|
|
|
|
|
|
|
|
CColor();
|
|
|
|
CColor(CInputStream& src);
|
|
|
|
CColor(u32 rgba);
|
|
|
|
CColor(u8 rgba);
|
|
|
|
CColor(u8 _r, u8 _g, u8 _b, u8 _a);
|
|
|
|
CColor(float rgba);
|
|
|
|
CColor(float _r, float _g, float _b, float _a);
|
|
|
|
void Write(COutputStream& Output);
|
|
|
|
|
|
|
|
long AsLongRGBA() const;
|
|
|
|
long ToLongARGB() const;
|
|
|
|
CVector4f ToVector4f() const;
|
|
|
|
bool operator==(const CColor& other) const;
|
|
|
|
bool operator!=(const CColor& other) const;
|
|
|
|
CColor operator+(const CColor& other) const;
|
|
|
|
void operator+=(const CColor& other);
|
|
|
|
CColor operator-(const CColor& other) const;
|
|
|
|
void operator-=(const CColor& other);
|
|
|
|
CColor operator*(const CColor& other) const;
|
|
|
|
void operator*=(const CColor& other);
|
|
|
|
CColor operator*(const float other) const;
|
|
|
|
void operator*=(const float other);
|
|
|
|
CColor operator/(const CColor& other) const;
|
|
|
|
void operator/=(const CColor& other);
|
|
|
|
|
2015-08-10 13:47:00 +00:00
|
|
|
// Static
|
|
|
|
static CColor RandomColor(bool transparent);
|
|
|
|
static CColor RandomLightColor(bool transparent);
|
|
|
|
static CColor RandomDarkColor(bool transparent);
|
|
|
|
|
2015-07-26 21:39:49 +00:00
|
|
|
// some predefined colors below for ease of use
|
|
|
|
static const CColor skRed;
|
|
|
|
static const CColor skGreen;
|
|
|
|
static const CColor skBlue;
|
|
|
|
static const CColor skYellow;
|
|
|
|
static const CColor skPurple;
|
|
|
|
static const CColor skCyan;
|
|
|
|
static const CColor skWhite;
|
|
|
|
static const CColor skBlack;
|
|
|
|
static const CColor skGray;
|
|
|
|
static const CColor skTransparentRed;
|
|
|
|
static const CColor skTransparentGreen;
|
|
|
|
static const CColor skTransparentBlue;
|
|
|
|
static const CColor skTransparentYellow;
|
|
|
|
static const CColor skTransparentPurple;
|
|
|
|
static const CColor skTransparentCyan;
|
|
|
|
static const CColor skTransparentWhite;
|
|
|
|
static const CColor skTransparentBlack;
|
|
|
|
static const CColor skTransparentGray;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif // CCOLOR_H
|