FileDocCategorySizeDatePackage
Matrix2f.javaAPI DocAndroid 5.1 API4904Thu Mar 12 22:22:56 GMT 2015android.support.v8.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.support.v8.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.support.v8.renderscript.Matrix2f lhs, android.support.v8.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.support.v8.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;