From f266c6c7e6a5d9c5159091bbc9837916a28f26f9 Mon Sep 17 00:00:00 2001 From: glax Date: Thu, 6 Apr 2023 14:31:38 +0200 Subject: [PATCH] ClosestNode no longer requires Region parameter, because regionmanager is passed. --- Pathfinding/Pathfinder.cs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/Pathfinding/Pathfinder.cs b/Pathfinding/Pathfinder.cs index 495e66b..ea08b57 100644 --- a/Pathfinding/Pathfinder.cs +++ b/Pathfinding/Pathfinder.cs @@ -8,14 +8,9 @@ public static class Pathfinder { public static List CustomAStar(string workingDir, Coordinates start, Coordinates goal, Tag.SpeedType vehicle) { - RegionManager regionManager = new RegionManager(workingDir); - Region? startRegion = regionManager.GetRegion(start); - Region? goalRegion = regionManager.GetRegion(goal); - if (startRegion is null || goalRegion is null) - return new List(); - - OsmNode? startNode = ClosestNodeToCoordinates(start, startRegion, vehicle, ref regionManager); - OsmNode? goalNode = ClosestNodeToCoordinates(goal, goalRegion, vehicle, ref regionManager); + RegionManager regionManager = new (workingDir); + OsmNode? startNode = ClosestNodeToCoordinates(start, vehicle, ref regionManager); + OsmNode? goalNode = ClosestNodeToCoordinates(goal, vehicle, ref regionManager); if (startNode == null || goalNode == null) return new List(); @@ -71,10 +66,13 @@ public static class Pathfinder return path; } - private static OsmNode? ClosestNodeToCoordinates(Coordinates coordinates, Region region, Tag.SpeedType vehicle, ref RegionManager regionManager) + public static OsmNode? ClosestNodeToCoordinates(Coordinates coordinates, Tag.SpeedType vehicle, ref RegionManager regionManager) { OsmNode? closest = null; double distance = double.MaxValue; + Region? region = regionManager.GetRegion(coordinates); + if (region is null) + return null; foreach (OsmNode node in region.nodes) { bool hasConnectionUsingVehicle = false;