FineKernelToolKit: FK::fk_Color クラス

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | 静的公開メンバ関数 | 公開変数類 | 全メンバ一覧
FK::fk_Color クラス

RGB色を管理するクラス [詳解]

`#include <FK/Color.h>`

FK::fk_Color の継承関係図
[凡例]
FK::fk_Color 連携図
[凡例]

## 公開メンバ関数

| 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::fk_BaseObject に属する継承公開メンバ関数
| 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_Material, fk_Scene

## 構築子と解体子

## ◆ fk_Color() [1/3]

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_Color() [2/3]

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 | 透過要素の値

## ◆ ~fk_Color()

virtual FK::fk_Color::~fk_Color | ( |  | ) |

inlinevirtual

デストラクタ

## ◆ fk_Color() [3/3]

FK::fk_Color::fk_Color | ( | const fk_Color & | col | ) |

コピーコンストラクタ

## 関数詳解

## ◆ operator=()

fk_Color & FK::fk_Color::operator= | ( | const fk_Color & | col | ) |

単純代入演算子

## ◆ operator*=()

fk_Color & FK::fk_Color::operator*= | ( | double |  | ) |

実数積代入演算子

以下のコードは、C の各成分を d 倍します。 C は fk_Color 型の変数、d は double 型の変数です。

    C *= d;

d は変数でなく数値でも構いません。

    C *= 2.0;

なお演算の結果、成分値が 0 未満となる場合はその成分を 0 に、 1 を超える場合はその成分を 1 とします。

## ◆ operator/=()

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 の値を変更しません。

## ◆ operator+=()

fk_Color & FK::fk_Color::operator+= | ( | const fk_Color & |  | ) |

単項和代入演算子

以下のコードは、C1 に C2 を追加します。 C1、C2 はいずれも fk_Color 型の変数です。

    C1 += C2;

上記コードは、以下のコードと同義です。

    C1 = C1 + C2;

なお演算の結果、成分値が 1 を超える場合はその成分を 1 とします。

## ◆ operator-=()

fk_Color & FK::fk_Color::operator-= | ( | const fk_Color & |  | ) |

単項差代入演算子

以下のコードは、C1 から C2 を引きます。 C1、C2 はいずれも fk_Color 型の変数です。

    C1 -= C2;

上記コードは、以下のコードと同義です。

    C1 = C1 - C2;

なお演算の結果、成分値が 0 未満となる場合はその成分を 0 にします。

## ◆ init() [1/3]

void FK::fk_Color::init | ( | void |  | ) |

初期化関数1

(R, G, B, A) = (0, 0, 0, 1) で初期化を行います。

## ◆ init() [2/3]

void FK::fk_Color::init | ( | float | r,
|  | float | g,
|  | float | b,
|  | float | a = 1.0f )

初期化関数2

色要素の設定を行います。同一引数型を持つ set() と同様に動作します。

引数

  [in] | r | R要素値
  [in] | g | G要素値
  [in] | b | B要素値
  [in] | a | A要素値

## ◆ init() [3/3]

void FK::fk_Color::init | ( | double | r,
|  | double | g,
|  | double | b,
|  | double | a = 1.0 )

初期化関数3

色要素の設定を行います。同一引数型を持つ set() と同様に動作します。

引数

  [in] | r | R要素値
  [in] | g | G要素値
  [in] | b | B要素値
  [in] | a | A要素値

## ◆ set() [1/2]

void FK::fk_Color::set | ( | float | r,
|  | float | g,
|  | float | b,
|  | float | a = 1.0f )

設定関数1

色要素の設定を行います。同一引数型を持つ init() と同様に動作します。

引数

  [in] | r | R要素値
  [in] | g | G要素値
  [in] | b | B要素値
  [in] | a | A要素値

## ◆ set() [2/2]

void FK::fk_Color::set | ( | double | r,
|  | double | g,
|  | double | b,
|  | double | a = 1.0 )

設定関数2

色要素の設定を行います。同一引数型を持つ init() と同様に動作します。

引数

  [in] | r | R要素値
  [in] | g | G要素値
  [in] | b | B要素値
  [in] | a | A要素値

## ◆ setHSV()

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です。

## ◆ setR() [1/2]

void FK::fk_Color::setR | ( | float | r | ) |

R要素設定関数

引数

  [in] | r | R要素値

## ◆ setG() [1/2]

void FK::fk_Color::setG | ( | float | g | ) |

G要素設定関数

引数

  [in] | g | G要素値

## ◆ setB() [1/2]

void FK::fk_Color::setB | ( | float | b | ) |

B要素設定関数

引数

  [in] | b | B要素値

## ◆ setA() [1/2]

void FK::fk_Color::setA | ( | float | a | ) |

A要素設定関数

引数

  [in] | a | A要素値

## ◆ setR() [2/2]

void FK::fk_Color::setR | ( | double | r | ) |

R要素設定関数

引数

  [in] | r | R要素値

## ◆ setG() [2/2]

void FK::fk_Color::setG | ( | double | g | ) |

G要素設定関数

引数

  [in] | g | G要素値

## ◆ setB() [2/2]

void FK::fk_Color::setB | ( | double | b | ) |

B要素設定関数

引数

  [in] | b | B要素値

## ◆ setA() [2/2]

void FK::fk_Color::setA | ( | double | a | ) |

A要素設定関数

引数

  [in] | a | A要素値

## ◆ getR()

float FK::fk_Color::getR | ( | void |  | ) | const

R要素参照関数

戻り値
  R要素値

## ◆ getG()

float FK::fk_Color::getG | ( | void |  | ) | const

G要素参照関数

戻り値
  G要素値

## ◆ getB()

float FK::fk_Color::getB | ( | void |  | ) | const

B要素参照関数

戻り値
  B要素値

## ◆ getA()

float FK::fk_Color::getA | ( | void |  | ) | const

A要素参照関数

戻り値
  A要素値

## ◆ clamp() [1/2]

double FK::fk_Color::clamp | ( | double | x | ) |

static

色成分範囲補正関数1

入力した成分値に対し、0 未満である場合 0 を、 1 以上である場合 1 を、それ以外の場合は入力値自身を返します。

引数

  [in] | x | 入力値

戻り値
  補正値

## ◆ clamp() [2/2]

float FK::fk_Color::clamp | ( | float | x | ) |

static

色成分範囲補正関数2

入力した成分値に対し、0 未満である場合 0 を、 1 以上である場合 1 を、それ以外の場合は入力値自身を返します。

引数

  [in] | x | 入力値

戻り値
  補正値

## ◆ getPseudoColor() [1/2]

fk_Color FK::fk_Color::getPseudoColor | ( | double | x | ) |

static

擬似カラー取得関数1

入力した数値に対する擬似カラーを出力します。 入力値の最小値は0, 最大値は1と想定しています。

引数

  [in] | x | 入力値

戻り値
  擬似カラー

## ◆ getPseudoColor() [2/2]

fk_Color FK::fk_Color::getPseudoColor | ( | float | x | ) |

static

擬似カラー取得関数2

入力した数値に対する擬似カラーを出力します。 入力値の最小値は0, 最大値は1と想定しています。

引数

  [in] | x | 入力値

戻り値
  擬似カラー

## メンバ詳解

## ◆ col

std::vector<float> FK::fk_Color::col

色要素配列

各色要素を float の配列によって格納しています。 メンバ関数を介さずに直接参照、操作しても問題ありません。