示例#1
0
        private static float[] Read(HSDReader d, GXCompType type, int size)
        {
            switch (type)
            {
            case GXCompType.UInt16: size /= 2; break;

            case GXCompType.Int16: size /= 2; break;

            case GXCompType.Float: size /= 4; break;
            }

            float[] a = new float[size];

            switch (type)
            {
            case GXCompType.UInt8:
                for (int i = 0; i < size; i++)
                {
                    a[i] = d.ReadByte();
                }
                break;

            case GXCompType.Int8:
                for (int i = 0; i < size; i++)
                {
                    a[i] = d.ReadSByte();
                }
                break;

            case GXCompType.UInt16:
                for (int i = 0; i < size; i++)
                {
                    a[i] = d.ReadUInt16();
                }
                break;

            case GXCompType.Int16:
                for (int i = 0; i < size; i++)
                {
                    a[i] = d.ReadInt16();
                }
                break;

            case GXCompType.Float:
                for (int i = 0; i < size; i++)
                {
                    a[i] = d.ReadSingle();
                }
                break;

            default:
                for (int i = 0; i < size; i++)
                {
                    a[i] = d.ReadByte();
                }
                break;
            }

            return(a);
        }
示例#2
0
        private static double ReadVal(HSDReader d, GXAnimDataFormat Format, float Scale)
        {
            d.BigEndian = false;
            switch (Format)
            {
            case GXAnimDataFormat.Float:
                return(d.ReadSingle());

            case GXAnimDataFormat.Short:
                return(d.ReadInt16() / (double)Scale);

            case GXAnimDataFormat.UShort:
                return(d.ReadUInt16() / (double)Scale);

            case GXAnimDataFormat.SByte:
                return(d.ReadSByte() / (double)Scale);

            case GXAnimDataFormat.Byte:
                return(d.ReadByte() / (double)Scale);

            default:
                return(0);
            }
        }