Exemplo n.º 1
0
        internal static BoneFrameList getBoneFrameList(Stream fs)
        {
            BoneFrameList list = new BoneFrameList();

            try
            {
                list.BoneFrameCount = ParserHelper.getDWORD(fs);
            }
            catch (EndOfStreamException eof)
            {
                list.BoneFrameCount = 0;
                return(list);
            }
            for (int i = 0; i < list.BoneFrameCount; i++)
            {
                list.boneFrameDatas.Add(BoneFrameData.getBoneFrame(fs));
            }
            return(list);
        }
Exemplo n.º 2
0
        internal static BoneFrameData getBoneFrame(Stream fs)
        {
            BoneFrameData boneFrame = new BoneFrameData();

            boneFrame.BoneName               = ParserHelper.getShift_JISString(fs, 15);
            boneFrame.FrameNumber            = ParserHelper.getDWORD(fs);
            boneFrame.BonePosition           = ParserHelper.getFloat3(fs);
            boneFrame.BoneRotatingQuaternion = ParserHelper.getQuaternion(fs);
            //Loading of stored data
            boneFrame.Interpolation = new byte[4][][];
            for (int i = 0; i < 4; i++)
            {
                boneFrame.Interpolation[i] = new byte[4][];
                for (int j = 0; j < 4; j++)
                {
                    boneFrame.Interpolation[i][j] = new byte[4];
                }
            }
            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 4; j++)
                {
                    for (int k = 0; k < 4; k++)
                    {
                        boneFrame.Interpolation[i][j][k] = ParserHelper.getByte(fs);
                    }
                }
            }

            boneFrame.Curves = new BezierCurve[4];
            for (int i = 0; i < boneFrame.Curves.Length; i++)
            {
                BezierCurve curve = new BezierCurve();
                curve.v1            = new Vector2((float)boneFrame.Interpolation[0][0][i] / 128f, (float)boneFrame.Interpolation[0][1][i] / 128f);
                curve.v2            = new Vector2((float)boneFrame.Interpolation[0][2][i] / 128f, (float)boneFrame.Interpolation[0][3][i] / 128f);
                boneFrame.Curves[i] = curve;
            }
            return(boneFrame);
        }