public List<Point> GetThirdTierKnownPath(Point start, Point end)
 {
     ClosedPathEndpoints key = new ClosedPathEndpoints(start, end);
     if (this.ThirdTierKnownPaths.ContainsKey(key))
     {
         return this.ThirdTierKnownPaths[key];
     }
     return null;
 }
 public void AddThirdTierKnownPath(List<Point> path)
 {
     if (path != null)
     {
         ClosedPathEndpoints key = new ClosedPathEndpoints(path[0], path[path.Count - 1]);
         if (!this.ThirdTierKnownPaths.ContainsKey(key))
         {
             if (this.ThirdTierKnownPaths.Count > GlobalVariables.MaxCountOfKnownPaths)
             {
                 this.ThirdTierKnownPaths.Clear();
             }
             this.ThirdTierKnownPaths.Add(key, path);
         }
     }
 }