|
Build 1.0_r1(from source) | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectandroid.opengl.Matrix
public class Matrix
Matrix math utilities. These methods operate on OpenGL ES format matrices and vectors stored in float arrays. Matrices are 4 x 4 column-vector matrices stored in column-major order:
m[offset + 0] m[offset + 4] m[offset + 8] m[offset + 12] m[offset + 1] m[offset + 5] m[offset + 9] m[offset + 13] m[offset + 2] m[offset + 6] m[offset + 10] m[offset + 14] m[offset + 3] m[offset + 7] m[offset + 11] m[offset + 15]Vectors are 4 row x 1 column column-vectors stored in order:
v[offset + 0] v[offset + 1] v[offset + 2] v[offset + 3]
| Constructor Summary | |
|---|---|
Matrix()
|
|
| Method Summary | |
|---|---|
static void |
frustumM(float[] m,
int offset,
float left,
float right,
float bottom,
float top,
float near,
float far)
Define a projection matrix in terms of six clip planes |
static boolean |
invertM(float[] mInv,
int mInvOffset,
float[] m,
int mOffset)
Inverts a 4 x 4 matrix. |
static float |
length(float x,
float y,
float z)
Computes the length of a vector |
static void |
multiplyMM(float[] result,
int resultOffset,
float[] lhs,
int lhsOffset,
float[] rhs,
int rhsOffset)
Multiply two 4x4 matrices together and store the result in a third 4x4 matrix. |
static void |
multiplyMV(float[] resultVec,
int resultVecOffset,
float[] lhsMat,
int lhsMatOffset,
float[] rhsVec,
int rhsVecOffset)
Multiply a 4 element vector by a 4x4 matrix and store the result in a 4 element column vector. |
static void |
orthoM(float[] m,
int mOffset,
float left,
float right,
float bottom,
float top,
float near,
float far)
Computes an orthographic projection matrix. |
static void |
rotateM(float[] rm,
int rmOffset,
float[] m,
int mOffset,
float a,
float x,
float y,
float z)
Rotates matrix m by angle a (in degrees) around the axis (x, y, z) |
static void |
rotateM(float[] m,
int mOffset,
float a,
float x,
float y,
float z)
Rotates matrix m in place by angle a (in degrees) around the axis (x, y, z) |
static void |
scaleM(float[] sm,
int smOffset,
float[] m,
int mOffset,
float x,
float y,
float z)
Scales matrix m by sx, sy, and sz, putting the result in sm |
static void |
scaleM(float[] m,
int mOffset,
float x,
float y,
float z)
Scales matrix m in place by sx, sy, and sz |
static void |
setIdentityM(float[] sm,
int smOffset)
Sets matrix m to the identity matrix. |
static void |
setRotateEulerM(float[] rm,
int rmOffset,
float x,
float y,
float z)
Converts Euler angles to a rotation matrix |
static void |
setRotateM(float[] rm,
int rmOffset,
float a,
float x,
float y,
float z)
Rotates matrix m by angle a (in degrees) around the axis (x, y, z) |
static void |
translateM(float[] tm,
int tmOffset,
float[] m,
int mOffset,
float x,
float y,
float z)
Translates matrix m by sx, sy, and sz, putting the result in tm |
static void |
translateM(float[] m,
int mOffset,
float x,
float y,
float z)
Translates matrix m by sx, sy, and sz in place. |
static void |
transposeM(float[] mTrans,
int mTransOffset,
float[] m,
int mOffset)
Transposes a 4 x 4 matrix. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public Matrix()
| Method Detail |
|---|
public static void multiplyMM(float[] result,
int resultOffset,
float[] lhs,
int lhsOffset,
float[] rhs,
int rhsOffset)
result - The float array that holds the result.resultOffset - The offset into the result array where the result is
stored.lhs - The float array that holds the left-hand-side matrix.lhsOffset - The offset into the lhs array where the lhs is storedrhs - The float array that holds the right-hand-side matrix.rhsOffset - The offset into the rhs array where the rhs is stored.
IllegalArgumentException - if result, lhs, or rhs are null, or if
resultOffset + 16 > result.length or lhsOffset + 16 > lhs.length or
rhsOffset + 16 > rhs.length.
public static void multiplyMV(float[] resultVec,
int resultVecOffset,
float[] lhsMat,
int lhsMatOffset,
float[] rhsVec,
int rhsVecOffset)
resultVec - The float array that holds the result vector.resultVecOffset - The offset into the result array where the result
vector is stored.lhsMat - The float array that holds the left-hand-side matrix.lhsMatOffset - The offset into the lhs array where the lhs is storedrhsVec - The float array that holds the right-hand-side vector.rhsVecOffset - The offset into the rhs vector where the rhs vector
is stored.
IllegalArgumentException - if resultVec, lhsMat,
or rhsVec are null, or if resultVecOffset + 4 > resultVec.length
or lhsMatOffset + 16 > lhsMat.length or
rhsVecOffset + 4 > rhsVec.length.
public static void transposeM(float[] mTrans,
int mTransOffset,
float[] m,
int mOffset)
mTrans - the array that holds the output inverted matrixmTransOffset - an offset into mInv where the inverted matrix is
stored.m - the input arraymOffset - an offset into m where the matrix is stored.
public static boolean invertM(float[] mInv,
int mInvOffset,
float[] m,
int mOffset)
mInv - the array that holds the output inverted matrixmInvOffset - an offset into mInv where the inverted matrix is
stored.m - the input arraymOffset - an offset into m where the matrix is stored.
public static void orthoM(float[] m,
int mOffset,
float left,
float right,
float bottom,
float top,
float near,
float far)
m - returns the resultmOffset - left - right - bottom - top - near - far -
public static void frustumM(float[] m,
int offset,
float left,
float right,
float bottom,
float top,
float near,
float far)
m - the float array that holds the perspective matrixoffset - the offset into float array m where the perspective
matrix data is writtenleft - right - bottom - top - near - far -
public static float length(float x,
float y,
float z)
x - x coordinate of a vectory - y coordinate of a vectorz - z coordinate of a vector
public static void setIdentityM(float[] sm,
int smOffset)
sm - returns the resultsmOffset - index into sm where the result matrix starts
public static void scaleM(float[] sm,
int smOffset,
float[] m,
int mOffset,
float x,
float y,
float z)
sm - returns the resultsmOffset - index into sm where the result matrix startsm - source matrixmOffset - index into m where the source matrix startsx - scale factor xy - scale factor yz - scale factor z
public static void scaleM(float[] m,
int mOffset,
float x,
float y,
float z)
m - matrix to scalemOffset - index into m where the matrix startsx - scale factor xy - scale factor yz - scale factor z
public static void translateM(float[] tm,
int tmOffset,
float[] m,
int mOffset,
float x,
float y,
float z)
tm - returns the resulttmOffset - index into sm where the result matrix startsm - source matrixmOffset - index into m where the source matrix startsx - translation factor xy - translation factor yz - translation factor z
public static void translateM(float[] m,
int mOffset,
float x,
float y,
float z)
m - matrixmOffset - index into m where the matrix startsx - translation factor xy - translation factor yz - translation factor z
public static void rotateM(float[] rm,
int rmOffset,
float[] m,
int mOffset,
float a,
float x,
float y,
float z)
rm - returns the resultrmOffset - index into rm where the result matrix startsm - source matrixmOffset - index into m where the source matrix startsa - angle to rotate in degreesx - scale factor xy - scale factor yz - scale factor z
public static void rotateM(float[] m,
int mOffset,
float a,
float x,
float y,
float z)
m - source matrixmOffset - index into m where the matrix startsa - angle to rotate in degreesx - scale factor xy - scale factor yz - scale factor z
public static void setRotateM(float[] rm,
int rmOffset,
float a,
float x,
float y,
float z)
rm - returns the resultrmOffset - index into rm where the result matrix startsa - angle to rotate in degreesx - scale factor xy - scale factor yz - scale factor z
public static void setRotateEulerM(float[] rm,
int rmOffset,
float x,
float y,
float z)
rm - returns the resultrmOffset - index into rm where the result matrix startsx - angle of rotation, in degreesy - angle of rotation, in degreesz - angle of rotation, in degrees
|
Build 1.0_r1(from source) | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||