com.nttdocomo.ui.ogl.math
クラス Matrix4f

Object
  拡張com.nttdocomo.ui.ogl.math.Matrix4f

public final class Matrix4f
extends Object
 [iアプリオプションAPI]

同次変換を行う4x4行列を表すクラスです。

処理高速化のため、行列要素にアクセスする際はアクセッサメソッドを使用せず、 インスタンス変数に直接アクセスしてください。

導入されたバージョン:
DoJa-5.0 (903i)

フィールドの概要
 float[] m
           行列要素です。
 
コンストラクタの概要
Matrix4f()
           コンストラクタです。
Matrix4f(Matrix4f m)
           コンストラクタです。
 
メソッドの概要
 void invert()
           逆行列を求めます。
 void lookAt(Point3f eye, Point3f look, Vector3f up)
           視点座標への変換となるように行列の要素を設定します。
 void mul(Matrix4f m)
           Matrix4f同士の掛け算を行います。
 void mul(Matrix4f m1, Matrix4f m2)
           Matrix4f同士の掛け算を行います。
 void rotate(float angle, float x, float y, float z)
           回転成分を乗算します。
 void scale(float x, float y, float z)
           スケール値を乗算します。
 void setIdentity()
           単位行列化します。
 void transform(Tuple4f t)
           4次元要素の座標変換を行います。
 void translate(float x, float y, float z)
           平行移動成分を乗算します。
 
クラス Object から継承したメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

m

public float[] m

行列要素です。

配列長は4x4=16です。
OpenGL® ESのルールに従い、行列要素は以下の順で配列に格納されていることに注意してください。

|m0 m4 m8 m12| |m1 m5 m9 m13| |m2 m6 m10 m14| |m3 m7 m11 m15|

コンストラクタの詳細

Matrix4f

public Matrix4f()

コンストラクタです。

全ての行列要素は0で初期化されます。

例外:
UnsupportedOperationException - OpenGL® ES に相当する機能をサポートしていない場合に発生します。

Matrix4f

public Matrix4f(Matrix4f m)

コンストラクタです。

引数mの行列要素で初期化されます。

パラメータ:
m - 初期化を行う行列です。
例外:
UnsupportedOperationException - OpenGL® ES に相当する機能をサポートしていない場合に発生します。
NullPointerException - 引数mにnullが指定された場合に発生します。
NullPointerException - [DoJa-5.1 (905i) 以降] 引数mの行列要素mにnullが設定されている場合に発生します。
ArrayIndexOutOfBoundsException - [DoJa-5.1 (905i) 以降] 引数mの行列要素mに、配列長が4x4=16未満の配列が設定されている場合に発生します。
メソッドの詳細

mul

public void mul(Matrix4f m)

Matrix4f同士の掛け算を行います。

このインスタンス(this)に対して引数mを右から掛けます。
計算結果はこのインスタンスに保存されます。
(this = this * m)

パラメータ:
m - このインスタンスに対して掛ける行列を指定します。
例外:
NullPointerException - 引数mにnullが指定された場合に発生します。
NullPointerException - [DoJa-5.1 (905i) 以降] このインスタンスの行列要素m、または引数mの行列要素mにnullが設定されている場合に発生します。
ArrayIndexOutOfBoundsException - [DoJa-5.1 (905i) 以降] このインスタンスの行列要素m、 または引数mの行列要素mに配列長が4x4=16未満の配列が設定されている場合に発生します。

mul

public void mul(Matrix4f m1,
                Matrix4f m2)

Matrix4f同士の掛け算を行います。

引数m1に対して引数m2を右から掛け、結果をこのインスタンスに保存します。
(this = m1 * m2)

パラメータ:
m1 - 左から掛ける行列を指定します。
m2 - 右から掛ける行列を指定します。
例外:
NullPointerException - 引数m1もしくはm2にnullが指定された場合に発生します。
NullPointerException - [DoJa-5.1 (905i) 以降] このインスタンスの行列要素m、または引数m1、m2の行列要素mにnullが設定されている場合に発生します。
ArrayIndexOutOfBoundsException - [DoJa-5.1 (905i) 以降] このインスタンスの行列要素m、または引数m1、m2の行列要素mに配列長が4x4=16未満の配列が設定されている場合に発生します。

transform

public void transform(Tuple4f t)

4次元要素の座標変換を行います。

このインスタンスで引数tの座標変換を行い、結果を引数tに保存します。
(t = this * t)

パラメータ:
t - 座標変換を行う4次元要素を指定します。
例外:
NullPointerException - 引数tにnullが指定された場合に発生します。
NullPointerException - [DoJa-5.1 (905i) 以降] このインスタンスの行列要素mにnullが設定されている場合に発生します。
ArrayIndexOutOfBoundsException - [DoJa-5.1 (905i) 以降] このインスタンスの行列要素mに配列長が4x4=16未満の配列が設定されている場合に発生します。

