FineKernelToolKit: FK_CLI::fk_Color クラス

FineKernelToolKit 4.3.0

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

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

`#include <CLI/FK_CLI/include/Color_CLI.h>`

## 公開メンバ関数

| fk_Color ()
| コンストラクタ1
| fk_Color (double R, double G, double B)
| コンストラクタ2
| fk_Color (double R, double G, double B, double A)
| コンストラクタ3
| fk_Color (float R, float G, float B)
| コンストラクタ4
| fk_Color (float R, float G, float B, float A)
| コンストラクタ5
| fk_Color (fk_Color^ color)
| コンストラクタ6
| ~fk_Color ()
| デストラクタ
| !fk_Color ()
| ファイナライザ
bool | Equals (fk_Color^ C)
| 同値比較メソッド1
virtual bool | Equals (Object^ C) override
| 同値比較メソッド2
String ^ | ToString () override
| 文字列出力メソッド
void | Init (void)
| 初期化メソッド1
void | Init (float R, float G, float B)
| 初期化メソッド2
void | Init (float R, float G, float B, float A)
| 初期化メソッド3
void | Init (double R, double G, double B)
| 初期化メソッド4
void | Init (double R, double G, double B, double A)
| 初期化メソッド5
void | Set (float R, float G, float B)
| 設定メソッド1
void | Set (float R, float G, float B, float A)
| 設定メソッド2
void | Set (double R, double G, double B)
| 設定メソッド3
void | Set (double R, double G, double B, double A)
| 設定メソッド4
void | SetHSV (double H, double S, double V)
| HSV変換メソッド

## 静的公開メンバ関数

static fk_Color ^ | GetPseudoColor (double x)
| 擬似カラー取得メソッド1
static fk_Color ^ | GetPseudoColor (float x)
| 擬似カラー取得メソッド2
二項演算子
static fk_Color ^ | operator+ (fk_Color^, fk_Color^)
| 色要素和二項演算子
static fk_Color ^ | operator- (fk_Color^, fk_Color^)
| 色要素差二項演算子
static fk_Color ^ | operator* (fk_Color^, double)
| 実数倍二項演算子1
static fk_Color ^ | operator* (double, fk_Color^)
| 実数倍二項演算子2
static fk_Color ^ | operator/ (fk_Color^, double)
| 実数商二項演算子
代入演算子
static void | operator*= (fk_Color^, double)
| 実数積代入演算子
static void | operator/= (fk_Color^, double)
| 実数商代入演算子
static void | operator+= (fk_Color^, fk_Color^)
| 単項和代入演算子
static void | operator-= (fk_Color^, fk_Color^)
| 単項差代入演算子

## プロパティ

float | col [int]`[get, set]`
| 色要素配列プロパティ
float | r`[get, set]`
| R(赤)要素プロパティ
float | g`[get, set]`
| G(緑)要素プロパティ
float | b`[get, set]`
| B(青)要素プロパティ
float | a`[get, set]`
| A(透過色)要素プロパティ

## 詳解

RGB色を管理するクラス

このクラスは、RGBA法による色を管理、制御する機能を提供します。 「RGBA」のRが赤、Gが緑、Bが青、Aが透過度を意味します。 各要素は float 型によって表現し、値域は 0 から 1 までです。 透過色要素は 0 が完全な透明、1 が完全な不透明となります。

なお、透過色を設定した場合でも、 シーンで透過処理設定を有効としなければ、透過処理が行われません。 詳細は fk_Scene::BlendStatus の説明を参照して下さい。

参照
  fk_Material, fk_Scene

## 構築子と解体子

## ◆ fk_Color() [1/6]

FK_CLI::fk_Color::fk_Color | ( |  | ) |

コンストラクタ1

RGB値がすべて 0.2, 透過色 1 (完全不透明) であるデフォルト値で色を生成します。

## ◆ fk_Color() [2/6]

FK_CLI::fk_Color::fk_Color | ( | double | R,
|  | double | G,
|  | double | B )

コンストラクタ2

R,G,Bの各色を引数で指定します。透過色要素は初期値では 1 になります。

引数

  [in] | R | R要素の値
  [in] | G | G要素の値
  [in] | B | B要素の値

## ◆ fk_Color() [3/6]

FK_CLI::fk_Color::fk_Color | ( | double | R,
|  | double | G,
|  | double | B,
|  | double | A )

コンストラクタ3

R,G,B,A(透過色)の各色を引数で指定します。

引数

  [in] | R | R要素の値
  [in] | G | G要素の値
  [in] | B | B要素の値
  [in] | A | A要素の値

## ◆ fk_Color() [4/6]

FK_CLI::fk_Color::fk_Color | ( | float | R,
|  | float | G,
|  | float | B )

コンストラクタ4

R,G,Bの各色を引数で指定します。透過色要素は初期値では 1 になります。

引数

  [in] | R | R要素の値
  [in] | G | G要素の値
  [in] | B | B要素の値

## ◆ fk_Color() [5/6]

FK_CLI::fk_Color::fk_Color | ( | float | R,
|  | float | G,
|  | float | B,
|  | float | A )

