FileDocCategorySizeDatePackage
Matrix2f.javaAPI DocAndroid 5.1 API4844Thu Mar 12 22:22:42 GMT 2015android.renderscript

Matrix2f

public class Matrix2f extends Object
Class for exposing the native RenderScript rs_matrix2x2 type back to the Android system.

Fields Summary
final float[]
mMat
Constructors Summary
public Matrix2f()
Creates a new identity 2x2 matrix

        mMat = new float[4];
        loadIdentity();
    
public Matrix2f(float[] dataArray)
Creates a new matrix and sets its values from the given parameter

param
dataArray values to set the matrix to, must be 4 floats long

        mMat = new float[4];
        System.arraycopy(dataArray, 0, mMat, 0, mMat.length);
    
Methods Summary
public floatget(int x, int y)
Returns the value for a given row and column

param
x column of the value to return
param
y row of the value to return
return
value in the yth row and xth column

        return mMat[x*2 + y];
    
public float[]getArray()
Return a reference to the internal array representing matrix values. Modifying this array will also change the matrix

return
internal array representing the matrix

        return mMat;
    
public voidload(android.renderscript.Matrix2f src)
Sets the values of the matrix to those of the parameter

param
src matrix to load the values from

        System.arraycopy(src.getArray(), 0, mMat, 0, mMat.length);
    
public voidloadIdentity()
Sets the matrix values to identity

        mMat[0] = 1;
        mMat[1] = 0;

        mMat[2] = 0;
        mMat[3] = 1;
    
public voidloadMultiply(android.renderscript.Matrix2f lhs, android.renderscript.Matrix2f rhs)
Sets current values to be the result of multiplying two given matrices

param
lhs left hand side matrix
param
rhs right hand side matrix

        for (int i=0 ; i<2 ; i++) {
            float ri0 = 0;
            float ri1 = 0;
            for (int j=0 ; j<2 ; j++) {
                float rhs_ij = rhs.get(i,j);
                ri0 += lhs.get(j,0) * rhs_ij;
                ri1 += lhs.get(j,1) * rhs_ij;
            }
            set(i,0, ri0);
            set(i,1, ri1);
        }
    
public voidloadRotate(float rot)
Sets current values to be a rotation matrix of given angle

param
rot rotation angle

        float c, s;
        rot *= (float)(java.lang.Math.PI / 180.0f);
        c = (float)java.lang.Math.cos(rot);
        s = (float)java.lang.Math.sin(rot);
        mMat[0] = c;
        mMat[1] = -s;
        mMat[2] = s;
        mMat[3] = c;
    
public voidloadScale(float x, float y)
Sets current values to be a scale matrix of given dimensions

param
x scale component x
param
y scale component y

        loadIdentity();
        mMat[0] = x;
        mMat[3] = y;
    
public voidmultiply(android.renderscript.Matrix2f rhs)
Post-multiplies the current matrix by a given parameter

param
rhs right hand side to multiply by

        Matrix2f tmp = new Matrix2f();
        tmp.loadMultiply(this, rhs);
        load(tmp);
    
public voidrotate(float rot)
Modifies the current matrix by post-multiplying it with a rotation matrix of given angle

param
rot angle of rotation

        Matrix2f tmp = new Matrix2f();
        tmp.loadRotate(rot);
        multiply(tmp);
    
public voidscale(float x, float y)
Modifies the current matrix by post-multiplying it with a scale matrix of given dimensions

param
x scale component x
param
y scale component y

        Matrix2f tmp = new Matrix2f();
        tmp.loadScale(x, y);
        multiply(tmp);
    
public voidset(int x, int y, float v)
Sets the value for a given row and column

param
x column of the value to set
param
y row of the value to set

        mMat[x*2 + y] = v;
    
public voidtranspose()
Sets the current matrix to its transpose

        float temp = mMat[1];
        mMat[1] = mMat[2];
        mMat[2] = temp;