/**
 * Copyright(c) Live2D Inc. All rights reserved.
 *
 * Use of this source code is governed by the Live2D Open Software license
 * that can be found at https://www.live2d.com/eula/live2d-open-software-license-agreement_en.html.
 */
using System;
using UnityEngine;
namespace Live2D.Cubism.Framework.Physics
{
    /// 
    /// Physics rig.
    /// 
    [Serializable]
    public class CubismPhysicsRig
    {
        /// 
        /// Children of rig.
        /// 
        [SerializeField]
        public CubismPhysicsSubRig[] SubRigs;
        [SerializeField]
        public Vector2 Gravity = CubismPhysics.Gravity;
        [SerializeField]
        public Vector2 Wind = CubismPhysics.Wind;
        /// 
        /// Reference of controller to refer from children rig.
        /// 
        public CubismPhysicsController Controller { get; set; }
        /// 
        /// Initializes rigs.
        /// 
        public void Initialize()
        {
            for (var i = 0; i < SubRigs.Length; ++i)
            {
                SubRigs[i].Initialize();
            }
        }
        /// 
        /// Evaluate rigs.
        /// 
        /// 
        public void Evaluate(float deltaTime)
        {
            for (var i = 0; i < SubRigs.Length; ++i)
            {
                SubRigs[i].Evaluate(deltaTime);
            }
        }
    }
}