コンストラクタ5

R,G,B,A(透過色)の各色を引数で指定します。

引数

  [in] | R | R要素の値
  [in] | G | G要素の値
  [in] | B | B要素の値
  [in] | A | A要素の値

## ◆ fk_Color() [6/6]

FK_CLI::fk_Color::fk_Color | ( | fk_Color^ | color | ) |

コンストラクタ6

他の fk_Color 型インスタンスより値をコピーしてインスンタスを生成します。

引数

  [in] | color | 別の fk_Color 型インスタンス

## ◆ ~fk_Color()

FK_CLI::fk_Color::~fk_Color | ( |  | ) |

デストラクタ

## ◆ !fk_Color()

FK_CLI::fk_Color::!fk_Color | ( |  | ) |

ファイナライザ

## 関数詳解

## ◆ operator+()

fk_Color ^ FK_CLI::fk_Color::operator+ | ( | fk_Color^ | ,
|  | fk_Color^ | )

static

色要素和二項演算子

色値 C1 と C2 の和を得るには、以下のように記述します。 C1, C2, C3 はいずれも fk_Color 型の変数です。

    C3 = C1 + C2;

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

## ◆ operator-()

fk_Color ^ FK_CLI::fk_Color::operator- | ( | fk_Color^ | ,
|  | fk_Color^ | )

static

色要素差二項演算子

色値 C1 と C2 の差を得るには、以下のように記述します。 C1, C2, C3 はいずれも fk_Color 型の変数です。

    C3 = C1 - C2;

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

## ◆ operator*() [1/2]

fk_Color ^ FK_CLI::fk_Color::operator* | ( | fk_Color^ | ,
|  | double | )

static

実数倍二項演算子1

ベクトル C1 のスカラー倍色値を得るには、以下のように記述します。 C1, C2 は共に fk_Color 型の変数で、d は double 型の変数です。

    C2 = C1 * d;

色値と実数の順番は逆でも構いません。 なお演算の結果、成分値が 0 未満となる場合はその成分を 0 に、 1 を超える場合はその成分を 1 とします。

## ◆ operator*() [2/2]

fk_Color ^ FK_CLI::fk_Color::operator* | ( | double | ,
|  | fk_Color^ | )

static

実数倍二項演算子2

ベクトル C1 のスカラー倍色値を得るには、以下のように記述します。 C1, C2 は共に fk_Color 型の変数で、d は double 型の変数です。

    C2 = d * C1;

色値と実数の順番は逆でも構いません。 なお演算の結果、成分値が 0 未満となる場合はその成分を 0 に、 1 を超える場合はその成分を 1 とします。

## ◆ operator/()

fk_Color ^ FK_CLI::fk_Color::operator/ | ( | fk_Color^ | ,
|  | double | )

static

実数商二項演算子

ベクトル C1 のスカラー商色値を得るには、以下のように記述します。 C1, C2 は共に fk_Color 型の変数で、d は double 型の変数です。

    C2 = C1/d;

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

## ◆ operator*=()

void FK_CLI::fk_Color::operator*= | ( | fk_Color^ | ,
|  | double | )

static

実数積代入演算子

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

    C *= d;

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

    C *= 2.0;

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

## ◆ operator/=()

void FK_CLI::fk_Color::operator/= | ( | fk_Color^ | ,
|  | double | )

static

実数商代入演算子

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

    C /= d;

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

    C /= 2.0;

なお演算の結果、成分値が 0 未満となる場合はその成分を 0 に、 1 を超える場合はその成分を 1 とします。 また、d が 0 であった場合は C の値を変更しません。

## ◆ operator+=()

void FK_CLI::fk_Color::operator+= | ( | fk_Color^ | ,
|  | fk_Color^ | )

static

単項和代入演算子

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

    C1 += C2;

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

    C1 = C1 + C2;

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

## ◆ operator-=()

void FK_CLI::fk_Color::operator-= | ( | fk_Color^ | ,
|  | fk_Color^ | )

static

単項差代入演算子

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

    C1 -= C2;

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

    C1 = C1 - C2;

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

## ◆ Equals() [1/2]

bool FK_CLI::fk_Color::Equals | ( | fk_Color^ | C | ) |

同値比較メソッド1

二つの色値が同値かどうかを判定します。 単純に == 演算子を用いた場合はインスタンスが同一であるかどうかの判定となるため、 異なるインスタンスで同値かどうかを判定する場合はこのメソッドを利用して下さい。

引数

  [in] | C | 同値かどうかを判定する色値

戻り値
  同値であれば true を、そうでなければ false を返します。

## ◆ Equals() [2/2]

virtual bool FK_CLI::fk_Color::Equals | ( | Object^ | C | ) |

overridevirtual

同値比較メソッド2

二つの色値の値が同値かどうかを判定します。 単純に == 演算子を用いた場合はインスタンスが同一であるかどうかの判定となるため、 異なるインスタンスで同値かどうかを判定する場合はこのメソッドを利用して下さい。

引数

  [in] | C | 同値かどうかを判定する色値

