private List<FaceMaterial> ReadFaceMaterials(BinaryReader reader, int msize)
{
int total = 6;
var list = new List<FaceMaterial>();
while (total < msize)
{
var id = this.ReadChunkId(reader);
int size = this.ReadChunkSize(reader);
total += size;
switch (id)
{
case ChunkID.TRI_FACEMAT:
{
string name = this.ReadString(reader);
int n = reader.ReadUInt16();
var c = new Int32Collection();
for (int i = 0; i < n; i++)
{
c.Add(reader.ReadUInt16());
}
var fm = new FaceMaterial { Name = name, Faces = c };
list.Add(fm);
break;
}
case ChunkID.TRI_SMOOTH:
{
this.ReadData(reader, size - 6);
break;
}
default:
{
this.ReadData(reader, size - 6);
break;
}
}
}
return list;
}