FineKernelToolKit  2.8.10
Public メソッド | Public 変数
クラス fk_HVector

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

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

すべてのメンバ一覧

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_HVectoroperator= (const fk_HVector &)
 単純代入演算子
fk_HVectoroperator= (const fk_Vector &)
 単純代入演算子
fk_HVectoroperator*= (const fk_Matrix &)
 行列変換代入演算子1
fk_HVectoroperator*= (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_HVectorfk_Vector クラスの派生クラスとなっており、 継承した成分である x, y, z については通常の3次元成分と同様です。 4つめの成分である w は、多くの場合は同次座標成分を表し、 4元正方行列との演算のために存在します。

参照:
fk_Vector, fk_Matrix, fk_FVector, fk_GenVector

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

fk_HVector::fk_HVector ( void  )

コンストラクタ1

fk_HVector::fk_HVector ( const fk_Vector v,
double  w = 1.0 
)

コンストラクタ2

引数:
[in]vx,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) {
        :
        :
    }

ここでの比較は、ある程度の計算誤差を許容します。 なお、同次座標成分の比較も含まれます。

bool fk_HVector::operator!= ( const fk_HVector ) const

異値比較演算子

fk_HVector では、以下のように記述することで、 v1 と v2 が等しくないかどうかを判断できます。

    if(v1 != v2) {
        :
        :
    }

ここでの比較は、ある程度の計算誤差を許容します。 なお、同次座標成分の比較も含まれます。

fk_HVector& fk_HVector::operator= ( const fk_HVector )

単純代入演算子

fk_HVector& fk_HVector::operator= ( const fk_Vector )

単純代入演算子

この代入演算子において、同次座標成分は 1 に設定されます。

fk_Vectorを再定義しています。

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)

fk_Vector による設定関数1

fk_Vector 型の引数によって値を設定します。 x, y, z 成分については引数の値を代入し、 w 成分は 1 に設定します。 既に w 成分に 1 以外の値が入っていた場合でも、1 に設定されます。

引数:
[in]v3次元ベクトル
void fk_HVector::set ( const fk_Vector v,
double  w 
)

fk_Vector による設定関数2

fk_Vector 型の引数によって値を設定します。 x, y, z 成分については引数 v の各成分の値を代入し、 w 成分は引数の w の値を設定します。

引数:
[in]v3次元ベクトル
[in]w同次座標値
void fk_HVector::set ( double  x,
double  y,
double  z = 0.0 
) [virtual]

数値による設定関数1

数値引数によって各成分の値を設定します。 w 成分は 1 に設定します。 既に w 成分に 1 以外の値が入っていた場合でも、1 に設定されます。

引数:
[in]xx成分値
[in]yy成分値
[in]zz成分値

fk_Vectorを再定義しています。

void fk_HVector::set ( double  x,
double  y,
double  z,
double  w 
)

数値による設定関数2

数値引数によって各成分の値を設定します。

引数:
[in]xx成分値
[in]yy成分値
[in]zz成分値
[in]w同次座標値
void fk_HVector::setw ( double  w)

同次座標設定関数

同次座標成分を設定します。 その他の成分については値を変更しません。

引数:
[in]w同次座標値
fk_Vector fk_HVector::getV ( void  ) const

3次元ベクトル取得関数

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]

初期化関数

4次元ベクトルを (0, 0, 0, 1) に設定します。

fk_Vectorを再定義しています。


フレンドと関連する関数

double operator* ( const fk_HVector ,
const fk_HVector  
) [friend]

内積二項演算子

fk_HVector 型のベクトル V1 と V2 について、 それぞれの3次元ベクトル部の内積値(スカラー積)を得るには、以下のように記述します。 V1, V2 はともに fk_HVector 型の変数で、d は double 型の変数です。

    d = V1 * V2;

なお、内積は交換法則が成り立ちます。 同次座標成分については、内積値の算出には利用しません。

fk_HVector operator* ( const fk_Matrix ,
const fk_HVector  
) [friend]

ベクトル変換二項演算子

4次元ベクトル V1 の、行列 M による変換ベクトル V2 を求めるには、 以下のように記述します。 V1, V2 は共に fk_HVector 型の変数で、M は fk_Matrix 型の変数です。

    V2 = M * V1;

FK では行列体系として MV 系を採用しており、 行列のベクトル変換の際には行列が左側、ベクトルが右側である必要があります。

ベクトル変換二項演算子

以下のコードは、fk_HVector 型の変数 V_org を fk_Matrix 型の変数 M によって変換した値を、 fk_HVector 型変数 V_new に代入します。

    V_new = M * V_org;

FK では行列体系として MV 系を採用しており、 行列のベクトル変換の際には行列が左側、ベクトルが右側である必要があります。

fk_HVector operator* ( const fk_OrthoMatrix ,
const fk_HVector  
) [friend]

ベクトル変換二項演算子

4次元ベクトル V1 の、直交行列 M による変換ベクトル V2 を求めるには、 以下のように記述します。 V1, V2 は共に fk_HVector 型の変数で、M は fk_OrthoMatrix 型の変数です。

    V2 = M * V1;

FK では行列体系として MV 系を採用しており、 行列のベクトル変換の際には行列が左側、ベクトルが右側である必要があります。

ベクトル変換二項演算子

以下のコードは、fk_HVector 型の変数 V_org を fk_OrthoMatrix 型の変数 M によって変換した値を、 fk_HVector 型変数 V_new に代入します。

    V_new = M * V_org;

FK では行列体系として MV 系を採用しており、 行列のベクトル変換の際には行列が左側、ベクトルが右側である必要があります。


変数

double fk_HVector::w

同次座標成分

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