/// <summary> /// Calculates a shortest route from a given point to any of the targets points. /// </summary> /// <param name="vehicle">The vehicle profile.</param> /// <param name="source">The source point.</param> /// <param name="targets">The target point(s).</param> /// <returns></returns> public Route CalculateToClosest(Vehicle vehicle, RouterPoint source, RouterPoint[] targets) { if (vehicle == null) { throw new ArgumentNullException("vehicle"); } if (source == null) { throw new ArgumentNullException("source"); } if (targets == null) { throw new ArgumentNullException("targets"); } foreach (var target in targets) { if (source.Vehicle.UniqueName != target.Vehicle.UniqueName) { // vehicles are different. throw new ArgumentException(string.Format("Not all vehicle profiles match, {0} and {1} are given, expecting identical profiles.", source.Vehicle.UniqueName, target.Vehicle.UniqueName)); } if (vehicle.UniqueName != target.Vehicle.UniqueName) { // vehicles are different. throw new ArgumentException(string.Format("Given vehicle profile does not match resolved points, {0} and {1} are given, expecting identical profiles.", vehicle.UniqueName, target.Vehicle.UniqueName)); } } return(_router.CalculateToClosest(vehicle, source, targets)); }
/// <summary> /// Calculates a shortest route from a given point to any of the targets points. /// </summary> /// <param name="vehicle">The vehicle profile.</param> /// <param name="source">The source point.</param> /// <param name="targets">The target point(s).</param> /// <returns></returns> public Route CalculateToClosest(Vehicle vehicle, RouterPoint source, RouterPoint[] targets) { return(_router.CalculateToClosest(vehicle, source, targets)); }