4次元ベクトルを管理するクラス [詳細]


Public メソッド | |
| fk_HVector (void) | |
| コンストラクタ1 | |
| fk_HVector (const fk_Vector &v, double w=1.0) | |
| コンストラクタ2 | |
| virtual | ~fk_HVector () |
| デストラクタ | |
| fk_HVector (const fk_HVector &) | |
| コピーコンストラクタ | |
比較演算子 | |
| bool | operator== (const fk_HVector &) const |
| 同値比較演算子 | |
| bool | operator!= (const fk_HVector &) const |
| 異値比較演算子 | |
代入演算子 | |
| fk_HVector & | operator= (const fk_HVector &) |
| 単純代入演算子 | |
| fk_HVector & | operator= (const fk_Vector &) |
| 単純代入演算子 | |
| fk_HVector & | operator*= (const fk_Matrix &) |
| 行列変換代入演算子1 | |
| fk_HVector & | operator*= (const fk_OrthoMatrix &) |
| 行列変換代入演算子2 | |
メンバ関数 | |
| void | set (const fk_Vector &v) |
| fk_Vector による設定関数1 | |
| void | set (const fk_Vector &v, double w) |
| fk_Vector による設定関数2 | |
| void | set (double x, double y, double z=0.0) |
| 数値による設定関数1 | |
| void | set (double x, double y, double z, double w) |
| 数値による設定関数2 | |
| void | setw (double w) |
| 同次座標設定関数 | |
| fk_Vector | getV (void) const |
| 3次元ベクトル取得関数 | |
| double | getw (void) const |
| 同次座標値取得関数 | |
| void | ispos (void) |
| 位置ベクトル設定関数 | |
| void | isvec (void) |
| 方向ベクトル設定関数 | |
| void | init (void) |
| 初期化関数 | |
Public 変数 | |
| double | w |
| 同次座標成分 | |
フレンド | |
二項演算子 | |
| double | operator* (const fk_HVector &, const fk_HVector &) |
| fk_HVector | operator* (const fk_Matrix &, const fk_HVector &) |
| fk_HVector | operator* (const fk_OrthoMatrix &, const fk_HVector &) |
4次元ベクトルを管理するクラス
このクラスは、4次元ベクトルの様々な機能を提供します。 成分は double 型によって格納されています。 fk_HVector は fk_Vector クラスの派生クラスとなっており、 継承した成分である x, y, z については通常の3次元成分と同様です。 4つめの成分である w は、多くの場合は同次座標成分を表し、 4元正方行列との演算のために存在します。
| fk_HVector::fk_HVector | ( | void | ) |
コンストラクタ1
| fk_HVector::fk_HVector | ( | const fk_Vector & | v, | |
| double | w = 1.0 | |||
| ) |
コンストラクタ2
| [in] | v | x,y,z成分の入力となる3次元ベクトル |
| [in] | w | 同次座標値 |
| virtual fk_HVector::~fk_HVector | ( | ) | [inline, virtual] |
デストラクタ
| fk_HVector::fk_HVector | ( | const fk_HVector & | ) |
コピーコンストラクタ
| bool fk_HVector::operator== | ( | const fk_HVector & | ) | const |
同値比較演算子
fk_HVector では、以下のように記述することで、 v1 と v2 が等しいかどうかを判断できます。
if(v1 == v2) {
:
:
}
ここでの比較は、ある程度の計算誤差を許容します。 なお、同次座標成分の比較も含まれます。
fk_Vectorを再定義しています。
| bool fk_HVector::operator!= | ( | const fk_HVector & | ) | const |
異値比較演算子
fk_HVector では、以下のように記述することで、 v1 と v2 が等しくないかどうかを判断できます。
if(v1 != v2) {
:
:
}
ここでの比較は、ある程度の計算誤差を許容します。 なお、同次座標成分の比較も含まれます。
fk_Vectorを再定義しています。
| fk_HVector& fk_HVector::operator= | ( | const fk_HVector & | ) |
単純代入演算子
fk_Vectorを再定義しています。
| fk_HVector& fk_HVector::operator= | ( | const fk_Vector & | ) |
単純代入演算子
この代入演算子において、同次座標成分は 1 に設定されます。
| fk_HVector& fk_HVector::operator*= | ( | const fk_Matrix & | ) |
行列変換代入演算子1
以下のコードは、V を M によって変換した値を代入します。 V は fk_HVector 型の変数、M は fk_Matrix 型の変数です。
V *= M;
上記コードは、以下のコードと同義です。
V = M * V;
fk_Vectorを再定義しています。
| fk_HVector& fk_HVector::operator*= | ( | const fk_OrthoMatrix & | ) |
行列変換代入演算子2
以下のコードは、V を M によって変換した値を代入します。 V は fk_HVector 型の変数、M は fk_OrthoMatrix 型の変数です。
V *= M;
上記コードは、以下のコードと同義です。
V = M * V;
fk_Vectorを再定義しています。
| void fk_HVector::set | ( | const fk_Vector & | v | ) |
| void fk_HVector::set | ( | const fk_Vector & | v, | |
| double | w | |||
| ) |
| void fk_HVector::set | ( | double | x, | |
| double | y, | |||
| double | z = 0.0 | |||
| ) | [virtual] |
数値による設定関数1
数値引数によって各成分の値を設定します。 w 成分は 1 に設定します。 既に w 成分に 1 以外の値が入っていた場合でも、1 に設定されます。
| [in] | x | x成分値 |
| [in] | y | y成分値 |
| [in] | z | z成分値 |
fk_Vectorを再定義しています。
| void fk_HVector::set | ( | double | x, | |
| double | y, | |||
| double | z, | |||
| double | w | |||
| ) |
数値による設定関数2
数値引数によって各成分の値を設定します。
| [in] | x | x成分値 |
| [in] | y | y成分値 |
| [in] | z | z成分値 |
| [in] | w | 同次座標値 |
| void fk_HVector::setw | ( | double | w | ) |
同次座標設定関数
同次座標成分を設定します。 その他の成分については値を変更しません。
| [in] | w | 同次座標値 |
| fk_Vector fk_HVector::getV | ( | void | ) | const |
3次元ベクトル取得関数
3次元ベクトル部を返します。
| double fk_HVector::getw | ( | void | ) | const |
同次座標値取得関数
同次座標値を取得します。
| void fk_HVector::ispos | ( | void | ) |
位置ベクトル設定関数
このベクトルを、位置ベクトルとして扱えるようにします。 この関数は、同次座標に 1 を設定することと同義です。
| void fk_HVector::isvec | ( | void | ) |
方向ベクトル設定関数
このベクトルを、方向ベクトルとして扱えるようにします。 この関数は、同次座標に 0 を設定することと同義です。
| void fk_HVector::init | ( | void | ) | [virtual] |
| double operator* | ( | const fk_HVector & | , | |
| const fk_HVector & | ||||
| ) | [friend] |
fk_Vectorを再定義しています。
| fk_HVector operator* | ( | const fk_Matrix & | , | |
| const fk_HVector & | ||||
| ) | [friend] |
| fk_HVector operator* | ( | const fk_OrthoMatrix & | , | |
| const fk_HVector & | ||||
| ) | [friend] |
| double fk_HVector::w |
同次座標成分
1.6.1