/// <summary> /// removes the given link from the graph /// </summary> /// <param name="victim"> /// link object to be removed <see cref="hypergraph_link"/> /// </param> public void RemoveLink(hypergraph_link victim) { hypergraph_node node = victim.To; node.Links.Remove(victim); Links.Remove(victim); }
public void LinkByReference(hypergraph_node from_node, hypergraph_node to_node, hypergraph_link link) { link.From = from_node; link.To = to_node; link.To.Add(link); Links.Add(link); }
public void LinkByName(string from_node_name, string to_node_name) { hypergraph_link link = new hypergraph_link(); link.From = GetNode(from_node_name); link.To = GetNode(to_node_name); link.To.Add(link); Links.Add(link); }
public virtual void LinkByID(int from_node_ID, int to_node_ID) { hypergraph_link link = new hypergraph_link(); link.From = GetNode(from_node_ID); link.To = GetNode(to_node_ID); link.To.Add(link); Links.Add(link); }
public void LinkByIndex(int from_node_index, int to_node_index) { hypergraph_link link = new hypergraph_link(); link.From = Nodes[from_node_index]; link.To = Nodes[to_node_index]; link.To.Add(link); Links.Add(link); }
/// <summary> /// propogates the given flag index from the given node /// </summary> /// <param name="node"></param> /// <param name="flag_index"></param> /// <param name="members"></param> public void PropogateFlag(hypergraph_node node, int flag_index, List <hypergraph_node> members) { if (node.Flags[flag_index] == false) { node.Flags[flag_index] = true; members.Add(node); for (int i = 0; i < node.Links.Count; i++) { hypergraph_link link = node.Links[i]; PropogateFlag(link.From, flag_index, members); } } }
/// <summary> /// return the link with the given from ID /// </summary> /// <param name="from_ID">ID to search for</param> /// <returns>link object (null if not found)</returns> public hypergraph_link GetLink(int from_ID) { hypergraph_link lnk = null; int i = 0; while ((i < Links.Count) && (lnk == null)) { if (Links[i] != null) { if (Links[i].From.ID == from_ID) { lnk = Links[i]; } } i++; } return(lnk); }
public void Add(hypergraph_link link) { Links.Add(link); }