Esempio n. 1
0
 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);
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 public void TryCreateLink(LinkPair linkPair) => TryCreateLink(linkPair.start, linkPair.end);
Esempio n. 5
0
 public bool IsConnect(LinkPair linkPair) => m_LinkPool.IsConnect(linkPair);
Esempio n. 6
0
/// <summary>
/// ------------ Link Manager
/// </summary>
        public void AddLink(LinkPair linkPair) => m_LinkPool.AddLink(linkPair);
Esempio n. 7
0
 public bool TryGetLink(int id, out LinkPair link)
 {
     return(s_Links.TryGetValue(id, out link));
 }