public Vertex[] CreateVertices(int count) { Vertex[] buff = new Vertex[count]; for(int i = 0; i < count; i++) buff[i] = CreateVertex(); return buff; }
public Vertex CreateVertex() { Vertex v = new Vertex(); v.OwnerShape = this; v.Idx = Vertices.Count; Vertices.Add(v); return v; }
public void SetVertex(int idx, Vertex v) { if (Vertices[idx] != v) { if (Vertices[idx] != null) { Vertices[idx].OwnerEdges.Remove(this); Vertices[idx] = null; } if (v != null) { Vertices[idx] = v; Vertices[idx].OwnerEdges.Add(this); } } }
public void RemoveVertex(Vertex v) { v.OwnerFaces.Remove(this); Vertices.Remove(v); }
public void AddVertex(Vertex v) { v.OwnerFaces.Add(this); Vertices.Add(v); }
/// <summary> /// Creates N vertices and N edges, joined in a ring /// </summary> /// <param name="num_centre_verts"></param> public void CreateLinkedEdgeAndVertexRing(int num_centre_verts, out Vertex[] vertices, out Edge[] edges) { edges = CreateEdges(num_centre_verts); vertices = CreateVertices(num_centre_verts); for (int i = 0; i < (vertices.Length-1); i++) { edges[i].SetVertex(0, vertices[i]); edges[i].SetVertex(1, vertices[i + 1]); } edges.Last().SetVertex(0, vertices.Last()); edges.Last().SetVertex(1, vertices.First()); }