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 |
同次座標成分