# クラス fk_Scene

シーンを制御するクラス [詳細]

fk_Sceneに対する継承グラフ
[凡例]
fk_Sceneのコラボレーション図
[凡例]

すべてのメンバ一覧

## Public メソッド
| fk_Scene (void)
| コンストラクタ
| ~fk_Scene ()
| デストラクタ
背景色制御関数
void | setBGColor (fk_Color col)
| 背景色設定関数1
void | setBGColor (float r, float g, float b)
| 背景色設定関数2
fk_Color | getBGColor (void)
| 背景色参照関数
透過処理制御関数
void | setBlendStatus (bool mode)
| 透過処理設定関数
bool | getBlendStatus (void)
| 透過処理参照関数

## 説明

シーンを制御するクラス

このクラスは、シーンを制御するための機能を提供します。

シーンは、複数のモデルとカメラからなる「場面」を意味します。 利用者は、シーンに描画を想定した複数のモデルとカメラを示すモデルを登録します。 このシーンを fk_Window クラスによるウィンドウに設定することによって、 そのシーンに登録されたモデル群が実際に描画される仕組みになっています。

シーンは、別々のインスタンスとして複数存在することが可能です。 異なるシーンを同時に生成しておき、 実際にウィンドウに描画するシーンを動的に切り替えることができます。 任意のモデルは、複数のシーンに同時に登録することができます。

シーンにモデルを登録するための機能は、 実質的には fk_DisplayLink クラスに集約されています。 fk_Scene クラスは fk_DisplayLink クラスの派生クラスとなっており、 fk_DisplayLink クラスのメンバ関数を利用することが可能です。 モデル登録についての機能は、 fk_DisplayLink クラスの説明を参照して下さい。

シーンは、通常のモデルとは別に霧に関する設定も可能です。 霧に関する機能は、 fk_Fog クラスに集約されており、 fk_Scene クラスは fk_Fog クラスの派生クラスとなっています。 霧についての機能は、 fk_Fog クラスの説明を参照して下さい。

本クラス固有のメンバ関数は、背景色設定に関する機能と、 透過処理に関するものとなっています

参照:
  fk_DisplayLink, fk_Fog, fk_Window

## コンストラクタとデストラクタ

fk_Scene::fk_Scene | ( | void |  | ) |

コンストラクタ

fk_Scene::~fk_Scene | ( |  | ) |

デストラクタ

## 関数

void fk_Scene::setBGColor | ( | fk_Color | col | ) |

背景色設定関数1

シーンの背景色を設定します。

引数:

  `[in]` | col | 背景色

参照:
  setBGColor(float, float, float), fk_Color, getBGColor()

void fk_Scene::setBGColor | ( | float | r,
|  | float | g,
|  | float | b |
| ) |  |  |

背景色設定関数2

シーンの背景色を設定します。 各色要素は 0 から 1 までの値を取ります。 それ以外の値が与えられた場合、0 以下なら 0 に、1 以上なら 1 に丸められます。

引数:

  `[in]` | r | 背景色の赤要素
  `[in]` | g | 背景色の緑要素
  `[in]` | b | 背景色の青要素

参照:
  setBGColor(fk_Color), getBGColor()

fk_Color fk_Scene::getBGColor | ( | void |  | ) |

背景色参照関数

シーンの背景色を取得します。

戻り値:
  背景色

参照:
  fk_Color, setBGColor(fk_Color), setBGColor(float, float, float)

void fk_Scene::setBlendStatus | ( | bool | mode | ) |

透過処理設定関数

シーンに対し、透過処理を有効とするかどうかを設定します。 有効にした場合、シーン全体で透過処理がなされますが、 無効な場合と比較して描画速度が遅くなります。 これは、実際に透過する物体があるかどうかに関わらず、 速度が遅くなるということに注意して下さい。 デフォルトでは透過処理設定は無効となっています。

覚え書き:
  実行するハードウェアによっては、 シーンに登録した順番によって適切な透過処理がなされないことがあります。 カメラからみて手前側にある形状が透明(あるいは半透明)であり、 奥側にある形状が透けて見える状況を想定したとします。 このとき、手前側のモデルの方がシーンの登録順が先であった場合、 透けて見えるはずの奥側の形状が表示されないという現象が起こることがあります。 この場合、シーンの登録順を変更すれば奥側の形状が透けて見えるようになりますが、 カメラとの位置関係を常に監視し、 登録順を変動させなければならないという問題が生じます。

引数:

  `[in]` | mode | true であれば有効、false であれば無効とします。

参照:
  fk_Material::setAlpha()

bool fk_Scene::getBlendStatus | ( | void |  | ) |

透過処理参照関数

現在の透過処理状態を取得します。

戻り値:
  有効であれば true を、無効であれば false を返します。

参照:
  setBlendStatus()