public bool RemoveLink(int link_id, out LinkPair pair) { if (s_Links.TryGetValue(link_id, out pair)) { return(s_Links.Remove(link_id) && s_Start2Link.Remove(pair.start) && s_End2Link.Remove(pair.end)); } return(false); }
public bool IsConnect(LinkPair queryLink) { List <int> linkIDs = new List <int>(); if (TryGetLinkIDByBegin(queryLink.start, out linkIDs)) { foreach (int id in linkIDs) { LinkPair linkPair; if (TryGetLink(id, out linkPair) && linkPair.end == queryLink.end) { return(true); } } } return(false); }
public void AddLink(LinkPair linkPair) { int id; while (s_Links.ContainsKey(id = s_Rand.Next())) { ; } s_Links.Add(id, linkPair); //add to Start2Link if (s_Start2Link.ContainsKey(linkPair.start) == false) { s_Start2Link.Add(linkPair.start, new List <int>()); } s_Start2Link[linkPair.start].Add(id); //add to End2Link if (s_End2Link.ContainsKey(linkPair.end) == false) { s_End2Link.Add(linkPair.end, new List <int>()); } s_End2Link[linkPair.end].Add(id); }
public void TryCreateLink(LinkPair linkPair) => TryCreateLink(linkPair.start, linkPair.end);
public bool IsConnect(LinkPair linkPair) => m_LinkPool.IsConnect(linkPair);
/// <summary> /// ------------ Link Manager /// </summary> public void AddLink(LinkPair linkPair) => m_LinkPool.AddLink(linkPair);
public bool TryGetLink(int id, out LinkPair link) { return(s_Links.TryGetValue(id, out link)); }