public static List <Point> GrahamScan
            (Point start, Point end, List <Point> polygon)
        {
            var algorithm = new RoutingAlgorithmGrahamScan(start, end, polygon);

            return(Apply(algorithm));
        }
        public static List <Point> GrahamScan
            (Point start, Point end, List <Point> polygon)
        {
            var algorithm = new RoutingAlgorithmGrahamScan(start, end, polygon);
            var result    = algorithm.ShortestRoute();

            return(result);
        }
 public static List<Point> GrahamScan(Point start, Point end, List<Point> polygon)
 {
     var algorithm = new RoutingAlgorithmGrahamScan(start, end, polygon);
     return Apply(algorithm);
 }