public static void LoadModel(string filename, out List<ModelMesh> outMeshes)
{
ParseModel(filename);
List<float> verts = new List<float>();
List<int> indices = new List<int>();
List<ModelMesh> meshes = new List<ModelMesh>();
for (int i = 0; i < _meshes.Count; i++)
{
verts.Clear();
indices.Clear();
for (int j = 0; j < _meshes[i].Count; j++)
{
Face face = _meshes[i][j];
for (int k = 0; k < 3; k++)
{
verts.Add(face.Positions[k].X);
verts.Add(face.Positions[k].Y);
verts.Add(face.Positions[k].Z);
verts.Add(face.Normals[k].X);
verts.Add(face.Normals[k].Y);
verts.Add(face.Normals[k].Z);
verts.Add(face.TextureUVs[k].X);
verts.Add(face.TextureUVs[k].Y);
}
}
for (int j = 0; j < verts.Count / 6; j++)
{
indices.Add(j);
}
ModelMesh mesh = new ModelMesh(verts.ToArray(), indices.ToArray(), true);
mesh.SetMaterial(_materialLibrary[_meshes[i][0].MaterialLibrary][_meshes[i][0].MaterialName]);
meshes.Add(mesh);
}
outMeshes = meshes;
_positions.Clear();
_normals.Clear();
_textureUVs.Clear();
_meshes.Clear();
_materialLibrary.Clear();
}