using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace BansheeEngine
{
/** @addtogroup Animation
* @{
*/
/// A set of animation curves representing translation/rotation/scale and generic animation.
public partial class AnimationCurves : ScriptObject
{
private AnimationCurves(bool __dummy0) { }
public AnimationCurves()
{
Internal_AnimationCurves(this);
}
/// Curves for animating scene object's position.
public NamedVector3Curve[] Position
{
get { return Internal_getPositionCurves(mCachedPtr); }
set { Internal_setPositionCurves(mCachedPtr, value); }
}
/// Curves for animating scene object's rotation.
public NamedQuaternionCurve[] Rotation
{
get { return Internal_getRotationCurves(mCachedPtr); }
set { Internal_setRotationCurves(mCachedPtr, value); }
}
/// Curves for animating scene object's scale.
public NamedVector3Curve[] Scale
{
get { return Internal_getScaleCurves(mCachedPtr); }
set { Internal_setScaleCurves(mCachedPtr, value); }
}
/// Curves for animating generic component properties.
public NamedFloatCurve[] Generic
{
get { return Internal_getGenericCurves(mCachedPtr); }
set { Internal_setGenericCurves(mCachedPtr, value); }
}
/// Registers a new curve used for animating position.
///
/// Unique name of the curve. This name will be used mapping the curve to the relevant bone in a skeleton, if any.
///
/// Curve to add to the clip.
public void AddPositionCurve(string name, Vector3Curve curve)
{
Internal_addPositionCurve(mCachedPtr, name, curve);
}
/// Registers a new curve used for animating rotation.
///
/// Unique name of the curve. This name will be used mapping the curve to the relevant bone in a skeleton, if any.
///
/// Curve to add to the clip.
public void AddRotationCurve(string name, QuaternionCurve curve)
{
Internal_addRotationCurve(mCachedPtr, name, curve);
}
/// Registers a new curve used for animating scale.
///
/// Unique name of the curve. This name will be used mapping the curve to the relevant bone in a skeleton, if any.
///
/// Curve to add to the clip.
public void AddScaleCurve(string name, Vector3Curve curve)
{
Internal_addScaleCurve(mCachedPtr, name, curve);
}
/// Registers a new curve used for generic animation.
///
/// Unique name of the curve. This can be used for retrieving the value of the curve from animation.
///
/// Curve to add to the clip.
public void AddGenericCurve(string name, AnimationCurve curve)
{
Internal_addGenericCurve(mCachedPtr, name, curve);
}
/// Removes an existing curve from the clip.
public void RemovePositionCurve(string name)
{
Internal_removePositionCurve(mCachedPtr, name);
}
/// Removes an existing curve from the clip.
public void RemoveRotationCurve(string name)
{
Internal_removeRotationCurve(mCachedPtr, name);
}
/// Removes an existing curve from the clip.
public void RemoveScaleCurve(string name)
{
Internal_removeScaleCurve(mCachedPtr, name);
}
/// Removes an existing curve from the clip.
public void RemoveGenericCurve(string name)
{
Internal_removeGenericCurve(mCachedPtr, name);
}
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_AnimationCurves(AnimationCurves managedInstance);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_addPositionCurve(IntPtr thisPtr, string name, Vector3Curve curve);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_addRotationCurve(IntPtr thisPtr, string name, QuaternionCurve curve);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_addScaleCurve(IntPtr thisPtr, string name, Vector3Curve curve);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_addGenericCurve(IntPtr thisPtr, string name, AnimationCurve curve);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_removePositionCurve(IntPtr thisPtr, string name);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_removeRotationCurve(IntPtr thisPtr, string name);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_removeScaleCurve(IntPtr thisPtr, string name);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_removeGenericCurve(IntPtr thisPtr, string name);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern NamedVector3Curve[] Internal_getPositionCurves(IntPtr thisPtr);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_setPositionCurves(IntPtr thisPtr, NamedVector3Curve[] value);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern NamedQuaternionCurve[] Internal_getRotationCurves(IntPtr thisPtr);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_setRotationCurves(IntPtr thisPtr, NamedQuaternionCurve[] value);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern NamedVector3Curve[] Internal_getScaleCurves(IntPtr thisPtr);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_setScaleCurves(IntPtr thisPtr, NamedVector3Curve[] value);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern NamedFloatCurve[] Internal_getGenericCurves(IntPtr thisPtr);
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern void Internal_setGenericCurves(IntPtr thisPtr, NamedFloatCurve[] value);
}
/** @} */
}