invert

public void invert()

逆行列を求めます。

このインスタンスの逆行列を求め、結果をこのインスタンスに保存します。
(this = this-1)

例外:
IllegalArgumentException - 行列式の値が0である場合に発生します。
NullPointerException - [DoJa-5.1 (905i) 以降] このインスタンスの行列要素mにnullが設定されている場合に発生します。
ArrayIndexOutOfBoundsException - [DoJa-5.1 (905i) 以降] このインスタンスの行列要素mに配列長が4x4=16未満の配列が設定されている場合に発生します。

setIdentity

public void setIdentity()

単位行列化します。

このインスタンスを単位行列化します。

例外:
NullPointerException - [DoJa-5.1 (905i) 以降] このインスタンスの行列要素mにnullが設定されている場合に発生します。
ArrayIndexOutOfBoundsException - [DoJa-5.1 (905i) 以降] このインスタンスの行列要素mに配列長が4x4=16未満の配列が設定されている場合に発生します。

translate

public void translate(float x,
                      float y,
                      float z)

平行移動成分を乗算します。

このインスタンスの現在の平行移動成分に対して、 引数で指定された平行移動量(T)を乗算します。
(this = this * T)

なお、Tは以下になります。

T = | 1 0 0 x | | 0 1 0 y | | 0 0 1 z | | 0 0 0 1 |

パラメータ:
x - x軸方向の移動量を指定します。
y - y軸方向の移動量を指定します。
z - z軸方向の移動量を指定します。
例外:
NullPointerException - [DoJa-5.1 (905i) 以降] このインスタンスの行列要素mにnullが設定されている場合に発生します。
ArrayIndexOutOfBoundsException - [DoJa-5.1 (905i) 以降] このインスタンスの行列要素mに配列長が4x4=16未満の配列が設定されている場合に発生します。

rotate

public void rotate(float angle,
                   float x,
                   float y,
                   float z)

回転成分を乗算します。

このインスタンスの現在の回転成分に対して、 引数で指定された回転量(R)を乗算します。
(this = this * R)

なお、回転行列要素をr0〜r8とするとき、Rは以下になります。

R = | r0 r3 r6 0 | | r1 r4 r7 0 | | r2 r5 r8 0 | | 0 0 0 1 |

angleの定義域は[-360, 360]です。

回転軸となるベクトルがゼロベクトルであった場合、 およびangleに定義域外の値が指定された場合の結果は保証されません。

パラメータ:
angle - 回転量[degree]を指定します。
x - 回転軸となるベクトルのx軸方向の成分を指定します。
y - 回転軸となるベクトルのy軸方向の成分を指定します。
z - 回転軸となるベクトルのz軸方向の成分を指定します。
例外:
NullPointerException - [DoJa-5.1 (905i) 以降] このインスタンスの行列要素mにnullが設定されている場合に発生します。
ArrayIndexOutOfBoundsException - [DoJa-5.1 (905i) 以降] このインスタンスの行列要素mに配列長が4x4=16未満の配列が設定されている場合に発生します。

scale

public void scale(float x,
                  float y,
                  float z)

スケール値を乗算します。

このインスタンスの現在のスケール成分に対して、 引数で指定されたスケール値(S)を乗算します。
(this = this * S)

なお、Sは以下になります。

S = | x 0 0 0 | | 0 y 0 0 | | 0 0 z 0 | | 0 0 0 1 |

パラメータ:
x - x軸方向のスケール値を指定します。
y - y軸方向のスケール値を指定します。
z - z軸方向のスケール値を指定します。
例外:
NullPointerException - [DoJa-5.1 (905i) 以降] このインスタンスの行列要素mにnullが設定されている場合に発生します。
ArrayIndexOutOfBoundsException - [DoJa-5.1 (905i) 以降] このインスタンスの行列要素mに配列長が4x4=16未満の配列が設定されている場合に発生します。

lookAt

public void lookAt(Point3f eye,
                   Point3f look,
                   Vector3f up)

視点座標への変換となるように行列の要素を設定します。

パラメータ:
eye - 視点位置を指定します。
look - 参照点を指定します。
up - 視線のUpベクトルを指定します。
例外:
NullPointerException - 引数eye, look, upのいずれかがnullである場合に発生します。
IllegalArgumentException - upベクトルが零ベクトルである場合、 視線ベクトル(look-eye)が零ベクトルである場合、 視線ベクトル(look-eye)とupベクトルが平行である場合に発生します。
NullPointerException - このインスタンスの行列要素mにnullが設定されている場合に発生します。
ArrayIndexOutOfBoundsException - このインスタンスの行列要素mに配列長が4x4=16未満の配列が設定されている場合に発生します。
導入されたバージョン:
DoJa-5.1 (905i)