/// <summary> /// Indicate that the edge connecting the vertices u and v forms a ring. /// </summary> /// <param name="u">a vertex</param> /// <param name="v">a vertex connected to u</param> /// <param name="b">bond type connecting u to v</param> private void CyclicEdge(int u, int v, Bond b) { RingClosure r = new RingClosure(u, v, b); AddRing(r.u, r); AddRing(r.v, r); }
/// <summary> /// Add a ring closure to the the vertex 'u'. /// </summary> /// <param name="u"> a vertex</param> /// <param name="rc">ring closure</param> private void AddRing(int u, RingClosure rc) { if (!rings.TryGetValue(u, out IList <RingClosure> closures)) { if (closures == null) { closures = new List <RingClosure>(2); rings.Add(u, closures); } } closures.Add(rc); }