public List <Location> Search(Location start, Location end, double tolerance = 5.0) { //var SearchTask = Task.Factory.StartNew<List<PatherPath.Graph.Location>>(() => //{ // return PG.CreatePath(Convert(start), Convert(end), (float)tolerance); //}, TaskCreationOptions.LongRunning); //Task.WaitAll(SearchTask); //var path = SearchTask.Result; var path = PG.CreatePath(Convert(start), Convert(end), (float)tolerance); if (path != null && path.Locations != null) { return(path.Locations.ConvertAll <Location>(new Converter <PathLoc, Location>((loc) => { return Convert(loc); }))); } else { return(null); } }
public PathLoc Convert(Location loc) { return(new PathLoc(loc.X, loc.Y, loc.Z)); }