Files
GhostEngine/src/ThridParty/Ghost.Ufbx/Wrapper/BlendDeformerList.nativegen.cs
2026-03-15 02:19:40 +09:00

53 lines
1.2 KiB
C#

namespace Ghost.Ufbx;
public unsafe readonly ref struct BlendDeformerList
{
private readonly ufbx_blend_deformer** _data;
public int Count { get; }
internal BlendDeformerList(ufbx_blend_deformer** data, nuint count)
{
_data = data;
Count = checked((int)count);
}
public BlendDeformer this[int index]
{
get
{
NativeWrapperHelpers.ThrowIfOutOfRange(index, Count);
return new(_data[index]);
}
}
public Enumerator GetEnumerator() => new(_data, Count);
public unsafe ref struct Enumerator
{
private readonly ufbx_blend_deformer** _data;
private readonly int _count;
private int _index;
internal Enumerator(ufbx_blend_deformer** data, int count)
{
_data = data;
_count = count;
_index = -1;
}
public BlendDeformer Current => new(_data[_index]);
public bool MoveNext()
{
var next = _index + 1;
if (next >= _count)
{
return false;
}
_index = next;
return true;
}
}
}