// Function to add a list of triangles, given the triangles' verts (grouped by 3's) public void AddTriangles(List<BasicModelVert> verts) { if (verts.Count == 0) return; for (int i = 0; i < verts.Count; i += 3) { PreResultTriangle tri = new PreResultTriangle(); for (int j = 0; j < 3; j++) { tri.verts[j] = verts[i + j]; tri.v_indices[j] = AddVertex(tri.verts[j].position); } tri.Prepare(); tri.id = triangles.Count; List<int[]> edges = tri.GetEdges(); for(int j = 0; j < 3; j++) foreach (PreResultTriangle other in triangles) { int index = other.IndexOfEdge(edges[j]); if(index != -1) { other.edge_neighbors[index] = tri.id; tri.edge_neighbors[j] = other.id; } } triangles.Add(tri); } }
// Function to add a list of triangles, given the triangles' verts (grouped by 3's) public void AddTriangles(List <BasicModelVert> verts) { if (verts.Count == 0) { return; } for (int i = 0; i < verts.Count; i += 3) { PreResultTriangle tri = new PreResultTriangle(); for (int j = 0; j < 3; j++) { tri.verts[j] = verts[i + j]; tri.v_indices[j] = AddVertex(tri.verts[j].position); } tri.Prepare(); tri.id = triangles.Count; List <int[]> edges = tri.GetEdges(); for (int j = 0; j < 3; j++) { foreach (PreResultTriangle other in triangles) { int index = other.IndexOfEdge(edges[j]); if (index != -1) { other.edge_neighbors[index] = tri.id; tri.edge_neighbors[j] = other.id; } } } triangles.Add(tri); } }