예제 #1
0
        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);
        }
예제 #2
0
        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);
        }