private static List <WorldVertex[]> OptimizeGeometry(WorldVertex[] verts, VisualModes.VisualGeometryType geotype, bool skiprectoptimization) { List <WorldVertex[]> groups = new List <WorldVertex[]>(); if (!skiprectoptimization && verts.Length == 6) //rectangular surface { if (geotype == VisualModes.VisualGeometryType.CEILING) { verts = new[] { verts[2], verts[5], verts[1], verts[0] }; } else { verts = new[] { verts[5], verts[2], verts[1], verts[0] }; } groups.Add(verts); } else { for (int i = 0; i < verts.Length; i += 3) { groups.Add(new[] { verts[i + 2], verts[i + 1], verts[i] }); } } return(groups); }
private static List <WorldVertex[]> OptimizeGeometry(WorldVertex[] verts, VisualModes.VisualGeometryType geotype) { return(OptimizeGeometry(verts, geotype, false)); }