FineKernelToolKit: FK::fk_Frustum クラス

FineKernelToolKit 4.3.0

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

一般透視投影を制御するクラス [詳解]

`#include <FK/Projection.h>`

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

## 公開メンバ関数

| fk_Frustum (double left=-10.0, double right=10.0, double bottom=-10.0, double top=10.0, double near=1.0, double far=6000.0)
| コンストラクタ
virtual | ~fk_Frustum ()
| デストラクタ
| fk_Frustum (const fk_Frustum &)
| コピーコンストラクタ
fk_Frustum & | operator= (const fk_Frustum &)
| 単純代入演算子
void | setLeft (double left)
| 視錐台左側符号付き距離設定関数
void | setRight (double right)
| 視錐台右側符号付き距離設定関数
void | setBottom (double bottom)
| 視錐台下側符号付き距離設定関数
void | setTop (double top)
| 視錐台上側符号付き距離設定関数
void | setNear (double near)
| クリッピング近距離面距離設定関数
void | setFar (double far)
| クリッピング遠距離面距離設定関数
void | setAll (double left, double right, double bottom, double top, double near, double far)
| 一括設定関数
double | getLeft (void) const
| 視錐台左側符号付き距離取得関数
double | getRight (void) const
| 視錐台右側符号付き距離取得関数
double | getBottom (void) const
| 視錐台下側符号付き距離取得関数
double | getTop (void) const
| 視錐台上側符号付き距離取得関数
double | getNear (void) const
| クリッピング近距離面距離取得関数
double | getFar (void) const
| クリッピング遠距離面距離取得関数
基底クラス FK::fk_ProjectBase に属する継承公開メンバ関数
| fk_ProjectBase (fk_ProjectMode=fk_ProjectMode::NONE)
| コンストラクタ
virtual | ~fk_ProjectBase ()
| デストラクタ
fk_ProjectMode | getMode (void) const
| 投影法参照関数
基底クラス FK::fk_BaseObject に属する継承公開メンバ関数
| fk_BaseObject (fk_Type type=fk_Type::BASEOBJECT)
| コンストラクタ
fk_Type | getObjectType (void) const
| タイプ取得関数

## 詳解

一般透視投影を制御するクラス

このクラスは、一般透視投影法の設定を制御する機能を提供します。 本クラスで一般透視投影に対する様々な値を設定し、 fk_DisplayLink::setProjection() 関数を用いてシーンに設定することで、 シーン内の投影設定を行うことができます。

透視投影の特徴は、近くの物体は大きく、遠くの物体は小さく表示するという、 いわゆる遠近感を持つことです。 この投影法は、人間の目やカメラの持つ感覚と類似しているため、 アニメーションやビジュアルシミュレーションなどのような リアルさが必要な場面でよく利用されています。 しかし、透視投影においては 3 次元空間中において平行な面や線が、 表示された場合に平行にはならないという現象がおきるため、 設計などには向いていません。 そのような場合は、 fk_Ortho による平行投影を用いた方がよいでしょう。

透視投影を用いる場合、本クラスによる「一般透視投影」と、 fk_Perspective クラスによる「対称透視投影」の2種類の投影法が存在します。 対称透視投影は、カメラ目線の先が描画画面の中心となることを前提とした投影であり、 通常はこちらを用いた方が簡便です。 カメラ目線が画面の中心にないような投影を作成する場合は、 本クラスによる一般透視投影を用いる必要があります。

設定は、6種類の値によって行います。 最初の4つは、「視錐台」と呼ばれる描画対称領域の近接面における、 面とカメラベクトルの交点と各辺との距離となります。 あとの2つは「クリップ距離」であり、この2つの距離の間にある物体が表示されます。 通常は、近い方を十分小さな値、遠い方を大きな値とすることで、 本来見えるはずの物体が全て見えるようにしておきます。

参照
  fk_Perspective, fk_Ortho, fk_DisplayLink

## 構築子と解体子

## ◆ fk_Frustum() [1/2]

FK::fk_Frustum::fk_Frustum | ( | double | left = -10.0,
|  | double | right = 10.0,
|  | double | bottom = -10.0,
|  | double | top = 10.0,
|  | double | near = 1.0,
|  | double | far = 6000.0 )

