// <auto-generated>
// This file is generated by Ghost.NativeWrapperGen. Do not edit manually.
// </auto-generated>

namespace Ghost.Ufbx;

public unsafe partial struct ufbx_anim_value
{
    /// <summary>
    /// From: <see cref="Api.ufbx_evaluate_anim_value_real(ufbx_anim_value*, double)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public float EvaluateReal(double time)
    {
        return Api.ufbx_evaluate_anim_value_real(
            (ufbx_anim_value*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
            time);
    }

    /// <summary>
    /// From: <see cref="Api.ufbx_evaluate_anim_value_vec3(ufbx_anim_value*, double)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public ufbx_vec3 EvaluateVec3(double time)
    {
        return Api.ufbx_evaluate_anim_value_vec3(
            (ufbx_anim_value*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
            time);
    }

    /// <summary>
    /// From: <see cref="Api.ufbx_evaluate_anim_value_real_flags(ufbx_anim_value*, double, uint)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public float EvaluateRealFlags(double time, uint flags)
    {
        return Api.ufbx_evaluate_anim_value_real_flags(
            (ufbx_anim_value*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
            time,
            flags);
    }

    /// <summary>
    /// From: <see cref="Api.ufbx_evaluate_anim_value_vec3_flags(ufbx_anim_value*, double, uint)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public ufbx_vec3 EvaluateVec3Flags(double time, uint flags)
    {
        return Api.ufbx_evaluate_anim_value_vec3_flags(
            (ufbx_anim_value*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
            time,
            flags);
    }
}
