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);
}
/** @} */
}