2014年1月13日月曜日

Oculus VR SDK - Class Reference OVR::Matrix4f(非公式翻訳)

このドキュメントは有志により翻訳されたもので、オフィシャルではありません。オリジナルのページはユーザ登録のうえhttps://developer.oculusvr.com/?action=docを参照して下さい。
This document is unofficially translated by users. Please refer to the original document here as a registered user: https://developer.oculusvr.com/?action=doc.
Copyright © 2013 Oculus VR, Inc. All Rights Reserved.


OVR::Matrix4f クラスリファレンス
3D変換および投影に使用される4x4マトリクス More...
#include <OVR_Math.h>

詳細説明

3D変換および投影に使用される4x4マトリクス
変換は最後のカラムに格納される。マトリクスはメモリに列優先順で格納されます。すなわち、最初の列の値が次の列より前に格納されます。
マトリクスは右手座標系であり軸を下っていくと反時計周りに回転していきます
変換順序:
  • 変換は右から左に適用されるため、M1 * M2 * M3 * V はベクトル V が M3により最初に変換され、次にM2, 最後に M1という順番を表します
座標系:右手系
回転:軸を下向きにみたときに反時計周り。全ての角度はラジアン単位
最初のカラム (sx, 10, 20): 軸 ベースのベクトル。二つめのカラム (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 パブリックメンバー関数

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
メモリ初期化なしで生成
引数
it最初の引数

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
m122番目の m 1
m133番目の m 1
m144番目の m 1
m21最初の m 2
m222番目の m 2 
m233番目の m 2
m244番目の m 2
m31最初の m 3
m322番目の m 3
m333番目の m 3
m344番目の m 3
m41最初の m 4
m422番目の m 4
m433番目の m 4
m444番目の 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
m122番目の m 1
m133番目の m 1

m21最初の m 2
m222番目の m 2 
m233番目の m 2

m31最初の m 3
m322番目の m 3
m333番目の m 3

メンバー関数ドキュメンテーション


Matrix4f OVR::Matrix4f::Adjugated()const
inline
余因子行列
戻り値
行列

static Matrix4f OVR::Matrix4f::AxisConversion(const WorldAxes & to,
const WorldAxes & from 
)
inlinestatic
頂点をひとつの座標系から別の座標系に変換する行列を作成
引数
toto の軸
fromfrom の軸
戻り値
行列

float OVR::Matrix4f::Cofactor(int I,
int 
)const
inline
余因子
引数
Iゼロベースのインデックス
J処理対象の int
戻り値
float 値

float OVR::Matrix4f::Determinant()const
inline
行列式を取得
戻り値
float 値

static const Matrix4f& OVR::Matrix4f::Identity()
inlinestatic
単位行列を取得
戻り値
単位行列

Matrix4f OVR::Matrix4f::Inverted()const
inline
逆行列を取得
戻り値
行列

static Matrix4f OVR::Matrix4f::LookAtLH(const Vector3f & eye,
const Vector3f & at,
const Vector3f & up 
)
static
LookAtLH が左手座標系でビュー変換行列を作成
結果の行列は目(eye) から視点(at) の向きとなり、上方向のベクトルを up で指定
引数
eye
at視点
up上方向
戻り値
行列

static Matrix4f OVR::Matrix4f::LookAtRH(const Vector3f & eye,
const Vector3f & at,
const Vector3f & up 
)
static
LookAtRH が右手座標系でビュー変換行列を作成
結果の行列は目(eye) から視点(at) の向きとなり、上方向のベクトルを up で指定 結果の行列は右手系のパース投影(PerspectiveRH)とともに使用されるべき
引数
eye
at視点
up上方向

戻り値
行列

static Matrix4f& OVR::Matrix4f::Multiply(Matrix4f * d,
const Matrix4f & a,
const Matrix4f & 
)
inlinestatic
二つの行列を最小限の複製で乗算しターゲット (d) に返す
引数
[in,out]dnull でない場合にかぎり、処理する Matrix4f* を指定できる
a処理対象の定数 Matrix4f&
b処理対象の定数 Matrix4f&
戻り値
.

Matrix4f OVR::Matrix4f::operator*(const Matrix4f & b)const
inline
乗算演算子
引数
b処理対象の Matrix4f&
戻り値
処理の結果

Matrix4f OVR::Matrix4f::operator*(float s)const
inline
乗算演算子
引数
s処理対象の float
戻り値
処理の結果

Matrix4f& OVR::Matrix4f::operator*=(const Matrix4f & b)
inline
乗算代入演算子
引数
b処理対象の定数 Matrix4f&
戻り値
処理の結果

Matrix4f& OVR::Matrix4f::operator*=(float s)
inline
乗算代入演算子
引数
s処理対象のfloat
戻り値
処理の結果

static Matrix4f OVR::Matrix4f::Ortho2D(float w,
float 
)
static
Orthographic 2D
引数
w
h高さ
戻り値
行列

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
戻り値
行列

static Matrix4f OVR::Matrix4f::RotationAxis(Axis A,
float angle,
RotateDirection d,
HandedSystem 
)
inlinestatic
回転軸
引数
A処理対象の軸
angle角度
d処理対象の回転方向
s処理対象が右手系/左手系のどちらか
戻り値
ベクトル

static Matrix4f OVR::Matrix4f::RotationX(float angle)
inlinestatic
X 軸周りを angle ラジアンだけ回転する回転行列を作成
回転方向は座標系に依存:右手系(Oculus デフォルト): 正の値のとき、軸を負の方向からみたとき反時計方向(CCW)に回転します。これは正の値を原点に向かって軸に沿ってみるのと同じことです。左手系: 正の値のとき、軸の負の方向に軸に沿ってみたとき値は時計方向(CW)に回転します。
引数
angle角度
戻り値
行列

static Matrix4f OVR::Matrix4f::RotationY(float angle)
inlinestatic
Y 軸周りを angle ラジアンだけ回転する回転行列を作成
回転方向は座標系に依存:右手系(Oculus デフォルト): 正の値のとき、軸を負の方向からみたとき反時計方向(CCW)に回転します。これは正の値を原点に向かって軸に沿ってみるのと同じことです。左手系: 正の値のとき、軸の負の方向に軸に沿ってみたとき値は時計方向(CW)に回転します。
引数
angle角度
戻り値
行列

static Matrix4f OVR::Matrix4f::RotationZ(float angle)
inlinestatic
Z 軸周りを angle ラジアンだけ回転する回転行列を作成
回転方向は座標系に依存:右手系(Oculus デフォルト): 正の値のとき、軸を負の方向からみたとき反時計方向(CCW)に回転します。これは正の値を原点に向かって軸に沿ってみるのと同じことです。左手系: 正の値のとき、軸の負の方向に軸に沿ってみたとき値は時計方向(CW)に回転します。
引数
angle角度
戻り値
行列

static Matrix4f OVR::Matrix4f::Scaling(const Vector3f & v)
inlinestatic
指定したベクトルを拡大・縮小
引数
v処理対象の定数 Vector3f&
戻り値
ベクトル結果

static Matrix4f OVR::Matrix4f::Scaling(float x,
float y,
float 
)
inlinestatic
指定したベクトルを拡大・縮小
引数
xx 座標
y座標
zz 座標
戻り値
拡大・縮小されたベクトル

static Matrix4f OVR::Matrix4f::Scaling(float s)
inlinestatic
ベクトルを拡大・縮小
引数
s処理対象の float
戻り値

float OVR::Matrix4f::SubDet(const int * rows,
const int * cols 
)const
inline
Sub 行列式
引数
rows
cols
戻り値
float の値

template<Axis A1, Axis A2, Axis A3, RotateDirection D, HandedSystem S>
void OVR::Matrix4f::ToEulerAngles(float * a,
float * b,
float * 
)
inline
a,b,c は返されるYawPitchRoll 角であり、A1 軸周りを回転 a、次にA2軸周りを回転 b、次にA3軸周りを回転 c、次に反時計周り(CCW)または時計回りCW (D)、最後に左手系(LH)または右手系(RH)で指定(S)
テンプレート引数
AxisA1 軸の種類 a 1.
AxisA2 軸の種類 a 2.
AxisA3 軸の種類 a 3.
RotateDirectionD 回転の向きの種類 d.
HandedSystem処理対象が右手系/左手系のどちらか s.
引数
[in,out]anull でない場合、処理対象の float *
[in,out]bnull でない場合、処理対象の float *
[in,out]cnull でない場合、処理対象の float *

template<Axis A1, Axis A2, RotateDirection D, HandedSystem S>
void OVR::Matrix4f::ToEulerAnglesABA(float * a,
float * b,
float * 
)
inline
a,b,c は返されるYawPitchRoll 角であり、A1 軸周りを回転 a、次にA2軸周りを回転 b、次にA3軸周りを回転 c、次に反時計周り(CCW)または時計回りCW (D)、最後に左手系(LH)または右手系(RH)で指定(S)
テンプレート引数
AxisA1 軸の種類 a 1
AxisA2 軸の種類 a 2
RotateDirectionD 回転の向きの種類 d
HandedSystem処理対象が右手系/左手系のどちらか s
引数
[in,out]anull でない場合、処理対象の float *
[in,out]bnull でない場合、処理対象の float *
[in,out]cnull でない場合、処理対象の float *

Vector3f OVR::Matrix4f::Transform(const Vector3f & v)const
inline
指定されたベクトルを変換
引数
v処理対象の定数 Vector3f&
戻り値
転置行列

static Matrix4f OVR::Matrix4f::Translation(const Vector3f & v)
inlinestatic
指定されたベクトルを変換
引数
v処理対象の定数 Vector3f&
戻り値
転置行列

static Matrix4f OVR::Matrix4f::Translation(float x,
float y,
float z = 0.0f 
)
inlinestatic
変換する
Parameters
xx 座標
yy 座標
z(任意) 処理対象の float
戻り値
変換された行列

Matrix4f OVR::Matrix4f::Transposed()const
inline
転置されたベクトル
戻り値
転置の結果

このクラスのドキュメンテーションは次のファイルから生成されています:

0 件のコメント:

コメントを投稿

ブックマークに追加

このエントリーをはてなブックマークに追加

自己紹介

自分の写真
Unity3D公式マニュアル翻訳やってる人がスマホ(iPhone, Android)のゲーム開発しています。気軽に面白く初心者が遊べる内容がモットー。Blogでは開発情報をひたすら、Twitterではゲーム作成の過程で参考にしている情報を中心につぶやきます

ページビューの合計

過去7日間の人気投稿

ブログ アーカイブ