FineKernelToolKit  2.8.10
Public メソッド
クラス fk_Frustum

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

+ fk_Frustumに対する継承グラフ
+ fk_Frustumのコラボレーション図

すべてのメンバ一覧

Public メソッド

 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_Frustumoperator= (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_DisplayLink::setProjection() 関数を用いてシーンに設定することで、 シーン内の投影設定を行うことができます。

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

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

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

参照:
fk_Perspective, fk_Ortho, fk_DisplayLink

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

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クリッピング遠距離面への距離
virtual fk_Frustum::~fk_Frustum ( ) [virtual]

デストラクタ

fk_Frustum::fk_Frustum ( const fk_Frustum )

コピーコンストラクタ


関数

fk_Frustum& fk_Frustum::operator= ( const fk_Frustum )

単純代入演算子

void fk_Frustum::setLeft ( double  left)

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

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

引数:
[in]left符号付き距離
void fk_Frustum::setRight ( double  right)

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

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

引数:
[in]right符号付き距離
void fk_Frustum::setBottom ( double  bottom)

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

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

引数:
[in]bottom符号付き距離
void fk_Frustum::setTop ( double  top)

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

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

引数:
[in]top符号付き距離
void fk_Frustum::setNear ( double  near)

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

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

引数:
[in]near面への距離
void fk_Frustum::setFar ( double  far)

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

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

引数:
[in]far面への距離
void 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クリッピング遠距離面への距離
double fk_Frustum::getLeft ( void  ) const

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

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

戻り値:
符号付き距離
double fk_Frustum::getRight ( void  ) const

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

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

戻り値:
符号付き距離
double fk_Frustum::getBottom ( void  ) const

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

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

戻り値:
符号付き距離
double fk_Frustum::getTop ( void  ) const

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

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

戻り値:
符号付き距離
double fk_Frustum::getNear ( void  ) const

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

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

戻り値:
面への距離
double fk_Frustum::getFar ( void  ) const

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

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

戻り値:
面への距離
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 フレンド マクロ定義