public int AppendVertex(Vector2D v) { int vid = vertices_refcount.Allocate(); int i = 2 * vid; vertices.Insert(v[1], i + 1); vertices.Insert(v[0], i); vertex_edges.Insert(new List <int>(), vid); UpdateTimeStamp(true); return(vid); }
int Add_edge(int a, int b, int gid) { if (b < a) { int t = b; b = a; a = t; } int eid = edges_refcount.Allocate(); int i = 3 * eid; edges.Insert(a, i); edges.Insert(b, i + 1); edges.Insert(gid, i + 2); vertex_edges[a].Add(eid); vertex_edges[b].Add(eid); return(eid); }