public Vector4f transform(float x, float y, float z, float w) { return new Vector4f( m00 * x + m01 * y + m02 * z + m03 * w, m10 * x + m11 * y + m12 * z + m13 * w, m20 * x + m21 * y + m22 * z + m23 * w, m30 * x + m31 * y + m32 * z + m33 * w); }
public Vector4f add(double x, double y, double z, double w) { return add((float) x, (float) y, (float) z, (float) w); }
public Vector4f project(float x, float y, float z, float w) { final float lengthSquared = x * x + y * y + z * z + w * w; if (Math.abs(lengthSquared) < GenericMath.FLT_EPSILON) { throw new ArithmeticException("Cannot project onto the zero vector"); } final float a = dot(x, y, z, w) / lengthSquared; return new Vector4f(a * x, a * y, a * z, a * w); }
@Override public Vector4f div(float a) { return div(a, a, a, a); }
public float distanceSquared(Vector4f v) { return distanceSquared(v.x, v.y, v.z, v.w); }
public float distance(double x, double y, double z, double w) { return distance((float) x, (float) y, (float) z, (float) w); }
public Vector4f project(float x, float y, float z, float w) { final float lengthSquared = x * x + y * y + z * z + w * w; if (Math.abs(lengthSquared) < GenericMath.FLT_EPSILON) { throw new ArithmeticException("Cannot project onto the zero vector"); } final float a = dot(x, y, z, w) / lengthSquared; return new Vector4f(a * x, a * y, a * z, a * w); }
@Override public Vector4f div(float a) { return div(a, a, a, a); }
public float distanceSquared(Vector4f v) { return distanceSquared(v.x, v.y, v.z, v.w); }
public float distance(Vector4f v) { return distance(v.x, v.y, v.z, v.w); }
/** * Converts 4 byte color components to a normalized float color. * * @param r The red component * @param b The blue component * @param g The green component * @param a The alpha component * @return The color as a 4 float vector */ public static Vector4f fromIntRGBA(int r, int g, int b, int a) { return new Vector4f((r & 0xff) / 255f, (g & 0xff) / 255f, (b & 0xff) / 255f, (a & 0xff) / 255f); }
public Vector4f div(Vector4f v) { return div(v.x, v.y, v.z, v.w); }