private void addFaceVert(Face f, int v) { List<Face> faces; if (this.vertexToFace.TryGetValue(v, out faces)) { faces.Add(f); } else { this.vertexToFace[v] = new List<Face>() { f }; } }
public Vec3 GetFaceCenter(Face faceToExtrude) { return LinearAlgebra.GetCenter(faceToExtrude.GetVertexPositions()); }
public void RemoveFace(Face face) { this.faces.Remove(face); }
public static Model ConstructFromVerticesAndIndices(List<Vec3> vertices, params List<int>[] indices) { Model toReturn = new Model(); toReturn.vertices = vertices; foreach (var faceSet in indices) { var newFace = new Face(faceSet, toReturn); toReturn.faces.Add(newFace); for (int i = 0; i < faceSet.Count; i++) { var idx1 = i; var idx2 = (i + 1) % faceSet.Count; var e = new Edge(idx1, idx2); toReturn.edges.Add(e); toReturn.addEdgeVert(e, i); toReturn.addFaceVert(newFace, i); } } return toReturn; }