using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; namespace BansheeEngine { /** @addtogroup Animation * @{ */ /// Helper class for dealing with animations, animation clips and curves. public partial class AnimationUtility : ScriptObject { private AnimationUtility(bool __dummy0) { } protected AnimationUtility() { } /// Converts a curve in euler angles (in degrees) into a curve using quaternions. public static QuaternionCurve EulerToQuaternionCurve(Vector3Curve eulerCurve) { return Internal_eulerToQuaternionCurve(eulerCurve); } /// Converts a curve in quaternions into a curve using euler angles (in degrees). public static Vector3Curve QuaternionToEulerCurve(QuaternionCurve quatCurve) { return Internal_quaternionToEulerCurve(quatCurve); } /// Splits a Vector3 curve into three individual curves, one for each component. public static AnimationCurve[] SplitCurve(Vector3Curve compoundCurve) { return Internal_splitCurve(compoundCurve); } /// Combines three single component curves into a Vector3 curve. public static Vector3Curve CombineCurve(AnimationCurve[] curveComponents) { return Internal_combineCurve(curveComponents); } public static void CalculateRange(AnimationCurve[] curves, out float xMin, out float xMax, out float yMin, out float yMax) { Internal_calculateRange(curves, out xMin, out xMax, out yMin, out yMax); } [MethodImpl(MethodImplOptions.InternalCall)] private static extern QuaternionCurve Internal_eulerToQuaternionCurve(Vector3Curve eulerCurve); [MethodImpl(MethodImplOptions.InternalCall)] private static extern Vector3Curve Internal_quaternionToEulerCurve(QuaternionCurve quatCurve); [MethodImpl(MethodImplOptions.InternalCall)] private static extern AnimationCurve[] Internal_splitCurve(Vector3Curve compoundCurve); [MethodImpl(MethodImplOptions.InternalCall)] private static extern Vector3Curve Internal_combineCurve(AnimationCurve[] curveComponents); [MethodImpl(MethodImplOptions.InternalCall)] private static extern void Internal_calculateRange(AnimationCurve[] curves, out float xMin, out float xMax, out float yMin, out float yMax); } /** @} */ }