leftTranslateByDouble method

void leftTranslateByDouble(
  1. double tx,
  2. double ty,
  3. double tz,
  4. double tw,
)

Multiply this by a translation from the left.

Implementation

void leftTranslateByDouble(double tx, double ty, double tz, double tw) {
  // Column 1
  final r1 = _m4storage[3];
  _m4storage[0] += tx * r1;
  _m4storage[1] += ty * r1;
  _m4storage[2] += tz * r1;
  _m4storage[3] = tw * r1;

  // Column 2
  final r2 = _m4storage[7];
  _m4storage[4] += tx * r2;
  _m4storage[5] += ty * r2;
  _m4storage[6] += tz * r2;
  _m4storage[7] = tw * r2;

  // Column 3
  final r3 = _m4storage[11];
  _m4storage[8] += tx * r3;
  _m4storage[9] += ty * r3;
  _m4storage[10] += tz * r3;
  _m4storage[11] = tw * r3;

  // Column 4
  final r4 = _m4storage[15];
  _m4storage[12] += tx * r4;
  _m4storage[13] += ty * r4;
  _m4storage[14] += tz * r4;
  _m4storage[15] = tw * r4;
}