Copyright © 2013 Oculus VR, Inc. All Rights Reserved.
3D変換および投影に使用される4x4マトリクス
変換は最後のカラムに格納される。マトリクスはメモリに列優先順で格納されます。すなわち、最初の列の値が次の列より前に格納されます。
マトリクスは右手座標系であり軸を下っていくと反時計周りに回転していきます
変換順序:
- 変換は右から左に適用されるため、M1 * M2 * M3 * V はベクトル V が M3により最初に変換され、次にM2, 最後に M1という順番を表します
座標系:右手系
回転:軸を下向きにみたときに反時計周り。全ての角度はラジアン単位
最初のカラム (sx, 10, 20): X 軸 ベースのベクトル。二つめのカラム (01, sy, 21): Y 軸ベースのベクトル。三つめめのカラム (02, 12, sz): Z 軸のベクトル | 30 31 32 33 |
ベースベクトルは三つのカラムからなります。
|
| Matrix4f (NoInitType it) |
| メモリ初期化なしで生成 More... |
|
| Matrix4f () |
| デフォルトでは単位行列を生成 |
|
| Matrix4f (float m11, float m12, float m13, float m14, float m21, float m22, float m23, float m24, float m31, float m32, float m33, float m34, float m41, float m42, float m43, float m44) |
| コンストラクタ More... |
|
| Matrix4f (float m11, float m12, float m13, float m21, float m22, float m23, float m31, float m32, float m33) |
| コンストラクタ More... |
|
void | SetIdentity () |
| 単位行列をセット |
|
Matrix4f | operator* (const Matrix4f &b) const |
| 乗算演算子 More... |
|
Matrix4f & | operator*= (const Matrix4f &b) |
| 乗算代入演算子 More... |
|
Matrix4f | operator* (float s) const |
| 乗算演算子 More... |
|
Matrix4f & | operator*= (float s) |
| 乗算代入演算子 More... |
|
Vector3f | Transform (const Vector3f &v) const |
| 与えられたベクトルを変換 More... |
|
Matrix4f | Transposed () const |
| 転置ベクトルを取得 More... |
|
void | Transpose () |
| オブジェクトを転置 |
|
float | SubDet (const int *rows, const int *cols) const |
| Sub 行列式 More... |
|
float | Cofactor (int I, int J) const |
| 余因子 More... |
|
float | Determinant () const |
| 行列式を取得 More... |
|
Matrix4f | Adjugated () const |
| 余因子行列を取得 More... |
|
Matrix4f | Inverted () const |
| 逆行列を取得 More... |
|
void | Invert () |
| オブジェクトの逆行列にする |
|
template<Axis A1, Axis A2, Axis A3, RotateDirection D, HandedSystem S> |
void | ToEulerAngles (float *a, float *b, float *c) |
| a,b,c は返されるYawPitchRoll 角であり、A1 軸周りを回転 a、次にA2軸周りを回転 b、次にA3軸周りを回転 c、次に反時計周り(CCW)または時計回りCW (D)、最後に左手系(LH)または右手系(RH)で指定(S) More... |
|
template<Axis A1, Axis A2, RotateDirection D, HandedSystem S> |
void | ToEulerAnglesABA (float *a, float *b, float *c) |
| a,b,c は返されるYawPitchRoll 角であり、A1 軸周りを回転 a、次にA2軸周りを回転 b、次にA3軸周りを回転 c、次に反時計周り(CCW)または時計回りCW (D)、最後に左手系(LH)または右手系(RH)で指定(S) More... |
|
|
static const Matrix4f & | Identity () |
| 単位行列を取得 More... |
|
static Matrix4f & | Multiply (Matrix4f *d, const Matrix4f &a, const Matrix4f &b) |
| 二つの行列を最小限の複製で乗算してターゲット (d) に返す More... |
|
static Matrix4f | AxisConversion (const WorldAxes &to, const WorldAxes &from) |
| 頂点をひとつの座標系から別の座標系に変換する行列を作成 More... |
|
static Matrix4f | Translation (const Vector3f &v) |
| 指定したベクトルを変換 More... |
|
static Matrix4f | Translation (float x, float y, float z=0.0f) |
| 変換する More... |
|
static Matrix4f | Scaling (const Vector3f &v) |
| 指定したベクトルを拡大・縮小 More... |
|
static Matrix4f | Scaling (float x, float y, float z) |
| ベクトルを拡大・縮小 More... |
|
static Matrix4f | Scaling (float s) |
| ベクトルを拡大・縮小 More... |
|
static Matrix4f | RotationAxis (Axis A, float angle, RotateDirection d, HandedSystem s) |
| 回転軸 More... |
|
static Matrix4f | RotationX (float angle) |
| X 軸周りを angle ラジアンだけ回転する回転行列を作成 More... |
|
static Matrix4f | RotationY (float angle) |
| Y 軸周りを angle ラジアンだけ回転する回転行列を作成 More... |
|
static Matrix4f | RotationZ (float angle) |
| Z 軸周りを angle ラジアンだけ回転する回転行列を作成 More... |
|
static Matrix4f | LookAtRH (const Vector3f &eye, const Vector3f &at, const Vector3f &up) |
| LookAtRH が右手座標系でビュー変換行列を作成 More... |
|
static Matrix4f | LookAtLH (const Vector3f &eye, const Vector3f &at, const Vector3f &up) |
| LookAtLH が左手座標系でビュー変換行列を作成 More... |
|
static Matrix4f | PerspectiveRH (float yfov, float aspect, float znear, float zfar) |
| PerspectiveRH がOculus サンプル レンダラで使用できる右手系パース投影マトリクスを作成 More... |
|
static Matrix4f | PerspectiveLH (float yfov, float aspect, float znear, float zfar) |
| PerspectiveLH がOculus サンプル レンダラで使用できる左手系パース投影マトリクスを作成 More... |
|
static Matrix4f | Ortho2D (float w, float h) |
| Orthographic 2D. More... |
|
OVR::Matrix4f::Matrix4f | ( | NoInitType | it | ) | |
| inline |
OVR::Matrix4f::Matrix4f | ( | float | m11, |
| | float | m12, |
| | float | m13, |
| | float | m14, |
| | float | m21, |
| | float | m22, |
| | float | m23, |
| | float | m24, |
| | float | m31, |
| | float | m32, |
| | float | m33, |
| | float | m34, |
| | float | m41, |
| | float | m42, |
| | float | m43, |
| | float | m44 |
| ) | | |
| inline |
Constructor.
- Parameters
m11 | 最初の m 1 |
m12 | 2番目の m 1 |
m13 | 3番目の m 1 |
m14 | 4番目の m 1 |
m21 | 最初の m 2 |
m22 | 2番目の m 2 |
m23 | 3番目の m 2 |
m24 | 4番目の m 2 |
m31 | 最初の m 3 |
m32 | 2番目の m 3 |
m33 | 3番目の m 3 |
m34 | 4番目の m 3 |
m41 | 最初の m 4 |
m42 | 2番目の m 4 |
m43 | 3番目の m 4 |
m44 | 4番目の m 4 |
OVR::Matrix4f::Matrix4f | ( | float | m11, |
| | float | m12, |
| | float | m13, |
| | float | m21, |
| | float | m22, |
| | float | m23, |
| | float | m31, |
| | float | m32, |
| | float | m33 |
| ) | | |
| inline |
コンストラクタ
- Parameters
m11 | 最初の m 1 |
m12 | 2番目の m 1 |
m13 | 3番目の m 1 |
|
|
m21 | 最初の m 2 |
m22 | 2番目の m 2 |
m23 | 3番目の m 2 |
|
|
m31 | 最初の m 3 |
m32 | 2番目の m 3 |
m33 | 3番目の m 3 |
|
|
Matrix4f OVR::Matrix4f::Adjugated | ( | | ) | const |
| inline |
頂点をひとつの座標系から別の座標系に変換する行列を作成
- 引数
-
- 戻り値
- 行列
float OVR::Matrix4f::Cofactor | ( | int | I, |
| | int | J |
| ) | | const |
| inline |
float OVR::Matrix4f::Determinant | ( | | ) | const |
| inline |
static const Matrix4f& OVR::Matrix4f::Identity | ( | | ) | |
| inlinestatic |
LookAtLH が左手座標系でビュー変換行列を作成
結果の行列は目(eye) から視点(at) の向きとなり、上方向のベクトルを up で指定
- 引数
-
- 戻り値
- 行列
LookAtRH が右手座標系でビュー変換行列を作成
結果の行列は目(eye) から視点(at) の向きとなり、上方向のベクトルを up で指定 結果の行列は右手系のパース投影(PerspectiveRH)とともに使用されるべき
- 引数
-
- 戻り値
- 行列
二つの行列を最小限の複製で乗算しターゲット (d) に返す
- 引数
[in,out] | d | null でない場合にかぎり、処理する Matrix4f* を指定できる |
| a | 処理対象の定数 Matrix4f& |
| b | 処理対象の定数 Matrix4f& |
- 戻り値
- .
Matrix4f OVR::Matrix4f::operator* | ( | float | s | ) | const |
| inline |
Matrix4f& OVR::Matrix4f::operator*= | ( | float | s | ) | |
| inline |
static Matrix4f OVR::Matrix4f::Ortho2D | ( | float | w, |
| | float | h |
| ) | | |
| static |
Orthographic 2D
- 引数
-
- 戻り値
- 行列
static Matrix4f OVR::Matrix4f::PerspectiveLH | ( | float | yfov, |
| | float | aspect, |
| | float | znear, |
| | float | zfar |
| ) | | |
| static |
PerspectiveLH がOculus サンプル レンダラで使用できる左手系パース投影マトリクスを作成
yfov - 垂直方向の視野角をラジアン単位で指定。aspect - 画面アスペクト比、通常は幅/高さを四角ピクセルで指定
xfov = yfov * aspect であることに留意。znear - ニア Z クリッピング レンジの絶対値。zfar - ファー Z クリッピング レンジの絶対値(ニアよりも大きい)
- 引数
yfov | 垂直方向の視野角 |
aspect | アスペクト比 |
znear | ニア Z クリッピング レンジ |
zfar | ファー Z |
- 戻り値
- 行列
static Matrix4f OVR::Matrix4f::PerspectiveRH | ( | float | yfov, |
| | float | aspect, |
| | float | znear, |
| | float | zfar |
| ) | | |
| static |
PerspectiveRH がOculus サンプル レンダラで使用できる右手系パース投影マトリクスを作成
yfov - 垂直方向の視野角をラジアン単位で指定。aspect - 画面アスペクト比、通常は幅/高さを四角ピクセルで指定
xfov = yfov * aspect であることに留意。znear - ニア Z クリッピング レンジの絶対値。zfar - ファー Z クリッピング レンジの絶対値(ニアよりも大きい). 右手系では通常 Z の負方向にみるものの、znear および zfar は正の値が期待されます
- 行列
yfov | 垂直方向の視野角 |
aspect | アスペクト比 |
znear | ニア Z クリッピング レンジ |
zfar | ファー Z |
- 戻り値
- 行列
回転軸
- 引数
A | 処理対象の軸 |
angle | 角度 |
d | 処理対象の回転方向 |
s | 処理対象が右手系/左手系のどちらか |
- 戻り値
- ベクトル
static Matrix4f OVR::Matrix4f::RotationX | ( | float | angle | ) | |
| inlinestatic |
X 軸周りを angle ラジアンだけ回転する回転行列を作成
回転方向は座標系に依存:右手系(Oculus デフォルト): 正の値のとき、軸を負の方向からみたとき反時計方向(CCW)に回転します。これは正の値を原点に向かって軸に沿ってみるのと同じことです。左手系: 正の値のとき、軸の負の方向に軸に沿ってみたとき値は時計方向(CW)に回転します。
- 引数
-
- 戻り値
- 行列
static Matrix4f OVR::Matrix4f::RotationY | ( | float | angle | ) | |
| inlinestatic |
Y 軸周りを angle ラジアンだけ回転する回転行列を作成
回転方向は座標系に依存:右手系(Oculus デフォルト): 正の値のとき、軸を負の方向からみたとき反時計方向(CCW)に回転します。これは正の値を原点に向かって軸に沿ってみるのと同じことです。左手系: 正の値のとき、軸の負の方向に軸に沿ってみたとき値は時計方向(CW)に回転します。
- 引数
-
- 戻り値
- 行列
static Matrix4f OVR::Matrix4f::RotationZ | ( | float | angle | ) | |
| inlinestatic |
Z 軸周りを angle ラジアンだけ回転する回転行列を作成
回転方向は座標系に依存:右手系(Oculus デフォルト): 正の値のとき、軸を負の方向からみたとき反時計方向(CCW)に回転します。これは正の値を原点に向かって軸に沿ってみるのと同じことです。左手系: 正の値のとき、軸の負の方向に軸に沿ってみたとき値は時計方向(CW)に回転します。
-
- 引数
-
- 戻り値
- 行列
指定したベクトルを拡大・縮小
- 引数
-
- 戻り値
- ベクトル結果
static Matrix4f OVR::Matrix4f::Scaling | ( | float | x, |
| | float | y, |
| | float | z |
| ) | | |
| inlinestatic |
指定したベクトルを拡大・縮小
- 引数
-
- 戻り値
- 拡大・縮小されたベクトル
static Matrix4f OVR::Matrix4f::Scaling | ( | float | s | ) | |
| inlinestatic |
float OVR::Matrix4f::SubDet | ( | const int * | rows, |
| | const int * | cols |
| ) | | const |
| inline |
template<Axis A1, Axis A2, Axis A3, RotateDirection D, HandedSystem S>
void OVR::Matrix4f::ToEulerAngles | ( | float * | a, |
| | float * | b, |
| | float * | c |
| ) | | |
| inline |
a,b,c は返されるYawPitchRoll 角であり、A1 軸周りを回転 a、次にA2軸周りを回転 b、次にA3軸周りを回転 c、次に反時計周り(CCW)または時計回りCW (D)、最後に左手系(LH)または右手系(RH)で指定(S)
- テンプレート引数
Axis | A1 軸の種類 a 1. |
Axis | A2 軸の種類 a 2. |
Axis | A3 軸の種類 a 3. |
RotateDirection | D 回転の向きの種類 d. |
HandedSystem | S 処理対象が右手系/左手系のどちらか s. |
- 引数
[in,out] | a | null でない場合、処理対象の float * |
[in,out] | b | null でない場合、処理対象の float * |
[in,out] | c | null でない場合、処理対象の float * |
template<Axis A1, Axis A2, RotateDirection D, HandedSystem S>
void OVR::Matrix4f::ToEulerAnglesABA | ( | float * | a, |
| | float * | b, |
| | float * | c |
| ) | | |
| inline |
a,b,c は返されるYawPitchRoll 角であり、A1 軸周りを回転 a、次にA2軸周りを回転 b、次にA3軸周りを回転 c、次に反時計周り(CCW)または時計回りCW (D)、最後に左手系(LH)または右手系(RH)で指定(S)
- テンプレート引数
Axis | A1 軸の種類 a 1 |
Axis | A2 軸の種類 a 2 |
RotateDirection | D 回転の向きの種類 d |
HandedSystem | S 処理対象が右手系/左手系のどちらか s |
- 引数
[in,out] | a | null でない場合、処理対象の float * |
[in,out] | b | null でない場合、処理対象の float * |
[in,out] | c | null でない場合、処理対象の float * |
static Matrix4f OVR::Matrix4f::Translation | ( | float | x, |
| | float | y, |
| | float | z = 0.0f |
| ) | | |
| inlinestatic |
変換する
- Parameters
x | x 座標 |
y | y 座標 |
z | (任意) 処理対象の float |
- 戻り値
- 変換された行列
Matrix4f OVR::Matrix4f::Transposed | ( | | ) | const |
| inline |
このクラスのドキュメンテーションは次のファイルから生成されています:
0 件のコメント:
コメントを投稿