public static Polygon Read(BinaryReader reader, Package package)
{
int vertexCount = UIndex.Read(reader);
Polygon result = new Polygon() {
Vertices = new Vector3f[vertexCount],
Base = reader.ReadVector3f(),
Normal = reader.ReadVector3f(),
TextureU = reader.ReadVector3f(),
TextureV = reader.ReadVector3f()
};
for (var index = 0; index < vertexCount; index++)
result.Vertices[index] = reader.ReadVector3f();
result.Flags = reader.ReadInt32();
result.ActorReference = package.ReadReference(reader);
result.TextureReference = package.ReadReference(reader);
result.ItemName = package.ReadNameValue(reader);
result.Link = UIndex.Read(reader);
result.BrushPolygon = UIndex.Read(reader);
result.PanU = reader.ReadUInt16();
result.PanV = reader.ReadUInt16();
return result;
}