public static QuaternionD Euler(double x, double y, double z) { return(QuaternionD.Internal_FromEulerRad(new Vector3d(x, y, z) * (Math.PI / 180.0))); }
private static extern QuaternionD INTERNAL_CALL_Inverse(ref QuaternionD rotation);
/* * public override string ToString() * { * string fmt = "({0:F1}, {1:F1}, {2:F1}, {3:F1})"; * object[] objArray = new object[4]; * int index1 = 0; * // ISSUE: variable of a boxed type * __Boxed<double> local1 = (ValueType) this.x; * objArray[index1] = (object) local1; * int index2 = 1; * // ISSUE: variable of a boxed type * __Boxed<double> local2 = (ValueType) this.y; * objArray[index2] = (object) local2; * int index3 = 2; * // ISSUE: variable of a boxed type * __Boxed<double> local3 = (ValueType) this.z; * objArray[index3] = (object) local3; * int index4 = 3; * // ISSUE: variable of a boxed type * __Boxed<double> local4 = (ValueType) this.w; * objArray[index4] = (object) local4; * return UnityString.Format(fmt, objArray); * } * * public string ToString(string format) * { * string fmt = "({0}, {1}, {2}, {3})"; * object[] objArray = new object[4]; * int index1 = 0; * string str1 = this.x.ToString(format); * objArray[index1] = (object) str1; * int index2 = 1; * string str2 = this.y.ToString(format); * objArray[index2] = (object) str2; * int index3 = 2; * string str3 = this.z.ToString(format); * objArray[index3] = (object) str3; * int index4 = 3; * string str4 = this.w.ToString(format); * objArray[index4] = (object) str4; * return UnityString.Format(fmt, objArray); * } */ public static double Angle(QuaternionD a, QuaternionD b) { return((double)Mathd.Acos(Mathd.Min(Mathd.Abs(QuaternionD.Dot(a, b)), 1.0)) * 2.0 * 57.2957801818848); }
public static double Dot(QuaternionD a, QuaternionD b) { return((double)a.x * (double)b.x + (double)a.y * (double)b.y + (double)a.z * (double)b.z + (double)a.w * (double)b.w); }
public static QuaternionD Inverse(QuaternionD rotation) { return(QuaternionD.INTERNAL_CALL_Inverse(ref rotation)); }
private static extern Vector3d INTERNAL_CALL_Internal_ToEulerRad(ref QuaternionD rotation);
private static void Internal_ToAxisAngleRad(QuaternionD q, out Vector3d axis, out double angle) { QuaternionD.INTERNAL_CALL_Internal_ToAxisAngleRad(ref q, out axis, out angle); }
public static QuaternionD LookRotation(Vector3d forward) { Vector3d up = Vector3d.up; return(QuaternionD.INTERNAL_CALL_LookRotation(ref forward, ref up)); }
public void SetLookRotation(Vector3d view, [DefaultValue("Vector3d.up")] Vector3d up) { this = QuaternionD.LookRotation(view, up); }
public void SetFromToRotation(Vector3d fromDirection, Vector3d toDirection) { this = QuaternionD.FromToRotation(fromDirection, toDirection); }
public static QuaternionD LookRotation(Vector3d forward, [DefaultValue("Vector3d.up")] Vector3d upwards) { return(QuaternionD.INTERNAL_CALL_LookRotation(ref forward, ref upwards)); }
public static QuaternionD FromToRotation(Vector3d fromDirection, Vector3d toDirection) { return(QuaternionD.INTERNAL_CALL_FromToRotation(ref fromDirection, ref toDirection)); }
public void ToAngleAxis(out double angle, out Vector3d axis) { QuaternionD.Internal_ToAxisAngleRad(this, out axis, out angle); angle = angle * 57.29578; }
public static QuaternionD AngleAxis(double angle, Vector3d axis) { return(QuaternionD.INTERNAL_CALL_AngleAxis(angle, ref axis)); }
public static QuaternionD Euler(Vector3d euler) { return(QuaternionD.Internal_FromEulerRad(euler * (Math.PI / 180.0))); }
public static QuaternionD Lerp(QuaternionD from, QuaternionD to, double t) { return(QuaternionD.INTERNAL_CALL_Lerp(ref from, ref to, t)); }
private static Vector3d Internal_ToEulerRad(QuaternionD rotation) { return(QuaternionD.INTERNAL_CALL_Internal_ToEulerRad(ref rotation)); }
private static QuaternionD UnclampedSlerp(QuaternionD from, QuaternionD to, double t) { return(QuaternionD.INTERNAL_CALL_UnclampedSlerp(ref from, ref to, t)); }
private static QuaternionD Internal_FromEulerRad(Vector3d euler) { return(QuaternionD.INTERNAL_CALL_Internal_FromEulerRad(ref euler)); }
private static extern QuaternionD INTERNAL_CALL_UnclampedSlerp(ref QuaternionD from, ref QuaternionD to, double t);
private static extern void INTERNAL_CALL_Internal_ToAxisAngleRad(ref QuaternionD q, out Vector3d axis, out double angle);
public static bool operator !=(QuaternionD lhs, QuaternionD rhs) { return((double)QuaternionD.Dot(lhs, rhs) <= 0.999998986721039); }