// 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);
}
}