FineKernelToolKit 4.2.13
|
モデルの位置や姿勢を管理するクラス [詳解]
#include <FK/MatAdmin.h>
公開メンバ関数 | |
fk_MatrixAdmin (fk_Type=fk_Type::MATRIXADMIN) | |
コンストラクタ | |
virtual | ~fk_MatrixAdmin () |
デストラクタ | |
状態参照関数 | |
fk_Vector | getPosition (void) const |
位置ベクトル取得関数 | |
fk_Vector | getVec (void) const |
方向ベクトル取得関数 | |
fk_Vector | getUpvec (void) const |
アップベクトル取得関数 | |
fk_Angle | getAngle (void) const |
オイラー角取得関数 | |
fk_Matrix | getMatrix (void) const |
変換行列取得関数 | |
fk_Matrix | getInvMatrix (void) const |
逆変換行列取得関数 | |
fk_OrthoMatrix | getBaseMatrix (void) const |
移動・回転要素変換行列取得関数 | |
fk_OrthoMatrix | getInvBaseMatrix (void) const |
移動・回転要素逆変換行列取得関数 | |
拡大縮小関連関数 | |
bool | setScale (const double scale) |
全体絶対倍率設定関数 | |
bool | setScale (const double scale, fk_Axis axis) |
軸方向絶対倍率設定関数 | |
bool | setScale (const double x, const double y, const double z) |
軸方向個別絶対倍率設定関数 | |
bool | prdScale (const double scale) |
全体相対倍率設定関数 | |
bool | prdScale (const double scale, fk_Axis axis) |
軸方向相対倍率設定関数 | |
bool | prdScale (const double x, const double y, const double z) |
軸方向個別相対倍率設定関数 | |
double | getScale (void) const |
全体倍率取得関数 | |
double | getScale (fk_Axis axis) const |
軸方向倍率取得関数 | |
bool | getScaleMode (void) const |
拡大縮小状態判定関数 | |
回転制御関数 | |
bool | glRotate_ (fk_Vector &origin, fk_Axis axis, double theta) |
グローバル座標系座標軸回転関数1 | |
bool | glRotate_ (double orgX, double orgY, double orgZ, fk_Axis axis, double theta) |
グローバル座標系座標軸回転関数2 | |
bool | glRotate_ (fk_Vector &A, fk_Vector &B, double theta) |
グローバル座標系任意軸回転関数1 | |
bool | glRotate_ (double Ax, double Ay, double Az, double Bx, double By, double Bz, double theta) |
グローバル座標系任意軸回転関数2 | |
bool | loRotate_ (fk_Vector &origin, fk_Axis axis, double theta) |
ローカル座標系座標軸回転関数1 | |
bool | loRotate_ (double orgX, double orgY, double orgZ, fk_Axis axis, double theta) |
ローカル座標系座標軸回転関数2 | |
bool | loRotate_ (fk_Vector &A, fk_Vector &B, double theta) |
ローカル座標系任意軸回転関数1 | |
bool | loRotate_ (double Ax, double Ay, double Az, double Bx, double By, double Bz, double theta) |
ローカル座標系任意軸回転関数2 | |
bool | glRotateWithVec_ (fk_Vector &origin, fk_Axis axis, double theta) |
グローバル座標系座標軸回転(姿勢付き)関数1 | |
bool | glRotateWithVec_ (double orgX, double orgY, double orgZ, fk_Axis axis, double theta) |
グローバル座標系座標軸回転(姿勢付き)関数2 | |
bool | glRotateWithVec_ (fk_Vector &A, fk_Vector &B, double theta) |
グローバル座標系任意軸回転(姿勢付き)関数1 | |
bool | glRotateWithVec_ (double Ax, double Ay, double Az, double Bx, double By, double Bz, double theta) |
グローバル座標系任意軸回転(姿勢付き)関数2 | |
bool | loRotateWithVec_ (fk_Vector &origin, fk_Axis axis, double theta) |
ローカル座標系座標軸回転(姿勢付き)関数1 | |
bool | loRotateWithVec_ (double orgX, double orgY, double orgZ, fk_Axis axis, double theta) |
ローカル座標系座標軸回転(姿勢付き)関数2 | |
bool | loRotateWithVec_ (fk_Vector &A, fk_Vector &B, double theta) |
ローカル座標系任意軸回転(姿勢付き)関数1 | |
bool | loRotateWithVec_ (double Ax, double Ay, double Az, double Bx, double By, double Bz, double theta) |
ローカル座標系任意軸回転(姿勢付き)関数2 | |
位置制御関数 | |
bool | glTranslate_ (fk_Vector &v) |
グローバル座標系平行移動関数1 | |
bool | glTranslate_ (double x, double y, double z) |
グローバル座標系平行移動関数2 | |
bool | loTranslate_ (fk_Vector &v) |
ローカル座標系平行移動関数1 | |
bool | loTranslate_ (double x, double y, double z) |
ローカル座標系平行移動関数2 | |
bool | glMoveTo_ (fk_Vector &p) |
グローバル座標系位置指定関数1 | |
bool | glMoveTo_ (double x, double y, double z) |
グローバル座標系位置指定関数2 | |
姿勢制御関数 | |
bool | glFocus (fk_Vector p) |
グローバル座標系注視点設定関数1 | |
bool | glFocus (double x, double y, double z) |
グローバル座標系注視点設定関数2 | |
bool | loFocus (fk_Vector p) |
ローカル座標系注視点設定関数1 | |
bool | loFocus (double x, double y, double z) |
ローカル座標系注視点設定関数2 | |
bool | glVec (fk_Vector v) |
グローバル座標系方向ベクトル設定関数1 | |
bool | glVec (double x, double y, double z) |
グローバル座標系方向ベクトル設定関数2 | |
bool | glUpvec (fk_Vector v) |
グローバル座標系アップベクトル設定関数1 | |
bool | glUpvec (double x, double y, double z) |
グローバル座標系アップベクトル設定関数2 | |
bool | loUpvec (fk_Vector v) |
ローカル座標系アップベクトル設定関数1 | |
bool | loUpvec (double x, double y, double z) |
ローカル座標系アップベクトル設定関数2 | |
bool | glAngle (fk_Angle angle) |
グローバル座標系オイラー角設定関数1 | |
bool | glAngle (double h, double p, double b) |
グローバル座標系オイラー角設定関数2 | |
bool | loAngle (fk_Angle angle) |
ローカル座標系オイラー角設定関数1 | |
bool | loAngle (double h, double p, double b) |
ローカル座標系オイラー角設定関数2 | |
![]() | |
fk_BaseObject (fk_Type type=fk_Type::BASEOBJECT) | |
コンストラクタ | |
fk_Type | getObjectType (void) const |
タイプ取得関数 | |
モデルの位置や姿勢を管理するクラス
このクラスは fk_Model クラスの基底クラスで、 モデルの位置や姿勢の制御する機能を提供します。 これは、回転による指定や平行移動、任意位置指定など様々な方法があります。
このクラスの関数群を理解する上で欠かせない概念が 「グローバル座標系」と「ローカル座標系」です。 「グローバル座標系」とは、 シーン中に原点と x,y,z 各軸によって構成されている唯一の座標系です。 これに対し「ローカル座標系」とは、各モデルごとに存在する座標系であり、 モデルの中心を原点とし、前方向を -z 方向、上方向を +y 方向、 右方向を +x 方向とした座標系のことです。
グローバル座標系による指定では、 各モデルの位置や向いている方向などに依存しない動作となります。 例えば、-z 方向への平行移動を指示した場合は、 モデルがどちらを向いていても一律に -z 方向へ移動していきます。 感覚的には、モデルの制御を「東西南北」といった 絶対的な方角で指定すると考えればわかりやすいでしょう。
一方、ローカル座標系による指定では各モデルの位置や姿勢が重要となります。 同じように -z 方向への移動を指示した場合、 各モデルは現在モデルが向いている方向へ「前進」していくことになります。 +x 方向を向いているモデルは +x 方向へ、 -y 方向を向いているモデルは -y 方向へ移動していきます。 このように、ローカル座標系の指定は「前後左右」による指定と言えます。
このクラスのメンバ関数は、 グローバル座標系による制御関数は「gl」というプレフィックスを持ち、 ローカル座標系による制御関数は「lo」というプレフィックスを持ちます。 ほとんどの制御関数は「gl」版と「lo」版で同一の引数を持った関数が存在しています。 (例外は glMoveTo() と glVec() です。 これについてはそれぞれの関数の項で説明します。)
あるモデルのローカル座標系に対し、別のモデルを配置する「親子関係」については、 fk_Model を参照して下さい。
FK::fk_MatrixAdmin::fk_MatrixAdmin | ( | fk_Type | = fk_Type::MATRIXADMIN | ) |
コンストラクタ
|
virtual |
デストラクタ
fk_Vector FK::fk_MatrixAdmin::getPosition | ( | void | ) | const |
位置ベクトル取得関数
モデルの位置ベクトルを取得します。 親モデルが設定されている場合、 親モデルの座標系からの相対的な位置ベクトルとなります。 グローバル座標系での正確な位置ベクトルを取得したい場合は、 fk_Model::getInhPosition() を利用して下さい。
fk_Vector FK::fk_MatrixAdmin::getVec | ( | void | ) | const |
方向ベクトル取得関数
モデルの方向ベクトルを取得します。 親モデルが設定されている場合、 親モデルの座標系からの相対的な方向ベクトルとなります。 グローバル座標系での正確な方向ベクトルを取得したい場合は、 fk_Model::getInhVec() を利用して下さい。
fk_Vector FK::fk_MatrixAdmin::getUpvec | ( | void | ) | const |
アップベクトル取得関数
モデルのアップベクトルを取得します。 親モデルが設定されている場合、 親モデルの座標系からの相対的なアップベクトルとなります。 グローバル座標系での正確なアップベクトルを取得したい場合は、 fk_Model::getInhUpvec() を利用して下さい。
fk_Angle FK::fk_MatrixAdmin::getAngle | ( | void | ) | const |
オイラー角取得関数
モデルの姿勢をオイラー角で取得します。 親モデルが設定されている場合、 親モデルの座標系からの相対的なオイラー角となります。 グローバル座標系での正確なオイラー角を取得したい場合は、 fk_Model::getInhAngle() を利用して下さい。 オイラー角についての詳細は、 fk_Angle の説明を参照して下さい。
fk_Matrix FK::fk_MatrixAdmin::getMatrix | ( | void | ) | const |
変換行列取得関数
モデルの位置と姿勢を表す変換行列を取得します。 ここで取得する変換行列は、 親モデルが存在する場合は親モデルに対する変換となります。 グローバル座標系での変換行列を取得したい場合は、 fk_Model::getInhMatrix() を利用して下さい。
fk_Matrix FK::fk_MatrixAdmin::getInvMatrix | ( | void | ) | const |
逆変換行列取得関数
モデルの位置と姿勢を表す変換行列の、逆行列を取得します。 これは、 getMatrix() 関数で得られる行列の逆行列となります。 ここで取得する逆変換行列は、 親モデルが存在する場合は親モデルに対する逆変換となります。 グローバル座標系での逆変換行列を取得したい場合は、 fk_Model::getInhInvMatrix() を利用して下さい。
fk_OrthoMatrix FK::fk_MatrixAdmin::getBaseMatrix | ( | void | ) | const |
移動・回転要素変換行列取得関数
モデルの持つ変換要素のうち、 位置と姿勢のみを反映した、 すなわち拡大縮小の要素を省いた変換行列を取得します。 親モデルが存在する場合は親モデルに対する変換となります。 グローバル座標系での変換行列を取得したい場合は、 fk_Model::getInhBaseMatrix() を利用して下さい。
fk_OrthoMatrix FK::fk_MatrixAdmin::getInvBaseMatrix | ( | void | ) | const |
移動・回転要素逆変換行列取得関数
モデルの持つ変換要素のうち、 位置と姿勢のみを反映した、 すなわち拡大縮小の要素を省いた変換行列の逆行列を取得します。 親モデルが存在する場合は親モデルに対する逆変換となります。 グローバル座標系での逆変換行列を取得したい場合は、 fk_Model::getInhInvBaseMatrix() を利用して下さい。
bool FK::fk_MatrixAdmin::setScale | ( | const double | scale | ) |
全体絶対倍率設定関数
モデル全体の拡大・縮小倍率を設定します。 倍率に 0 を入力した場合、エラーとして倍率の変更を行いません。
[in] | scale | 倍率 |
bool FK::fk_MatrixAdmin::setScale | ( | const double | scale, |
fk_Axis | axis | ||
) |
軸方向絶対倍率設定関数
モデルの、特定軸方向の拡大・縮小倍率を設定します。 倍率に 0 を入力した場合、エラーとして倍率の変更を行いません。
[in] | scale | 倍率 |
[in] | axis | 軸方向。fk_X, fk_Y, fk_Z のいずれかになります。 |
bool FK::fk_MatrixAdmin::setScale | ( | const double | x, |
const double | y, | ||
const double | z | ||
) |
軸方向個別絶対倍率設定関数
モデルの、各軸方向の拡大・縮小倍率を設定します。 各倍率のいずれかで 0 を入力した場合、エラーとして倍率の変更を行いません。
[in] | x | x方向の倍率 |
[in] | y | y方向の倍率 |
[in] | z | z方向の倍率 |
bool FK::fk_MatrixAdmin::prdScale | ( | const double | scale | ) |
全体相対倍率設定関数
モデルの現在の全体拡大・縮小倍率に対し、引数で与えられた倍率を掛けます。 倍率に 0 を入力した場合、エラーとして倍率の変更を行いません。
[in] | scale | 掛ける倍率 |
bool FK::fk_MatrixAdmin::prdScale | ( | const double | scale, |
fk_Axis | axis | ||
) |
軸方向相対倍率設定関数
モデルの、特定軸方向の拡大・縮小倍率に対し、引数で与えられた倍率を掛けます。 倍率に 0 を入力した場合、エラーとして倍率の変更を行いません。
[in] | scale | 掛ける倍率 |
[in] | axis | 軸方向。fk_X, fk_Y, fk_Z のいずれかになります。 |
bool FK::fk_MatrixAdmin::prdScale | ( | const double | x, |
const double | y, | ||
const double | z | ||
) |
軸方向個別相対倍率設定関数
モデルの、各軸方向の拡大・縮小倍率に対し、引数で与えられた倍率を掛けます。 各倍率のいずれかで 0 を入力した場合、エラーとして倍率の変更を行いません。
[in] | x | x方向へ掛ける倍率 |
[in] | y | y方向へ掛ける倍率 |
[in] | z | z方向へ掛ける倍率 |
double FK::fk_MatrixAdmin::getScale | ( | void | ) | const |
全体倍率取得関数
モデルの全体拡大・縮小倍率を取得します。
double FK::fk_MatrixAdmin::getScale | ( | fk_Axis | axis | ) | const |
軸方向倍率取得関数
モデルの特定軸方向拡大・縮小倍率を取得します。
[in] | axis | 軸方向。fk_X, fk_Y, fk_Z のいずれかになります。 |
bool FK::fk_MatrixAdmin::getScaleMode | ( | void | ) | const |
拡大縮小状態判定関数
モデルの拡大・縮小状態を取得します。
モデルの拡大・縮小倍率が、 全体および軸方向のいずれかで 1 以外に設定されている場合、 モデルの拡大縮小が行われると解釈します。
グローバル座標系座標軸回転関数1
モデルの位置を、グローバル座標系によって回転した場所に移動します。 回転軸は、origin を通り、 axis で指定した座標軸に平行な直線となります。 回転角度は theta となります。単位は弧度法(ラジアン)です。
この関数は位置のみを回転させるもので、姿勢は回転しません。 姿勢の回転も伴いたい場合は glRotateWithVec_() を利用して下さい。 ローカル座標系で回転移動を行いたい場合は loRotate_() を利用して下さい。
[in] | origin | グローバル座標系での回転軸上の点 |
[in] | axis | 回転軸に平行な軸。fk_X, fk_Y, fk_Z のいずれかになります。 |
[in] | theta | 回転角度(ラジアン) |
bool FK::fk_MatrixAdmin::glRotate_ | ( | double | orgX, |
double | orgY, | ||
double | orgZ, | ||
fk_Axis | axis, | ||
double | theta | ||
) |
グローバル座標系座標軸回転関数2
モデルの位置を、グローバル座標系によって回転した場所に移動します。 回転軸は、(orgX, orgY, orgZ) を通り、 axis で指定した座標軸に平行な直線となります。 回転角度は theta となります。単位は弧度法(ラジアン)です。
この関数は位置のみを回転させるもので、姿勢は回転しません。 姿勢の回転も伴いたい場合は glRotateWithVec_() を利用して下さい。 ローカル座標系で回転移動を行いたい場合は loRotate_() を利用して下さい。
[in] | orgX | グローバル座標系での回転軸上の点のx成分 |
[in] | orgY | グローバル座標系での回転軸上の点のy成分 |
[in] | orgZ | グローバル座標系での回転軸上の点のz成分 |
[in] | axis | 回転軸に平行な軸。fk_X, fk_Y, fk_Z のいずれかになります。 |
[in] | theta | 回転角度(ラジアン) |
グローバル座標系任意軸回転関数1
モデルの位置を、グローバル座標系によって回転した場所に移動します。 回転軸は、A と B を通る軸となります。 回転角度は theta となります。単位は弧度法(ラジアン)です。
この関数は位置のみを回転させるもので、姿勢は回転しません。 姿勢の回転も伴いたい場合は glRotateWithVec_() を利用して下さい。 ローカル座標系で回転移動を行いたい場合は loRotate_() を利用して下さい。
[in] | A | 回転軸上の1点。B と一致してはいけません。 |
[in] | B | 回転軸上の1点。A と一致してはいけません。 |
[in] | theta | 回転角度(ラジアン) |
bool FK::fk_MatrixAdmin::glRotate_ | ( | double | Ax, |
double | Ay, | ||
double | Az, | ||
double | Bx, | ||
double | By, | ||
double | Bz, | ||
double | theta | ||
) |
グローバル座標系任意軸回転関数2
モデルの位置を、グローバル座標系によって回転した場所に移動します。 回転軸は、(Ax, Ay, Az) と (Bx, By, Bz) を通る軸となります。 回転角度は theta となります。単位は弧度法(ラジアン)です。
この関数は位置のみを回転させるもので、姿勢は回転しません。 姿勢の回転も伴いたい場合は glRotateWithVec_() を利用して下さい。 ローカル座標系で回転移動を行いたい場合は loRotate_() を利用して下さい。
[in] | Ax | 回転軸上の1点 A の x 成分 |
[in] | Ay | 回転軸上の1点 A の y 成分 |
[in] | Az | 回転軸上の1点 A の z 成分 |
[in] | Bx | 回転軸上の1点 B の x 成分 |
[in] | By | 回転軸上の1点 B の y 成分 |
[in] | Bz | 回転軸上の1点 B の z 成分 |
[in] | theta | 回転角度(ラジアン) |
ローカル座標系座標軸回転関数1
モデルの位置を、ローカル座標系によって回転した場所に移動します。 回転軸は(ローカル座標系における) origin を通り、 axis で指定した (ローカル座標系における) 座標軸に平行な直線となります。 回転角度は theta となります。単位は弧度法(ラジアン)です。
この関数は位置のみを回転させるもので、姿勢は回転しません。 姿勢の回転も伴いたい場合は loRotateWithVec_() を利用して下さい。 グローバル座標系で回転移動を行いたい場合は glRotate_() を利用して下さい。
[in] | origin | ローカル座標系での回転軸上の点 |
[in] | axis | 回転軸に平行なローカル座標系上の軸。 fk_X, fk_Y, fk_Z のいずれかになります。 |
[in] | theta | 回転角度(ラジアン) |
bool FK::fk_MatrixAdmin::loRotate_ | ( | double | orgX, |
double | orgY, | ||
double | orgZ, | ||
fk_Axis | axis, | ||
double | theta | ||
) |
ローカル座標系座標軸回転関数2
モデルの位置を、ローカル座標系によって回転した場所に移動します。 回転軸は(ローカル座標系における) (orgX, orgY, orgZ) を通り、 axis で指定した (ローカル座標系における) 座標軸に平行な直線となります。 回転角度は theta となります。単位は弧度法(ラジアン)です。
この関数は位置のみを回転させるもので、姿勢は回転しません。 姿勢の回転も伴いたい場合は loRotateWithVec_() を利用して下さい。 グローバル座標系で回転移動を行いたい場合は glRotate_() を利用して下さい。
[in] | orgX | ローカル座標系での回転軸上の点のx成分 |
[in] | orgY | ローカル座標系での回転軸上の点のy成分 |
[in] | orgZ | ローカル座標系での回転軸上の点のz成分 |
[in] | axis | 回転軸に平行なローカル座標系上の軸。 fk_X, fk_Y, fk_Z のいずれかになります。 |
[in] | theta | 回転角度(ラジアン) |
ローカル座標系任意軸回転関数1
モデルの位置を、ローカル座標系によって回転した場所に移動します。 回転軸は、(ローカル座標系における) A と B を通る軸となります。 回転角度は theta となります。単位は弧度法(ラジアン)です。
この関数は位置のみを回転させるもので、姿勢は回転しません。 姿勢の回転も伴いたい場合は loRotateWithVec_() を利用して下さい。 グローバル座標系で回転移動を行いたい場合は glRotate_() を利用して下さい。
[in] | A | ローカル座標系における回転軸上の1点。B と一致してはいけません。 |
[in] | B | ローカル座標系における回転軸上の1点。A と一致してはいけません。 |
[in] | theta | 回転角度(ラジアン) |
bool FK::fk_MatrixAdmin::loRotate_ | ( | double | Ax, |
double | Ay, | ||
double | Az, | ||
double | Bx, | ||
double | By, | ||
double | Bz, | ||
double | theta | ||
) |
ローカル座標系任意軸回転関数2
モデルの位置を、ローカル座標系によって回転した場所に移動します。 回転軸は、(ローカル座標系における) (Ax, Ay, Az) と (Bx, By, Bz) を通る軸となります。 回転角度は theta となります。単位は弧度法(ラジアン)です。
この関数は位置のみを回転させるもので、姿勢は回転しません。 姿勢の回転も伴いたい場合は loRotateWithVec_() を利用して下さい。 グローバル座標系で回転移動を行いたい場合は glRotate_() を利用して下さい。
[in] | Ax | ローカル座標系における回転軸上の1点 A の x 成分 |
[in] | Ay | ローカル座標系における回転軸上の1点 A の y 成分 |
[in] | Az | ローカル座標系における回転軸上の1点 A の z 成分 |
[in] | Bx | ローカル座標系における回転軸上の1点 B の x 成分 |
[in] | By | ローカル座標系における回転軸上の1点 B の y 成分 |
[in] | Bz | ローカル座標系における回転軸上の1点 B の z 成分 |
[in] | theta | 回転角度(ラジアン) |
グローバル座標系座標軸回転(姿勢付き)関数1
モデルの位置を、グローバル座標系によって回転した場所に移動します。 回転軸は、origin を通り、 axis で指定した座標軸に平行な直線となります。 回転角度は theta となります。単位は弧度法(ラジアン)です。
この関数は、回転の際に姿勢も回転していきます。 位置のみの回転を行いたい場合は glRotate_() を利用して下さい。 ローカル座標系で回転移動(姿勢付き)を行いたい場合は、 loRotateWithVec_() を利用して下さい。
[in] | origin | グローバル座標系での回転軸上の点 |
[in] | axis | 回転軸に平行な軸。fk_X, fk_Y, fk_Z のいずれかになります。 |
[in] | theta | 回転角度(ラジアン) |
bool FK::fk_MatrixAdmin::glRotateWithVec_ | ( | double | orgX, |
double | orgY, | ||
double | orgZ, | ||
fk_Axis | axis, | ||
double | theta | ||
) |
グローバル座標系座標軸回転(姿勢付き)関数2
モデルの位置を、グローバル座標系によって回転した場所に移動します。 回転軸は、(orgX, orgY, orgZ) を通り、 axis で指定した座標軸に平行な直線となります。 回転角度は theta となります。単位は弧度法(ラジアン)です。
この関数は、回転の際に姿勢も回転していきます。 位置のみの回転を行いたい場合は glRotate_() を利用して下さい。 ローカル座標系で回転移動(姿勢付き)を行いたい場合は、 loRotateWithVec_() を利用して下さい。
[in] | orgX | グローバル座標系での回転軸上の点のx成分 |
[in] | orgY | グローバル座標系での回転軸上の点のy成分 |
[in] | orgZ | グローバル座標系での回転軸上の点のz成分 |
[in] | axis | 回転軸に平行な軸。fk_X, fk_Y, fk_Z のいずれかになります。 |
[in] | theta | 回転角度(ラジアン) |
グローバル座標系任意軸回転(姿勢付き)関数1
モデルの位置を、グローバル座標系によって回転した場所に移動します。 回転軸は、A と B を通る軸となります。 回転角度は theta となります。単位は弧度法(ラジアン)です。
この関数は、回転の際に姿勢も回転していきます。 位置のみの回転を行いたい場合は glRotate_() を利用して下さい。 ローカル座標系で回転移動(姿勢付き)を行いたい場合は、 loRotateWithVec_() を利用して下さい。
[in] | A | 回転軸上の1点。B と一致してはいけません。 |
[in] | B | 回転軸上の1点。A と一致してはいけません。 |
[in] | theta | 回転角度(ラジアン) |
bool FK::fk_MatrixAdmin::glRotateWithVec_ | ( | double | Ax, |
double | Ay, | ||
double | Az, | ||
double | Bx, | ||
double | By, | ||
double | Bz, | ||
double | theta | ||
) |
グローバル座標系任意軸回転(姿勢付き)関数2
モデルの位置を、グローバル座標系によって回転した場所に移動します。 回転軸は、(Ax, Ay, Az) と (Bx, By, Bz) を通る軸となります。 回転角度は theta となります。単位は弧度法(ラジアン)です。
この関数は、回転の際に姿勢も回転していきます。 位置のみの回転を行いたい場合は glRotate_() を利用して下さい。 ローカル座標系で回転移動(姿勢付き)を行いたい場合は、 loRotateWithVec_() を利用して下さい。
[in] | Ax | 回転軸上の1点 A の x 成分 |
[in] | Ay | 回転軸上の1点 A の y 成分 |
[in] | Az | 回転軸上の1点 A の z 成分 |
[in] | Bx | 回転軸上の1点 B の x 成分 |
[in] | By | 回転軸上の1点 B の y 成分 |
[in] | Bz | 回転軸上の1点 B の z 成分 |
[in] | theta | 回転角度(ラジアン) |
ローカル座標系座標軸回転(姿勢付き)関数1
モデルの位置を、ローカル座標系によって回転した場所に移動します。 回転軸は(ローカル座標系における) origin を通り、 axis で指定した (ローカル座標系における) 座標軸に平行な直線となります。 回転角度は theta となります。単位は弧度法(ラジアン)です。
この関数は、回転の際に姿勢も回転していきます。 位置のみの回転を行いたい場合は loRotate_() を利用して下さい。 グローバル座標系で回転移動(姿勢付き)を行いたい場合は、 glRotateWithVec_() を利用して下さい。
[in] | origin | ローカル座標系での回転軸上の点 |
[in] | axis | 回転軸に平行なローカル座標系上の軸。 fk_X, fk_Y, fk_Z のいずれかになります。 |
[in] | theta | 回転角度(ラジアン) |
bool FK::fk_MatrixAdmin::loRotateWithVec_ | ( | double | orgX, |
double | orgY, | ||
double | orgZ, | ||
fk_Axis | axis, | ||
double | theta | ||
) |
ローカル座標系座標軸回転(姿勢付き)関数2
モデルの位置を、ローカル座標系によって回転した場所に移動します。 回転軸は(ローカル座標系における) (orgX, orgY, orgZ) を通り、 axis で指定した (ローカル座標系における) 座標軸に平行な直線となります。 回転角度は theta となります。単位は弧度法(ラジアン)です。
この関数は、回転の際に姿勢も回転していきます。 位置のみの回転を行いたい場合は loRotate_() を利用して下さい。 グローバル座標系で回転移動(姿勢付き)を行いたい場合は、 glRotateWithVec_() を利用して下さい。
[in] | orgX | ローカル座標系での回転軸上の点のx成分 |
[in] | orgY | ローカル座標系での回転軸上の点のy成分 |
[in] | orgZ | ローカル座標系での回転軸上の点のz成分 |
[in] | axis | 回転軸に平行なローカル座標系上の軸。 fk_X, fk_Y, fk_Z のいずれかになります。 |
[in] | theta | 回転角度(ラジアン) |
ローカル座標系任意軸回転(姿勢付き)関数1
モデルの位置を、ローカル座標系によって回転した場所に移動します。 回転軸は、(ローカル座標系における) A と B を通る軸となります。 回転角度は theta となります。単位は弧度法(ラジアン)です。
この関数は、回転の際に姿勢も回転していきます。 位置のみの回転を行いたい場合は loRotate_() を利用して下さい。 グローバル座標系で回転移動(姿勢付き)を行いたい場合は、 glRotateWithVec_() を利用して下さい。
[in] | A | ローカル座標系における回転軸上の1点。B と一致してはいけません。 |
[in] | B | ローカル座標系における回転軸上の1点。A と一致してはいけません。 |
[in] | theta | 回転角度(ラジアン) |
bool FK::fk_MatrixAdmin::loRotateWithVec_ | ( | double | Ax, |
double | Ay, | ||
double | Az, | ||
double | Bx, | ||
double | By, | ||
double | Bz, | ||
double | theta | ||
) |
ローカル座標系任意軸回転(姿勢付き)関数2
モデルの位置を、ローカル座標系によって回転した場所に移動します。 回転軸は、(ローカル座標系における) (Ax, Ay, Az) と (Bx, By, Bz) を通る軸となります。 回転角度は theta となります。単位は弧度法(ラジアン)です。
この関数は、回転の際に姿勢も回転していきます。 位置のみの回転を行いたい場合は loRotate_() を利用して下さい。 グローバル座標系で回転移動(姿勢付き)を行いたい場合は、 glRotateWithVec_() を利用して下さい。
[in] | Ax | ローカル座標系における回転軸上の1点 A の x 成分 |
[in] | Ay | ローカル座標系における回転軸上の1点 A の y 成分 |
[in] | Az | ローカル座標系における回転軸上の1点 A の z 成分 |
[in] | Bx | ローカル座標系における回転軸上の1点 B の x 成分 |
[in] | By | ローカル座標系における回転軸上の1点 B の y 成分 |
[in] | Bz | ローカル座標系における回転軸上の1点 B の z 成分 |
[in] | theta | 回転角度(ラジアン) |
bool FK::fk_MatrixAdmin::glTranslate_ | ( | fk_Vector & | v | ) |
グローバル座標系平行移動関数1
モデルを、クローバル座標系によって平行移動した位置に移動します。 平行移動量はベクトルで指定します。
ローカル座標系による平行移動量の指定を行いたい場合は、 loTranslate_() を利用して下さい。
[in] | v | 平行移動量ベクトル |
bool FK::fk_MatrixAdmin::glTranslate_ | ( | double | x, |
double | y, | ||
double | z | ||
) |
グローバル座標系平行移動関数2
モデルを、クローバル座標系によって平行移動した位置に移動します。 平行移動量はベクトルの成分を意味する3個の実数で指定します。
ローカル座標系による平行移動量の指定を行いたい場合は、 loTranslate_() を利用して下さい。
[in] | x | 平行移動量ベクトルのx成分 |
[in] | y | 平行移動量ベクトルのy成分 |
[in] | z | 平行移動量ベクトルのz成分 |
bool FK::fk_MatrixAdmin::loTranslate_ | ( | fk_Vector & | v | ) |
ローカル座標系平行移動関数1
モデルを、ローカル座標系によって平行移動した位置に移動します。 平行移動量はベクトルで指定します。
グローバル座標系による平行移動量の指定を行いたい場合は、 glTranslate_() を利用して下さい。
[in] | v | 平行移動量ベクトル |
bool FK::fk_MatrixAdmin::loTranslate_ | ( | double | x, |
double | y, | ||
double | z | ||
) |
ローカル座標系平行移動関数2
モデルを、ローカル座標系によって平行移動した位置に移動します。 平行移動量はベクトルの成分を意味する3個の実数で指定します。
グローバル座標系による平行移動量の指定を行いたい場合は、 glTranslate_() を利用して下さい。
[in] | x | 平行移動量ベクトルのx成分 |
[in] | y | 平行移動量ベクトルのy成分 |
[in] | z | 平行移動量ベクトルのz成分 |
bool FK::fk_MatrixAdmin::glMoveTo_ | ( | fk_Vector & | p | ) |
グローバル座標系位置指定関数1
モデルの位置を、指定した位置ベクトルに移動します。 位置はベクトルで指定します。
[in] | p | 移動先位置ベクトル |
bool FK::fk_MatrixAdmin::glMoveTo_ | ( | double | x, |
double | y, | ||
double | z | ||
) |
グローバル座標系位置指定関数2
モデルの位置を、指定した位置ベクトルに移動します。 位置はベクトルの成分を意味する3個の実数で指定します。
[in] | x | 移動先位置ベクトルのx成分 |
[in] | y | 移動先位置ベクトルのy成分 |
[in] | z | 移動先位置ベクトルのz成分 |
bool FK::fk_MatrixAdmin::glFocus | ( | fk_Vector | p | ) |
グローバル座標系注視点設定関数1
モデルの方向ベクトルを、 グローバル座標系による位置 p に向くように方向ベクトルを設定します。 モデルをカメラとして解釈すると、 p を注視点としてカメラを向けることになります。
なお、この関数を呼んだ時点でのアップベクトルの状態は規定されていません。 アップベクトルを含めた姿勢制御を行うため、 glUpvec() などと併用しなければなりません。
[in] | p | 注視点位置ベクトル |
bool FK::fk_MatrixAdmin::glFocus | ( | double | x, |
double | y, | ||
double | z | ||
) |
グローバル座標系注視点設定関数2
モデルの方向ベクトルを、 グローバル座標系による位置 (x, y, z) に向くように方向ベクトルを設定します。 モデルをカメラとして解釈すると、 (x, y, z) を注視点としてカメラを向けることになります。
なお、この関数を呼んだ時点でのアップベクトルの状態は規定されていません。 アップベクトルを含めた姿勢制御を行うため、 glUpvec() などと併用しなければなりません。
[in] | x | 注視点位置ベクトルのx成分 |
[in] | y | 注視点位置ベクトルのy成分 |
[in] | z | 注視点位置ベクトルのz成分 |
bool FK::fk_MatrixAdmin::loFocus | ( | fk_Vector | p | ) |
ローカル座標系注視点設定関数1
モデルの方向ベクトルを、 ローカル座標系による位置 p に向くように方向ベクトルを設定します。 モデルをカメラとして解釈すると、 p を注視点としてカメラを向けることになります。
なお、この関数を呼んだ時点でのアップベクトルの状態は規定されていません。 アップベクトルを含めた姿勢制御を行うため、 glUpvec() などと併用しなければなりません。
[in] | p | 注視点位置ベクトル |
bool FK::fk_MatrixAdmin::loFocus | ( | double | x, |
double | y, | ||
double | z | ||
) |
ローカル座標系注視点設定関数2
モデルの方向ベクトルを、 ローカル座標系による位置 (x, y, z) に向くように方向ベクトルを設定します。 モデルをカメラとして解釈すると、 (x, y, z) を注視点としてカメラを向けることになります。
なお、この関数を呼んだ時点でのアップベクトルの状態は規定されていません。 アップベクトルを含めた姿勢制御を行うため、 glUpvec() などと併用しなければなりません。
[in] | x | 注視点位置ベクトルのx成分 |
[in] | y | 注視点位置ベクトルのy成分 |
[in] | z | 注視点位置ベクトルのz成分 |
bool FK::fk_MatrixAdmin::glVec | ( | fk_Vector | v | ) |
グローバル座標系方向ベクトル設定関数1
モデルの方向ベクトルを、グローバル座標系において与えられたベクトルに設定します。 ベクトルは正規化されている必要はありませんが、 零ベクトルであってはなりません。
この関数を呼んだ時点でのアップベクトルの状態は規定されていません。 アップベクトルを含めた姿勢制御を行うため、 glUpvec() などと併用しなければなりません。
[in] | v | 方向ベクトル |
bool FK::fk_MatrixAdmin::glVec | ( | double | x, |
double | y, | ||
double | z | ||
) |
グローバル座標系方向ベクトル設定関数2
モデルの方向ベクトルを、グローバル座標系において与えられたベクトルに設定します。 ベクトルは正規化されている必要はありませんが、 零ベクトルであってはなりません。
この関数を呼んだ時点でのアップベクトルの状態は規定されていません。 アップベクトルを含めた姿勢制御を行うため、 glUpvec() などと併用しなければなりません。
[in] | x | 方向ベクトルのx成分 |
[in] | y | 方向ベクトルのx成分 |
[in] | z | 方向ベクトルのx成分 |
bool FK::fk_MatrixAdmin::glUpvec | ( | fk_Vector | v | ) |
bool FK::fk_MatrixAdmin::glUpvec | ( | double | x, |
double | y, | ||
double | z | ||
) |
グローバル座標系アップベクトル設定関数2
モデルのアップベクトルを、グローバル座標系において与えられたベクトルに設定します。 ベクトルは正規化されている必要はありませんが、 零ベクトルであってはなりません。 また、方向ベクトルと平行であった場合もエラーとなります。
[in] | x | アップベクトルのx成分 |
[in] | y | アップベクトルのy成分 |
[in] | z | アップベクトルのz成分 |
bool FK::fk_MatrixAdmin::loUpvec | ( | fk_Vector | v | ) |
ローカル座標系アップベクトル設定関数1
モデルのアップベクトルを、ローカル座標系において与えられたベクトルに設定します。 本関数においては、z成分の値は意味をなしませんが、 実際には 0 以外の値であっても問題なく動作します。
ベクトルは正規化されている必要はありませんが、 零ベクトルであってはなりません。 また、z軸方向のベクトルと平行であった場合もエラーとなります。
[in] | v | アップベクトル |
bool FK::fk_MatrixAdmin::loUpvec | ( | double | x, |
double | y, | ||
double | z | ||
) |
ローカル座標系アップベクトル設定関数2
モデルのアップベクトルを、ローカル座標系において与えられたベクトルに設定します。 本関数においては、z成分の値は意味をなしませんが、 実際には 0 以外の値であっても問題なく動作します。
ベクトルは正規化されている必要はありませんが、 零ベクトルであってはなりません。 また、z軸方向のベクトルと平行であった場合もエラーとなります。
[in] | x | アップベクトルのx成分 |
[in] | y | アップベクトルのy成分 |
[in] | z | アップベクトルのz成分 |
bool FK::fk_MatrixAdmin::glAngle | ( | fk_Angle | angle | ) |
bool FK::fk_MatrixAdmin::glAngle | ( | double | h, |
double | p, | ||
double | b | ||
) |
bool FK::fk_MatrixAdmin::loAngle | ( | fk_Angle | angle | ) |