public AppleMatrix(BigEndianBinaryReader stream) { Location = stream.BaseStream.Position; M11 = Fixed.Float(stream.ReadUInt32(), 16); M12 = Fixed.Float(stream.ReadUInt32(), 16); M13 = Fixed.Float(stream.ReadUInt32(), 30); M21 = Fixed.Float(stream.ReadUInt32(), 16); M22 = Fixed.Float(stream.ReadUInt32(), 16); M23 = Fixed.Float(stream.ReadUInt32(), 30); M31 = Fixed.Float(stream.ReadUInt32(), 16); M32 = Fixed.Float(stream.ReadUInt32(), 16); M33 = Fixed.Float(stream.ReadUInt32(), 30); }
public Single Heigth; //Actually 16.16 floating point! public TrackHeader(BigEndianBinaryReader stream) { Version = stream.ReadByte(); Flags = stream.ReadBytes(3); CreationTime = stream.ReadUInt32(); ModificatonTime = stream.ReadUInt32(); TrackId = stream.ReadUInt32(); Reserved1 = stream.ReadUInt32(); Duration = stream.ReadUInt32(); Reserved2 = stream.ReadUInt64(); Layer = stream.ReadUInt16(); AlternateGroup = stream.ReadUInt16(); Volume = Fixed.Float(stream.ReadUInt16(), 8); Reserved3 = stream.ReadUInt16(); Matrix = new AppleMatrix(stream); Width = Fixed.Float(stream.ReadUInt32(), 16); Heigth = Fixed.Float(stream.ReadUInt32(), 16); }