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

namespace Ghost.Ufbx;

public unsafe partial struct ufbx_cache_frame
{
    /// <summary>
    /// From: <see cref="Api.ufbx_read_geometry_cache_real(ufbx_cache_frame*, float*, nuint, ufbx_geometry_cache_data_opts*)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public nuint ReadGeometryCacheReal(ReadOnlySpan<float> data, ufbx_geometry_cache_data_opts* opts)
    {
        fixed (float* pdata = data)
        {
            return Api.ufbx_read_geometry_cache_real(
                (ufbx_cache_frame*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
                (float*)pdata,
                (nuint)data.Length,
                opts);
        }
    }

    /// <summary>
    /// From: <see cref="Api.ufbx_read_geometry_cache_vec3(ufbx_cache_frame*, ufbx_vec3*, nuint, ufbx_geometry_cache_data_opts*)" />
    /// </summary>
    [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)]
    public nuint ReadGeometryCacheVec3(ReadOnlySpan<ufbx_vec3> data, ufbx_geometry_cache_data_opts* opts)
    {
        fixed (ufbx_vec3* pdata = data)
        {
            return Api.ufbx_read_geometry_cache_vec3(
                (ufbx_cache_frame*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
                (ufbx_vec3*)pdata,
                (nuint)data.Length,
                opts);
        }
    }
}
