public lsl_vector(lsl_vector vector) { x = (float)vector.x; y = (float)vector.y; z = (float)vector.z; }
public static lsl_vector Norm(lsl_vector vector) { double mag = Mag(vector); return new lsl_vector(vector.x / mag, vector.y / mag, vector.z / mag); }
public static lsl_vector Cross(lsl_vector v1, lsl_vector v2) { return new lsl_vector ( v1.y * v2.z - v1.z * v2.y, v1.z * v2.x - v1.x * v2.z, v1.x * v2.y - v1.y * v2.x ); }
public static double Mag(lsl_vector v) { return Math.Sqrt(v.x * v.x + v.y * v.y + v.z * v.z); }
public static double Dot(lsl_vector v1, lsl_vector v2) { return (v1.x * v2.x) + (v1.y * v2.y) + (v1.z * v2.z); }