Expand PathNode
This commit is contained in:
parent
1e3979ede4
commit
10e99a9cd2
@ -1,9 +1,27 @@
|
|||||||
|
using OSMDatastructure;
|
||||||
|
|
||||||
namespace Pathfinding;
|
namespace Pathfinding;
|
||||||
|
|
||||||
public class PathNode : OSMDatastructure.Node
|
public class PathNode : OSMDatastructure.Node
|
||||||
{
|
{
|
||||||
|
PathNode? previousNode = null;
|
||||||
|
private Dictionary<Connection, double> distanceDictionary = new();
|
||||||
|
double currentWeight = double.MaxValue;
|
||||||
|
|
||||||
|
|
||||||
public PathNode(float lat, float lon) : base(lat, lon)
|
public PathNode(float lat, float lon) : base(lat, lon)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public double? DistanceTo(Connection connection)
|
||||||
|
{
|
||||||
|
if (!this.GetConnections().Contains(connection))
|
||||||
|
return null; //TODO exception is not actually connected
|
||||||
|
if (!this.distanceDictionary.ContainsKey(connection))
|
||||||
|
this.distanceDictionary.Add(connection, Utils.DistanceBetween(this, connection.endNodeCoordinates));
|
||||||
|
return this.distanceDictionary[connection];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -10,9 +10,10 @@ public class Pathfinder
|
|||||||
{
|
{
|
||||||
RegionManager regionManager = new RegionManager(workingDir);
|
RegionManager regionManager = new RegionManager(workingDir);
|
||||||
Region startRegion = regionManager.GetRegion(start)!; //TODO null handling
|
Region startRegion = regionManager.GetRegion(start)!; //TODO null handling
|
||||||
Node startNode = ClosestNodeToCoordinates(start, startRegion)!; //TODO null handling
|
PathNode startNode = (PathNode)ClosestNodeToCoordinates(start, startRegion)!; //TODO null handling
|
||||||
Region goalRegion = regionManager.GetRegion(goal)!; //TODO null handling
|
Region goalRegion = regionManager.GetRegion(goal)!; //TODO null handling
|
||||||
Node goalNode = ClosestNodeToCoordinates(goal, goalRegion)!; //TODO null handling
|
PathNode goalNode = (PathNode)ClosestNodeToCoordinates(goal, goalRegion)!; //TODO null handling
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user