public MaterialData(BinaryReader reader) { var startPos = reader.BaseStream.Position; Name = BiffUtil.ReadNullTerminatedString(reader, 32); BaseColor = reader.ReadInt32(); Glossiness = reader.ReadInt32(); ClearCoat = reader.ReadInt32(); WrapLighting = reader.ReadSingle(); IsMetal = reader.ReadByte(); reader.BaseStream.Seek(3, SeekOrigin.Current); Roughness = reader.ReadSingle(); GlossyImageLerp = reader.ReadByte(); reader.BaseStream.Seek(3, SeekOrigin.Current); Edge = reader.ReadSingle(); Thickness = reader.ReadByte(); reader.BaseStream.Seek(3, SeekOrigin.Current); Opacity = reader.ReadSingle(); OpacityActiveEdgeAlpha = reader.ReadByte(); reader.BaseStream.Seek(3, SeekOrigin.Current); var remainingSize = Size - (reader.BaseStream.Position - startPos); if (remainingSize != 0) { throw new InvalidOperationException("There are still " + remainingSize + " bytes left to read."); } }
public PhysicsMaterialData(BinaryReader reader) { var startPos = reader.BaseStream.Position; Name = BiffUtil.ReadNullTerminatedString(reader, 32); Elasticity = reader.ReadSingle(); ElasticityFallOff = reader.ReadSingle(); Friction = reader.ReadSingle(); ScatterAngle = reader.ReadSingle(); var remainingSize = Size - (reader.BaseStream.Position - startPos); if (remainingSize > 0) { throw new InvalidOperationException("There are still " + remainingSize + " bytes left to read."); //reader.BaseStream.Seek(remainingSize, SeekOrigin.Current); } }