コンストラクタ

コンストラクタで、初期値を設定することが可能です。

引数

  [in] | left | 視錐台の左側符号付き距離
  [in] | right | 視錐台の右側符号付き距離
  [in] | bottom | 視錐台の下側符号付き距離
  [in] | top | 視錐台の上側符号付き距離
  [in] | near | クリッピング近距離面への距離
  [in] | far | クリッピング遠距離面への距離

## ◆ ~fk_Frustum()

virtual FK::fk_Frustum::~fk_Frustum | ( |  | ) |

virtual

デストラクタ

## ◆ fk_Frustum() [2/2]

FK::fk_Frustum::fk_Frustum | ( | const fk_Frustum & |  | ) |

コピーコンストラクタ

## 関数詳解

## ◆ operator=()

fk_Frustum & FK::fk_Frustum::operator= | ( | const fk_Frustum & |  | ) |

単純代入演算子

## ◆ setLeft()

void FK::fk_Frustum::setLeft | ( | double | left | ) |

視錐台左側符号付き距離設定関数

視錐台近接面への左側符号付き距離を設定します。

引数

  [in] | left | 符号付き距離

## ◆ setRight()

void FK::fk_Frustum::setRight | ( | double | right | ) |

視錐台右側符号付き距離設定関数

視錐台近接面への右側符号付き距離を設定します。

引数

  [in] | right | 符号付き距離

## ◆ setBottom()

void FK::fk_Frustum::setBottom | ( | double | bottom | ) |

視錐台下側符号付き距離設定関数

視錐台近接面への下側符号付き距離を設定します。

引数

  [in] | bottom | 符号付き距離

## ◆ setTop()

void FK::fk_Frustum::setTop | ( | double | top | ) |

視錐台上側符号付き距離設定関数

視錐台近接面への上側符号付き距離を設定します。

引数

  [in] | top | 符号付き距離

## ◆ setNear()

void FK::fk_Frustum::setNear | ( | double | near | ) |

クリッピング近距離面距離設定関数

クリッピング近距離面への距離を設定します。

引数

  [in] | near | 面への距離

## ◆ setFar()

void FK::fk_Frustum::setFar | ( | double | far | ) |

クリッピング遠距離面距離設定関数

クリッピング遠距離面への距離を設定します。

引数

  [in] | far | 面への距離

## ◆ setAll()

void FK::fk_Frustum::setAll | ( | double | left,
|  | double | right,
|  | double | bottom,
|  | double | top,
|  | double | near,
|  | double | far )

一括設定関数

視錐台の全ての値を一括して設定します。

引数

  [in] | left | 視錐台の左側符号付き距離
  [in] | right | 視錐台の右側符号付き距離
  [in] | bottom | 視錐台の下側符号付き距離
  [in] | top | 視錐台の上側符号付き距離
  [in] | near | クリッピング近距離面への距離
  [in] | far | クリッピング遠距離面への距離

## ◆ getLeft()

double FK::fk_Frustum::getLeft | ( | void |  | ) | const

視錐台左側符号付き距離取得関数

視錐台近接面への左側符号付き距離を取得します。

戻り値
  符号付き距離

## ◆ getRight()

double FK::fk_Frustum::getRight | ( | void |  | ) | const

視錐台右側符号付き距離取得関数

視錐台近接面への右側符号付き距離を取得します。

戻り値
  符号付き距離

## ◆ getBottom()

double FK::fk_Frustum::getBottom | ( | void |  | ) | const

視錐台下側符号付き距離取得関数

視錐台近接面への下側符号付き距離を取得します。

戻り値
  符号付き距離

## ◆ getTop()

double FK::fk_Frustum::getTop | ( | void |  | ) | const

視錐台上側符号付き距離取得関数

視錐台近接面への上側符号付き距離を取得します。

戻り値
  符号付き距離

## ◆ getNear()

double FK::fk_Frustum::getNear | ( | void |  | ) | const

クリッピング近距離面距離取得関数

クリッピング近距離面への距離を取得します。

戻り値
  面への距離

## ◆ getFar()

double FK::fk_Frustum::getFar | ( | void |  | ) | const

クリッピング遠距離面距離取得関数

クリッピング遠距離面への距離を取得します。

戻り値
  面への距離