using System.Collections.Generic;
using XNAModel = Microsoft.Xna.Framework.Graphics.Model;
using Microsoft.Xna.Framework;

namespace MikuMikuDance.XNA.Model.ModelData
{
    /// <summary>
    /// MMDモデルデータクラス(内部用)
    /// </summary>
    public class MMDModelData
    {
        /// <summary>
        /// モデルデータ
        /// </summary>
        public XNAModel ModelData { get; set; }
        /// <summary>
        /// MMD用のボーン情報
        /// </summary>
        public List<MMDBoneData> Bones { get; set; }
        /// <summary>
        /// MMD用の表情情報
        /// </summary>
        public List<MMDSkinData> Skins { get; set; }
        /// <summary>
        /// 表情用の頂点数
        /// </summary>
        public int NumVertexForFace { get; set; }
        /// <summary>
        /// MMD用の剛体情報
        /// </summary>
        public List<MMDRigid> Rigids { get; set; }
        /// <summary>
        /// MMD用のジョイント情報
        /// </summary>
        public List<MMDJoint> Joints { get; set; }
        /// <summary>
        /// シェーダに渡す表情頂点情報
        /// </summary>
        public Vector4[] FaceData { get; set; }
        /// <summary>
        /// シェーダに表情頂点情報を渡す際に使用する頂点テクスチャサイズX
        /// </summary>
        public int FaceDataTextureSizeX { get; set; }
        /// <summary>
        /// シェーダに渡す際に使用する頂点テクスチャサイズY
        /// </summary>
        public int FaceDataTextureSizeY { get; set; }
        /// <summary>
        /// シェーダに表情頂点位置を渡す際に使用する頂点テクスチャサイズX
        /// </summary>
        public int FaceVertTextureSizeX { get; set; }
        /// <summary>
        /// シェーダに表情頂点位置を渡す際に使用する頂点テクスチャサイズY
        /// </summary>
        public int FaceVertTextureSizeY { get; set; }
    }
}
