FineKernelToolKit 4.2.13
|
RGB色を管理するクラス [詳解]
#include <FK/Color.h>
公開メンバ関数 | |
fk_Color (float r=0.2f, float g=0.2f, float b=0.2f, float a=1.0f) | |
コンストラクタ1 | |
fk_Color (double r, double g, double b, double a=1.0) | |
コンストラクタ2 | |
virtual | ~fk_Color () |
デストラクタ | |
fk_Color (const fk_Color &col) | |
コピーコンストラクタ | |
fk_Color & | operator= (const fk_Color &col) |
単純代入演算子 | |
fk_Color & | operator*= (double) |
実数積代入演算子 | |
fk_Color & | operator/= (double) |
実数商代入演算子 | |
fk_Color & | operator+= (const fk_Color &) |
単項和代入演算子 | |
fk_Color & | operator-= (const fk_Color &) |
単項差代入演算子 | |
void | init (void) |
初期化関数1 | |
void | init (float r, float g, float b, float a=1.0f) |
初期化関数2 | |
void | init (double r, double g, double b, double a=1.0) |
初期化関数3 | |
void | set (float r, float g, float b, float a=1.0f) |
設定関数1 | |
void | set (double r, double g, double b, double a=1.0) |
設定関数2 | |
void | setHSV (double h, double s, double v) |
HSV変換関数 | |
void | setR (float r) |
R要素設定関数 | |
void | setG (float g) |
G要素設定関数 | |
void | setB (float b) |
B要素設定関数 | |
void | setA (float a) |
A要素設定関数 | |
void | setR (double r) |
R要素設定関数 | |
void | setG (double g) |
G要素設定関数 | |
void | setB (double b) |
B要素設定関数 | |
void | setA (double a) |
A要素設定関数 | |
float | getR (void) const |
R要素参照関数 | |
float | getG (void) const |
G要素参照関数 | |
float | getB (void) const |
B要素参照関数 | |
float | getA (void) const |
A要素参照関数 | |
![]() | |
fk_BaseObject (fk_Type type=fk_Type::BASEOBJECT) | |
コンストラクタ | |
fk_Type | getObjectType (void) const |
タイプ取得関数 | |
静的公開メンバ関数 | |
static double | clamp (double x) |
色成分範囲補正関数1 | |
static float | clamp (float x) |
色成分範囲補正関数2 | |
static fk_Color | getPseudoColor (double x) |
擬似カラー取得関数1 | |
static fk_Color | getPseudoColor (float x) |
擬似カラー取得関数2 | |
公開変数類 | |
std::vector< float > | col |
色要素配列 | |
RGB色を管理するクラス
このクラスは、RGBA法による色を管理、制御する機能を提供します。 「RGBA」のRが赤、Gが緑、Bが青、Aが透過度を意味します。 各要素は float 型によって表現し、値域は 0 から 1 までです。 透過色要素は 0 が完全な透明、1 が完全な不透明となります。
なお、透過色を設定した場合でも、 シーンで透過処理設定を有効としなければ、透過処理が行われません。 詳細は fk_Scene::setBlendStatus() の説明を参照して下さい。
FK::fk_Color::fk_Color | ( | float | r = 0.2f , |
float | g = 0.2f , |
||
float | b = 0.2f , |
||
float | a = 1.0f |
||
) |
コンストラクタ1
[in] | r | R要素の値 |
[in] | g | G要素の値 |
[in] | b | B要素の値 |
[in] | a | 透過要素の値 |
FK::fk_Color::fk_Color | ( | double | r, |
double | g, | ||
double | b, | ||
double | a = 1.0 |
||
) |
コンストラクタ2
引数の型が double 型である以外は、「コンストラクタ1」と同じです。
[in] | r | R要素の値 |
[in] | g | G要素の値 |
[in] | b | B要素の値 |
[in] | a | 透過要素の値 |
|
inlinevirtual |
デストラクタ
FK::fk_Color::fk_Color | ( | const fk_Color & | col | ) |
コピーコンストラクタ
fk_Color & FK::fk_Color::operator*= | ( | double | ) |
実数積代入演算子
以下のコードは、C の各成分を d 倍します。 C は fk_Color 型の変数、d は double 型の変数です。
C *= d;
d は変数でなく数値でも構いません。
C *= 2.0;
なお演算の結果、成分値が 0 未満となる場合はその成分を 0 に、 1 を超える場合はその成分を 1 とします。
fk_Color & FK::fk_Color::operator/= | ( | double | ) |
実数商代入演算子
以下のコードは、C の各成分を 1/d 倍します。 C は fk_Color 型の変数、d は double 型の変数です。
C /= d;
d は変数でなく数値でも構いません。
C /= 2.0;
なお演算の結果、成分値が 0 未満となる場合はその成分を 0 に、 1 を超える場合はその成分を 1 とします。 また、d が 0 であった場合は C の値を変更しません。
単項和代入演算子
以下のコードは、C1 に C2 を追加します。 C1、C2 はいずれも fk_Color 型の変数です。
C1 += C2;
上記コードは、以下のコードと同義です。
C1 = C1 + C2;
なお演算の結果、成分値が 1 を超える場合はその成分を 1 とします。
単項差代入演算子
以下のコードは、C1 から C2 を引きます。 C1、C2 はいずれも fk_Color 型の変数です。
C1 -= C2;
上記コードは、以下のコードと同義です。
C1 = C1 - C2;
なお演算の結果、成分値が 0 未満となる場合はその成分を 0 にします。
void FK::fk_Color::init | ( | void | ) |
初期化関数1
(R, G, B, A) = (0, 0, 0, 1) で初期化を行います。
void FK::fk_Color::init | ( | float | r, |
float | g, | ||
float | b, | ||
float | a = 1.0f |
||
) |
void FK::fk_Color::init | ( | double | r, |
double | g, | ||
double | b, | ||
double | a = 1.0 |
||
) |
void FK::fk_Color::set | ( | float | r, |
float | g, | ||
float | b, | ||
float | a = 1.0f |
||
) |
void FK::fk_Color::set | ( | double | r, |
double | g, | ||
double | b, | ||
double | a = 1.0 |
||
) |
void FK::fk_Color::setHSV | ( | double | h, |
double | s, | ||
double | v | ||
) |
HSV変換関数
HSV色からの変換を行い、その結果を格納します。 透明度は 1.0 (完全な不透明) となります。
[in] | h | 色相要素値。単位は弧度法(ラジアン)です。 |
[in] | s | 彩度要素値。最小値は0、最大値は1です。 |
[in] | v | 明度要素値。最小値は0、最大値は1です。 |
void FK::fk_Color::setR | ( | float | r | ) |
R要素設定関数
[in] | r | R要素値 |
void FK::fk_Color::setG | ( | float | g | ) |
G要素設定関数
[in] | g | G要素値 |
void FK::fk_Color::setB | ( | float | b | ) |
B要素設定関数
[in] | b | B要素値 |
void FK::fk_Color::setA | ( | float | a | ) |
A要素設定関数
[in] | a | A要素値 |
void FK::fk_Color::setR | ( | double | r | ) |
R要素設定関数
[in] | r | R要素値 |
void FK::fk_Color::setG | ( | double | g | ) |
G要素設定関数
[in] | g | G要素値 |
void FK::fk_Color::setB | ( | double | b | ) |
B要素設定関数
[in] | b | B要素値 |
void FK::fk_Color::setA | ( | double | a | ) |
A要素設定関数
[in] | a | A要素値 |
float FK::fk_Color::getR | ( | void | ) | const |
R要素参照関数
float FK::fk_Color::getG | ( | void | ) | const |
G要素参照関数
float FK::fk_Color::getB | ( | void | ) | const |
B要素参照関数
float FK::fk_Color::getA | ( | void | ) | const |
A要素参照関数
|
static |
色成分範囲補正関数1
入力した成分値に対し、0 未満である場合 0 を、 1 以上である場合 1 を、それ以外の場合は入力値自身を返します。
[in] | x | 入力値 |
|
static |
色成分範囲補正関数2
入力した成分値に対し、0 未満である場合 0 を、 1 以上である場合 1 を、それ以外の場合は入力値自身を返します。
[in] | x | 入力値 |
|
static |
擬似カラー取得関数1
入力した数値に対する擬似カラーを出力します。 入力値の最小値は0, 最大値は1と想定しています。
[in] | x | 入力値 |
|
static |
擬似カラー取得関数2
入力した数値に対する擬似カラーを出力します。 入力値の最小値は0, 最大値は1と想定しています。
[in] | x | 入力値 |
std::vector<float> FK::fk_Color::col |
色要素配列
各色要素を float の配列によって格納しています。 メンバ関数を介さずに直接参照、操作しても問題ありません。