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

namespace Ghost.Ufbx;

public unsafe partial struct ufbx_baked_anim : System.IDisposable
{
    /// <summary>
    /// From: <see cref="Api.ufbx_retain_baked_anim(ufbx_baked_anim*)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public void Retain()
    {
        Api.ufbx_retain_baked_anim((ufbx_baked_anim*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this));
    }

    /// <summary>
    /// From: <see cref="Api.ufbx_free_baked_anim(ufbx_baked_anim*)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public void Dispose()
    {
        Api.ufbx_free_baked_anim((ufbx_baked_anim*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this));
    }

    /// <summary>
    /// From: <see cref="Api.ufbx_find_baked_node_by_typed_id(ufbx_baked_anim*, uint)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public ufbx_baked_node* FindBakedNodeByTypedId(uint typed_id)
    {
        return Api.ufbx_find_baked_node_by_typed_id(
            (ufbx_baked_anim*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
            typed_id);
    }

    /// <summary>
    /// From: <see cref="Api.ufbx_find_baked_node(ufbx_baked_anim*, ufbx_node*)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public ufbx_baked_node* FindBakedNode(ufbx_node* node)
    {
        return Api.ufbx_find_baked_node(
            (ufbx_baked_anim*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
            node);
    }

    /// <summary>
    /// From: <see cref="Api.ufbx_find_baked_element_by_element_id(ufbx_baked_anim*, uint)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public ufbx_baked_element* FindBakedElementByElementId(uint element_id)
    {
        return Api.ufbx_find_baked_element_by_element_id(
            (ufbx_baked_anim*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
            element_id);
    }

    /// <summary>
    /// From: <see cref="Api.ufbx_find_baked_element(ufbx_baked_anim*, ufbx_element*)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public ufbx_baked_element* FindBakedElement(ufbx_element* element)
    {
        return Api.ufbx_find_baked_element(
            (ufbx_baked_anim*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
            element);
    }
}
