package jo.vecmath.logic;
import java.nio.FloatBuffer;
import jo.sm.logic.utils.BufferLogic;
import jo.vecmath.Tuple3f;
public class Tuple3fLogic extends MathUtils {
public static float mag(Tuple3f v) {
return (float) Math.sqrt(v.x * v.x + v.y * v.y + v.z * v.z);
}
public static void normalize(Tuple3f v) {
v.scale(1 / mag(v));
}
public static float[] toFloatArray(Tuple3f v) {
return new float[]{v.x, v.y, v.z};
}
public static FloatBuffer toFloatBuffer(Tuple3f v) {
return BufferLogic.create(toFloatArray(v));
}
public static String toIntString(Tuple3f v) {
return "[" + (int) v.x + ", " + (int) v.y + ", " + (int) v.z + "]";
}
public static float distance(Tuple3f v, float x, float y, float z) {
return sqrt((v.x - x) * (v.x - x) + (v.y - y) * (v.y - y) + (v.z - z) * (v.z - z));
}
public static float dot(Tuple3f a, Tuple3f b) {
return a.x * b.x + a.y * b.y + a.z * b.z;
}
}