public Vec4 multiply(final Vec4 vec) { final float x = vec.getX(); final float y = vec.getY(); final float z = vec.getZ(); final float w = vec.getW(); return new Vec4( x * this.data[M00] + y * this.data[M01] + z * this.data[M02] + w * this.data[M03], x * this.data[M10] + y * this.data[M11] + z * this.data[M12] + w * this.data[M13], x * this.data[M20] + y * this.data[M21] + z * this.data[M22] + w * this.data[M23], x * this.data[M30] + y * this.data[M31] + z * this.data[M32] + w * this.data[M33]); }