戻り値
  同値であれば true を、そうでなければ false を返します。

## ◆ ToString()

String ^ FK_CLI::fk_Color::ToString | ( |  | ) |

override

文字列出力メソッド

現在の色成分値を文字列として出力します。

戻り値
  成分値の文字列

## ◆ Init() [1/5]

void FK_CLI::fk_Color::Init | ( | void |  | ) |

初期化メソッド1

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

## ◆ Init() [2/5]

void FK_CLI::fk_Color::Init | ( | float | R,
|  | float | G,
|  | float | B )

初期化メソッド2

色要素の設定を行います。 Set(float, float, float) と同様に動作します。

引数

  [in] | R | R要素値
  [in] | G | G要素値
  [in] | B | B要素値

## ◆ Init() [3/5]

void FK_CLI::fk_Color::Init | ( | float | R,
|  | float | G,
|  | float | B,
|  | float | A )

初期化メソッド3

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

引数

  [in] | R | R要素値
  [in] | G | G要素値
  [in] | B | B要素値
  [in] | A | A要素値

## ◆ Init() [4/5]

void FK_CLI::fk_Color::Init | ( | double | R,
|  | double | G,
|  | double | B )

初期化メソッド4

色要素の設定を行います。 Set(double, double, double) と同様に動作します。

引数

  [in] | R | R要素値
  [in] | G | G要素値
  [in] | B | B要素値

## ◆ Init() [5/5]

void FK_CLI::fk_Color::Init | ( | double | R,
|  | double | G,
|  | double | B,
|  | double | A )

初期化メソッド5

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

引数

  [in] | R | R要素値
  [in] | G | G要素値
  [in] | B | B要素値
  [in] | A | A要素値

## ◆ Set() [1/4]

void FK_CLI::fk_Color::Set | ( | float | R,
|  | float | G,
|  | float | B )

設定メソッド1

色要素の設定を行います。 Init(float, float, float) と同様に動作します。

引数

  [in] | R | R要素値
  [in] | G | G要素値
  [in] | B | B要素値

## ◆ Set() [2/4]

void FK_CLI::fk_Color::Set | ( | float | R,
|  | float | G,
|  | float | B,
|  | float | A )

設定メソッド2

色要素の設定を行います。 Init(float, float, float, float) と同様に動作します。

引数

  [in] | R | R要素値
  [in] | G | G要素値
  [in] | B | B要素値
  [in] | A | A要素値

## ◆ Set() [3/4]

void FK_CLI::fk_Color::Set | ( | double | R,
|  | double | G,
|  | double | B )

設定メソッド3

色要素の設定を行います。 Init(double, double, double) と同様に動作します。

引数

  [in] | R | R要素値
  [in] | G | G要素値
  [in] | B | B要素値

## ◆ Set() [4/4]

void FK_CLI::fk_Color::Set | ( | double | R,
|  | double | G,
|  | double | B,
|  | double | A )

設定メソッド4

色要素の設定を行います。 Init(double, double, double, double) と同様に動作します。

引数

  [in] | R | R要素値
  [in] | G | G要素値
  [in] | B | B要素値
  [in] | A | A要素値

## ◆ SetHSV()

void FK_CLI::fk_Color::SetHSV | ( | double | H,
|  | double | S,
|  | double | V )

HSV変換メソッド

HSV色からの変換を行い、その結果を格納します。 透明度は 1.0 (完全な不透明) となります。

引数

  [in] | H | 色相要素値。単位は弧度法(ラジアン)です。
  [in] | S | 彩度要素値。最小値は0、最大値は1です。
  [in] | V | 明度要素値。最小値は0、最大値は1です。

## ◆ GetPseudoColor() [1/2]

fk_Color ^ FK_CLI::fk_Color::GetPseudoColor | ( | double | x | ) |

static

擬似カラー取得メソッド1

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

引数

  [in] | x | 入力値

戻り値
  擬似カラー

## ◆ GetPseudoColor() [2/2]

fk_Color ^ FK_CLI::fk_Color::GetPseudoColor | ( | float | x | ) |

static

擬似カラー取得メソッド2

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

引数

  [in] | x | 入力値

戻り値
  擬似カラー

## プロパティ詳解

## ◆ col

float FK_CLI::fk_Color::col[int]

getset

色要素配列プロパティ

各色要素を float の配列によってアクセスできるプロパティです。 メソッドを介さずに直接参照、操作しても問題ありません。

## ◆ r

float FK_CLI::fk_Color::r

getset

R(赤)要素プロパティ

R(赤)要素の参照・設定を行います。0から1の値となります。

## ◆ g

float FK_CLI::fk_Color::g

getset

G(緑)要素プロパティ

G(緑)要素の参照・設定を行います。0から1の値となります。

## ◆ b

float FK_CLI::fk_Color::b

getset

B(青)要素プロパティ

B(青)要素の参照・設定を行います。0から1の値となります。

## ◆ a

float FK_CLI::fk_Color::a

getset

A(透過色)要素プロパティ

A(透過色)要素の参照・設定を行います。 0から1の値となり、0 が完全な透明、1 が完全な不透明となります。