// Magica Cloth. // Copyright (c) MagicaSoft, 2020-2022. // https://magicasoft.jp using Unity.Jobs; using UnityEngine; namespace MagicaCloth { /// /// 拘束のベースクラス /// public abstract class PhysicsManagerConstraint { // 反復1回の実行回数 [Range(1, 4)] public int iteration = 1; /// /// 親マネージャ /// public MagicaPhysicsManager Manager { get; set; } //========================================================================================= /// /// 初期化 /// /// public void Init(MagicaPhysicsManager manager) { Manager = manager; Create(); } /// /// データ作成 /// public abstract void Create(); /// /// チームIDのデータを削除 /// /// public abstract void RemoveTeam(int teamId); /// /// データ開放 /// public abstract void Release(); /// /// 拘束の更新回数取得 /// /// public virtual int GetIterationCount() { return iteration; } /// /// 拘束の解決(ステップ回数実行される) /// /// ステップ時間 /// 90upsを基準とした更新力 /// 同フレームでの実行カウント(0~) public abstract JobHandle SolverConstraint(int runCount, float dtime, float updatePower, int iteration, JobHandle jobHandle); } }