using System;
using System.Collections.Frozen;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Spine.Interfaces
{
public interface ISkeleton
{
///
/// 物理约束
///
public enum Physics { None, Reset, Update, Pose }
///
/// R
///
public float R { get; set; }
///
/// G
///
public float G { get; set; }
///
/// B
///
public float B { get; set; }
///
/// A
///
public float A { get; set; }
///
/// 横坐标
///
public float X { get; set; }
///
/// 纵坐标
///
public float Y { get; set; }
///
/// 水平缩放, 负数时会翻转
///
public float ScaleX { get; set; }
///
/// 垂直缩放, 负数时会翻转
///
public float ScaleY { get; set; }
///
/// 所有骨骼按顺序
///
public ImmutableArray Bones { get; }
///
/// 所有骨骼按名称
///
public FrozenDictionary BonesByName { get; }
///
/// 所有插槽按顺序
///
public ImmutableArray Slots { get; }
///
/// 所有插槽按名称
///
public FrozenDictionary SlotsByName { get; }
///
/// 皮肤, 可以设置 null 值清除皮肤
///
public ISkin? Skin { get; set; }
///
/// 遍历渲染时槽顺序
///
public IEnumerable IterDrawOrder();
///
/// 更新附件约束等的缓存
///
public void UpdateCache();
///
/// 更新变换
///
public void UpdateWorldTransform(Physics physics);
///
/// 重置所有参数至初始值
///
public void SetToSetupPose();
///
/// 重置所有骨骼参数至初始值
///
public void SetBonesToSetupPose();
///
/// 重置所有插槽参数至初始值
///
public void SetSlotsToSetupPose();
///
/// 更新时间
///
public void Update(float delta);
}
}