internal void ReadVertexHeaders(BinaryReader reader, int dataOffset, ArrayBackedList<byte> bufferData)
{
reader.RequireZeroes(4 * 1);
VertexDeclarationIndex = reader.ReadInt32();
VertexSize = reader.ReadInt32();
VertexCount = reader.ReadInt32();
reader.RequireZeroes(4 * 2);
int vertexDataSize = reader.ReadInt32();
if (VertexSize * VertexCount != vertexDataSize)
throw new Exception();
VertexDataOffset = reader.ReadInt32() + dataOffset;
// Read vertex data.
long reset = reader.BaseStream.Position;
reader.BaseStream.Position = VertexDataOffset;
BufferDataOffset = bufferData.Count;
bufferData.AddRange(reader, vertexDataSize);
reader.BaseStream.Position = reset;
}