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

namespace MikuMikuDance.XNA.Model.ModelData
{
    /// <summary>
    /// MMDモデルデータクラス(内部用)
    /// </summary>
    public class MMDModelData//このクラスは参照型にする。なぜならこのクラスの受け渡しが多いため
    {
        /// <summary>
        /// モデルデータ
        /// </summary>
        public XNAModel ModelData;
        /// <summary>
        /// MMD用のボーン情報
        /// </summary>
        public MMDBoneData[] Bones;
        /// <summary>
        /// MMD用の表情情報
        /// </summary>
        public MMDSkinData[] Skins;
        /// <summary>
        /// 表情用の頂点数
        /// </summary>
        public int NumVertexForFace;
        /// <summary>
        /// MMD用の剛体情報
        /// </summary>
        public MMDRigidData[] Rigids;
        /// <summary>
        /// MMD用のジョイント情報
        /// </summary>
        public MMDJointData[] Joints;
        /// <summary>
        /// シェーダに渡す表情頂点情報
        /// </summary>
        public Vector4[] FaceData;
        /// <summary>
        /// シェーダに表情頂点情報を渡す際に使用する頂点テクスチャサイズX
        /// </summary>
        public int FaceDataTextureSizeX;
        /// <summary>
        /// シェーダに渡す際に使用する頂点テクスチャサイズY
        /// </summary>
        public int FaceDataTextureSizeY;
        /// <summary>
        /// シェーダに表情頂点位置を渡す際に使用する頂点テクスチャサイズX
        /// </summary>
        public int FaceVertTextureSizeX;
        /// <summary>
        /// シェーダに表情頂点位置を渡す際に使用する頂点テクスチャサイズY
        /// </summary>
        public int FaceVertTextureSizeY;
    }
}
