Save the date! Android Dev Summit is coming to Mountain View, CA on November 7-8, 2018.

Matrix4f

public class Matrix4f
extends Object

java.lang.Object
   ↳ android.renderscript.Matrix4f


Class for exposing the native RenderScript rs_matrix4x4 type back to the Android system.

Summary

Public constructors

Matrix4f()

Creates a new identity 4x4 matrix

Matrix4f(float[] dataArray)

Creates a new matrix and sets its values from the given parameter

Public methods

float get(int x, int y)

Returns the value for a given row and column

float[] getArray()

Return a reference to the internal array representing matrix values.

boolean inverse()

Sets the current matrix to its inverse

boolean inverseTranspose()

Sets the current matrix to its inverse transpose

void load(Matrix4f src)

Sets the values of the matrix to those of the parameter

void loadFrustum(float l, float r, float b, float t, float n, float f)

Sets current values to be a perspective projection matrix

void loadIdentity()

Sets the matrix values to identity

void loadMultiply(Matrix4f lhs, Matrix4f rhs)

Sets current values to be the result of multiplying two given matrices

void loadOrtho(float l, float r, float b, float t, float n, float f)

Set current values to be an orthographic projection matrix

void loadOrthoWindow(int w, int h)

Set current values to be an orthographic projection matrix with the right and bottom clipping planes set to the given values.

void loadPerspective(float fovy, float aspect, float near, float far)

Sets current values to be a perspective projection matrix

void loadProjectionNormalized(int w, int h)

Helper function to set the current values to a perspective projection matrix with aspect ratio defined by the parameters and (near, far), (bottom, top) mapping to (-1, 1) at z = 0

void loadRotate(float rot, float x, float y, float z)

Sets current values to be a rotation matrix of certain angle about a given axis

void loadScale(float x, float y, float z)

Sets current values to be a scale matrix of given dimensions

void loadTranslate(float x, float y, float z)

Sets current values to be a translation matrix of given dimensions

void multiply(Matrix4f rhs)

Post-multiplies the current matrix by a given parameter

void rotate(float rot, float x, float y, float z)

Modifies the current matrix by post-multiplying it with a rotation matrix of certain angle about a given axis

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

Modifies the current matrix by post-multiplying it with a scale matrix of given dimensions

void set(int x, int y, float v)

Sets the value for a given row and column

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

Modifies the current matrix by post-multiplying it with a translation matrix of given dimensions

void transpose()

Sets the current matrix to its transpose

Inherited methods

Public constructors

Matrix4f

added in API level 11
public Matrix4f ()

Creates a new identity 4x4 matrix

Matrix4f

added in API level 11
public Matrix4f (float[] dataArray)

Creates a new matrix and sets its values from the given parameter

Parameters
dataArray float: values to set the matrix to, must be 16 floats long

Public methods

get

added in API level 11
public float get (int x, 
                int y)

Returns the value for a given row and column

Parameters
x int: column of the value to return

y int: row of the value to return

Returns
float value in the yth row and xth column

getArray

added in API level 11
public float[] getArray ()

Return a reference to the internal array representing matrix values. Modifying this array will also change the matrix

Returns
float[] internal array representing the matrix

inverse

added in API level 11
public boolean inverse ()

Sets the current matrix to its inverse

Returns
boolean

inverseTranspose

added in API level 11
public boolean inverseTranspose ()

Sets the current matrix to its inverse transpose

Returns
boolean

load

added in API level 11
public void load (Matrix4f src)

Sets the values of the matrix to those of the parameter

Parameters
src Matrix4f: matrix to load the values from

loadFrustum

added in API level 11
public void loadFrustum (float l, 
                float r, 
                float b, 
                float t, 
                float n, 
                float f)

Sets current values to be a perspective projection matrix

Parameters
l float: location of the left vertical clipping plane

r float: location of the right vertical clipping plane

b float: location of the bottom horizontal clipping plane

