code: public Matrix4f translate(float x, float y, float z) {
          if ((properties & PROPERTY_IDENTITY) != 0)
              return translation(x, y, z);
          this._m30(m00 * x + m10 * y + m20 * z + m30);
          this._m31(m01 * x + m11 * y + m21 * z + m31);
          this._m32(m02 * x + m12 * y + m22 * z + m32);
          this._m33(m03 * x + m13 * y + m23 * z + m33);
          properties &= ~(PROPERTY_PERSPECTIVE | PROPERTY_IDENTITY);
          return this;
      }
docs: Apply a translation to this matrix by translating by the given number of
  units in x, y and z.
  <p>
  If <code>M</code> is <code>this</code> matrix and <code>T</code> the translation
  matrix, then the new matrix will be <code>M * T</code>. So when
  transforming a vector <code>v</code> with the new matrix by using
  <code>M * T * v</code>, the translation will be applied first!
  <p>
  In order to set the matrix to a translation transformation without post-multiplying
  it, use {@link #translation(float, float, float)}.
  
  @see #translation(float, float, float)
  
  @param x
  the offset to translate in x
  @param y
  the offset to translate in y
  @param z
  the offset to translate in z
  @return this