public void read(Reader reader) { if (!reader.readBytes(4).SequenceEqual(signature)) { reader.Close(); throw new Exception("Invalid Model v4 signature"); } ushort vertCount = reader.ReadUInt16(); textureUVs.Clear(); for (int t = 0; t < vertCount; t++) { TextureUV uv = new TextureUV(); uv.u = reader.ReadSingle(); uv.v = reader.ReadSingle(); textureUVs.Add(uv); } int indexCount = reader.ReadUInt16() * 3; indices.Clear(); for (int i = 0; i < indexCount; ++i) { indices.Add(reader.ReadUInt16()); } ushort frameCount = reader.ReadUInt16(); frames.Clear(); for (int f = 0; f < frameCount; ++f) { Frame frame = new Frame(); for (int v = 0; v < vertCount; ++v) { Vertex vert = new Vertex(); vert.x = reader.ReadSingle(); vert.y = reader.ReadSingle(); vert.z = reader.ReadSingle(); vert.nx = reader.ReadSingle(); vert.ny = reader.ReadSingle(); vert.nz = reader.ReadSingle(); frame.vertices.Add(vert); } frames.Add(frame); } reader.Close(); }