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); }
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); } }