57 lines
1.8 KiB
C#
57 lines
1.8 KiB
C#
using Spine.Interfaces;
|
|
using Spine.Interfaces.Attachments;
|
|
using Spine.Utils;
|
|
using SpineRuntime38;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Spine.Implementations.V38
|
|
{
|
|
internal sealed class SkeletonClipping38 : ISkeletonClipping
|
|
{
|
|
private readonly SkeletonClipping _o = new();
|
|
|
|
public bool IsClipping => _o.IsClipping;
|
|
|
|
public float[] ClippedVertices => _o.ClippedVertices.Items;
|
|
|
|
public int ClippedVerticesLength => _o.ClippedVertices.Count;
|
|
|
|
public int[] ClippedTriangles => _o.ClippedTriangles.Items;
|
|
|
|
public int ClippedTrianglesLength => _o.ClippedTriangles.Count;
|
|
|
|
public float[] ClippedUVs => _o.ClippedUVs.Items;
|
|
|
|
public void ClipTriangles(float[] vertices, int verticesLength, int[] triangles, int trianglesLength, float[] uvs)
|
|
=> _o.ClipTriangles(vertices, verticesLength, triangles, trianglesLength, uvs);
|
|
|
|
public void ClipStart(ISlot slot, IClippingAttachment clippingAttachment)
|
|
{
|
|
if (slot is Slot38 st && clippingAttachment is Attachments.ClippingAttachment38 att)
|
|
{
|
|
_o.ClipStart(st.InnerObject, att.InnerObject);
|
|
return;
|
|
}
|
|
throw new ArgumentException($"Received {slot.GetType().Name} {clippingAttachment.GetType().Name}");
|
|
}
|
|
|
|
public void ClipEnd(ISlot slot)
|
|
{
|
|
if (slot is Slot38 st)
|
|
{
|
|
_o.ClipEnd(st.InnerObject);
|
|
return;
|
|
}
|
|
throw new ArgumentException($"Received {slot.GetType().Name}", nameof(slot));
|
|
}
|
|
|
|
public void ClipEnd() => _o.ClipEnd();
|
|
|
|
public override string ToString() => _o.ToString();
|
|
}
|
|
}
|