using System;
using System.Threading.Tasks;
using UniGLTF;
using UniGLTF.SpringBoneJobs.Blittables;
using UnityEngine;
namespace UniVRM10
{
public interface IVrm10SpringBoneRuntime : IDisposable
{
public Task InitializeAsync(Vrm10Instance instance, IAwaitCaller awaitCaller);
///
/// SpringBone の構成変更を反映して再構築する。
///
public bool ReconstructSpringBone();
///
/// initialTransform 状態に復帰。verlet の速度 も 0 に。
///
public void RestoreInitialTransform();
///
/// Joint レベルの可変情報をセットする
/// stiffness,
///
public void SetJointLevel(Transform joint, BlittableJointMutable jointSettings);
///
/// Model レベルの可変情報をセットする
/// 風, pause, scaling
///
public void SetModelLevel(Transform modelRoot, BlittableModelLevel modelSettings);
///
/// System レベルの可変情報
/// TODO: デザイン検討中。
/// deltaTime のカスタマイズポイント。通常は Time.dletaTime
///
// public float DeltaTime { get; }
///
/// 毎フレーム Vrm10Runtime.Process から呼ばれる。
///
public void Process();
}
}