t float: location of the top horizontal clipping plane

n float: location of the near clipping plane, must be positive

f float: location of the far clipping plane, must be positive

loadIdentity

added in API level 11
public void loadIdentity ()

Sets the matrix values to identity

loadMultiply

added in API level 11
public void loadMultiply (Matrix4f lhs, 
                Matrix4f rhs)

Sets current values to be the result of multiplying two given matrices

Parameters
lhs Matrix4f: left hand side matrix

rhs Matrix4f: right hand side matrix

loadOrtho

added in API level 11
public void loadOrtho (float l, 
                float r, 
                float b, 
                float t, 
                float n, 
                float f)

Set current values to be an orthographic projection matrix

Parameters
l float: location of the left vertical clipping plane

r float: location of the right vertical clipping plane

b float: location of the bottom horizontal clipping plane

t float: location of the top horizontal clipping plane

n float: location of the near clipping plane

f float: location of the far clipping plane

loadOrthoWindow

added in API level 11
public void loadOrthoWindow (int w, 
                int h)

Set current values to be an orthographic projection matrix with the right and bottom clipping planes set to the given values. Left and top clipping planes are set to 0. Near and far are set to -1, 1 respectively

Parameters
w int: location of the right vertical clipping plane

h int: location of the bottom horizontal clipping plane

loadPerspective

added in API level 11
public void loadPerspective (float fovy, 
                float aspect, 
                float near, 
                float far)

Sets current values to be a perspective projection matrix

Parameters
fovy float: vertical field of view angle in degrees

aspect float: aspect ratio of the screen

near float: near cliping plane, must be positive

far float: far clipping plane, must be positive

loadProjectionNormalized

added in API level 11
public void loadProjectionNormalized (int w, 
                int h)

Helper function to set the current values to a perspective projection matrix with aspect ratio defined by the parameters and (near, far), (bottom, top) mapping to (-1, 1) at z = 0

Parameters
w int: screen width

h int: screen height

loadRotate

added in API level 11
public void loadRotate (float rot, 
                float x, 
                float y, 
                float z)

Sets current values to be a rotation matrix of certain angle about a given axis

Parameters
rot float: angle of rotation

x float: rotation axis x

y float: rotation axis y

z float: rotation axis z

loadScale

added in API level 11
public void loadScale (float x, 
                float y, 
                float z)

Sets current values to be a scale matrix of given dimensions

Parameters
x float: scale component x

y float: scale component y

z float: scale component z

loadTranslate

added in API level 11
public void loadTranslate (float x, 
                float y, 
                float z)

Sets current values to be a translation matrix of given dimensions

Parameters
x float: translation component x

y float: translation component y

z float: translation component z

multiply

added in API level 11
public void multiply (Matrix4f rhs)

Post-multiplies the current matrix by a given parameter

Parameters
rhs Matrix4f: right hand side to multiply by

rotate

added in API level 11
public void rotate (float rot, 
                float x, 
                float y, 
                float z)

Modifies the current matrix by post-multiplying it with a rotation matrix of certain angle about a given axis

Parameters
rot float: angle of rotation

x float: rotation axis x

y float: rotation axis y

z float: rotation axis z

scale

added in API level 11
public void scale (float x, 
                float y, 
                float z)

Modifies the current matrix by post-multiplying it with a scale matrix of given dimensions

Parameters
x float: scale component x

y float: scale component y

z float: scale component z

set

added in API level 11
public void set (int x, 
                int y, 
                float v)

Sets the value for a given row and column

Parameters
x int: column of the value to set

y int: row of the value to set

v float

translate

added in API level 11
public void translate (float x, 
                float y, 
                float z)

Modifies the current matrix by post-multiplying it with a translation matrix of given dimensions

Parameters
x float: translation component x

y float: translation component y

z float: translation component z

transpose

added in API level 11
public void transpose ()

Sets the current matrix to its transpose