Пример #1
0
 public Mat4f mul(Mat4f rhs) {
   Mat4f m = new Mat4f();
   float r;
   float t0;
   float t1;
   float t2;
   float t3;
   r = rhs.get(0, 0);
   t0 = this.get(0, 0) * r;
   t1 = this.get(1, 0) * r;
   t2 = this.get(2, 0) * r;
   t3 = this.get(3, 0) * r;
   r = rhs.get(1, 0);
   t0 += this.get(0, 1) * r;
   t1 += this.get(1, 1) * r;
   t2 += this.get(2, 1) * r;
   t3 += this.get(3, 1) * r;
   r = rhs.get(2, 0);
   t0 += this.get(0, 2) * r;
   t1 += this.get(1, 2) * r;
   t2 += this.get(2, 2) * r;
   t3 += this.get(3, 2) * r;
   r = rhs.get(3, 0);
   t0 += this.get(0, 3) * r;
   t1 += this.get(1, 3) * r;
   t2 += this.get(2, 3) * r;
   t3 += this.get(3, 3) * r;
   m.e[index(0, 0)] = t0;
   m.e[index(1, 0)] = t1;
   m.e[index(2, 0)] = t2;
   m.e[index(3, 0)] = t3;
   r = rhs.get(0, 1);
   t0 = this.get(0, 0) * r;
   t1 = this.get(1, 0) * r;
   t2 = this.get(2, 0) * r;
   t3 = this.get(3, 0) * r;
   r = rhs.get(1, 1);
   t0 += this.get(0, 1) * r;
   t1 += this.get(1, 1) * r;
   t2 += this.get(2, 1) * r;
   t3 += this.get(3, 1) * r;
   r = rhs.get(2, 1);
   t0 += this.get(0, 2) * r;
   t1 += this.get(1, 2) * r;
   t2 += this.get(2, 2) * r;
   t3 += this.get(3, 2) * r;
   r = rhs.get(3, 1);
   t0 += this.get(0, 3) * r;
   t1 += this.get(1, 3) * r;
   t2 += this.get(2, 3) * r;
   t3 += this.get(3, 3) * r;
   m.e[index(0, 1)] = t0;
   m.e[index(1, 1)] = t1;
   m.e[index(2, 1)] = t2;
   m.e[index(3, 1)] = t3;
   r = rhs.get(0, 2);
   t0 = this.get(0, 0) * r;
   t1 = this.get(1, 0) * r;
   t2 = this.get(2, 0) * r;
   t3 = this.get(3, 0) * r;
   r = rhs.get(1, 2);
   t0 += this.get(0, 1) * r;
   t1 += this.get(1, 1) * r;
   t2 += this.get(2, 1) * r;
   t3 += this.get(3, 1) * r;
   r = rhs.get(2, 2);
   t0 += this.get(0, 2) * r;
   t1 += this.get(1, 2) * r;
   t2 += this.get(2, 2) * r;
   t3 += this.get(3, 2) * r;
   r = rhs.get(3, 2);
   t0 += this.get(0, 3) * r;
   t1 += this.get(1, 3) * r;
   t2 += this.get(2, 3) * r;
   t3 += this.get(3, 3) * r;
   m.e[index(0, 2)] = t0;
   m.e[index(1, 2)] = t1;
   m.e[index(2, 2)] = t2;
   m.e[index(3, 2)] = t3;
   r = rhs.get(0, 3);
   t0 = this.get(0, 0) * r;
   t1 = this.get(1, 0) * r;
   t2 = this.get(2, 0) * r;
   t3 = this.get(3, 0) * r;
   r = rhs.get(1, 3);
   t0 += this.get(0, 1) * r;
   t1 += this.get(1, 1) * r;
   t2 += this.get(2, 1) * r;
   t3 += this.get(3, 1) * r;
   r = rhs.get(2, 3);
   t0 += this.get(0, 2) * r;
   t1 += this.get(1, 2) * r;
   t2 += this.get(2, 2) * r;
   t3 += this.get(3, 2) * r;
   r = rhs.get(3, 3);
   t0 += this.get(0, 3) * r;
   t1 += this.get(1, 3) * r;
   t2 += this.get(2, 3) * r;
   t3 += this.get(3, 3) * r;
   m.e[index(0, 3)] = t0;
   m.e[index(1, 3)] = t1;
   m.e[index(2, 3)] = t2;
   m.e[index(3, 3)] = t3;
   return m;
 }