//-------------------------------------------------------------------------------------------------------------------------------- private void LaunchRouteSearch(object data) { Debug.WriteLine("launched search thread"); long startTicks = DateTime.Now.Ticks; IList <Route> routes = (IList <Route>)data; totalDistance = 0; maxCargo = 0; maxPassenger = 0; sb = new StringBuilder(); using (aStarSearch = new AStarRoute()) { aStarSearch.CostScale = (int)numericUpDownScale.Value; IList <FlightPlanLeg> legs = aStarSearch.CalculateRoute(routes, AirportData.Airports); for (int i = 1; i < legs.Count; ++i) { FlightPlanLeg prev = legs[i - 1]; FlightPlanLeg curr = legs[i]; int distance = prev.airportData.DistanceTo(curr.airportData); totalDistance += distance; maxCargo = Math.Max(maxCargo, prev.cargo); maxPassenger = Math.Max(maxPassenger, prev.passenger); sb.AppendFormat("{0} -> {1} {2,5}nm {3,6}lb {4,4}p", prev.airportData.ICAO, curr.airportData.ICAO, distance, prev.cargo, prev.passenger); sb.AppendLine(); } } var duration = TimeSpan.FromTicks(DateTime.Now.Ticks - startTicks).TotalSeconds; Debug.WriteLine(string.Format("search done: {0}s", duration)); Invoke(new OnFinished(OnSearchDone)); }
public void TestMethod1() { IList <Route> routes = testRouteShort; AStarRoute search = new AStarRoute(); IList <FlightPlanLeg> legs = search.CalculateRoute(routes, AirportData.Airports); System.Text.StringBuilder sb = new System.Text.StringBuilder(); int totalDistance = 0; for (int i = 1; i < legs.Count; ++i) { FlightPlanLeg prev = legs[i - 1]; FlightPlanLeg curr = legs[i]; int distance = prev.airportData.DistanceTo(curr.airportData); sb.AppendFormat("{0} -> {1} {2,5}nm {3,6}lb {4,4}p", prev.airportData.ICAO, curr.airportData.ICAO, distance, prev.cargo, prev.passenger); sb.AppendLine(); totalDistance += distance; } Debug.WriteLine(sb.ToString()); Debug.WriteLine("Total: " + totalDistance); }