Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Matrix4f {
- private float[][] m;
- public Matrix4f() {
- m = new float[4][4];
- }
- public Matrix4f initIdentiy() {
- m[0][0] = 1; m[0][1] = 0; m[0][2] = 0; m[0][3] = 0;
- m[1][0] = 0; m[1][1] = 1; m[1][2] = 0; m[1][3] = 0;
- m[2][0] = 0; m[2][1] = 0; m[2][2] = 1; m[2][3] = 0;
- m[3][0] = 0; m[3][1] = 0; m[3][2] = 0; m[3][3] = 1;
- return this;
- }
- public Matrix4f initTranslation(float x, float y, float z) {
- m[0][0] = 1; m[0][1] = 0; m[0][2] = 0; m[0][3] = x;
- m[1][0] = 0; m[1][1] = 1; m[1][2] = 0; m[1][3] = y;
- m[2][0] = 0; m[2][1] = 0; m[2][2] = 1; m[2][3] = z;
- m[3][0] = 0; m[3][1] = 0; m[3][2] = 0; m[3][3] = 1;
- return this;
- }
- public Matrix4f initRotation(float x, float y, float z) {
- Matrix4f mx = new Matrix4f();
- Matrix4f my = new Matrix4f();
- Matrix4f mz = new Matrix4f();
- x = (float) Math.toRadians(x);
- y = (float) Math.toRadians(x);
- z = (float) Math.toRadians(x);
- mx.m[0][0] = (float) Math.cos(z); mx.m[0][1] = (float) - Math.sin(z); mx.m[0][2] = 0; mx.m[0][3] = 0;
- mx.m[1][0] = (float) Math.sin(z); mx.m[1][1] = (float) + Math.cos(z); mx.m[1][2] = 0; mx.m[1][3] = 0;
- mx.m[2][0] = 0; mx.m[2][1] = 0; mx.m[2][2] = 1; mx.m[2][3] = 0;
- mx.m[3][0] = 0; mx.m[3][1] = 0; mx.m[3][2] = 0; mx.m[3][3] = 1;
- my.m[0][0] = 1; my.m[0][1] = 0; my.m[0][2] = 0; my.m[0][3] = 0;
- my.m[1][0] = 0; my.m[1][1] = (float) Math.cos(x); my.m[1][2] = (float) - Math.sin(x); my.m[1][3] = 0;
- my.m[2][0] = 0; my.m[2][1] = (float) Math.sin(x); my.m[2][2] = (float) + Math.cos(x); my.m[2][3] = 0;
- my.m[3][0] = 0; my.m[3][1] = 0; my.m[3][2] = 0; my.m[3][3] = 1;
- mz.m[0][0] = (float) Math.cos(y); mz.m[0][1] = 0; mz.m[0][2] = (float) - Math.sin(y); mz.m[0][3] = 0;
- mz.m[1][0] = 0; mz.m[1][1] = 1; mz.m[1][2] = 0; mz.m[1][3] = 0;
- mz.m[2][0] = (float) Math.sin(y); mz.m[2][1] = 0; mz.m[2][2] = (float) + Math.cos(y); mz.m[2][3] = 0;
- mz.m[3][0] = 0; mz.m[3][1] = 0; mz.m[3][2] = 0; mz.m[3][3] = 1;
- m = mz.mul(my.mul(mx)).getM();
- return this;
- }
- public Matrix4f mul(Matrix4f ma) {
- Matrix4f ret = new Matrix4f();
- for (int i = 0; i < 4; i++) {
- for (int j = 0; j < 4; j++) {
- ret.set(i, j, m[i][0] * ma.get(0, j) +
- m[i][0] * ma.get(1, j) +
- m[i][0] * ma.get(2, j) +
- m[i][0] * ma.get(3, j));
- }
- }
- return ret;
- }
- public float get(int x, int y) {
- return m[x][y];
- }
- public void set(int x, int y, float val) {
- m[x][y] = val;
- }
- public float[][] getM() {
- return m;
- }
- public void setM(float[][] m) {
- this.m = m;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment