OSMServer/OSMDatastructure/OsmNode.cs

31 lines
781 B
C#
Raw Normal View History

2023-02-06 17:32:55 +01:00
namespace OSMDatastructure;
2023-02-07 23:52:23 +01:00
public class OsmNode
2023-02-06 17:32:55 +01:00
{
2023-02-07 23:52:23 +01:00
public HashSet<OsmEdge> edges { get; }
2023-02-06 17:32:55 +01:00
public Coordinates coordinates { get; }
2023-02-07 23:52:23 +01:00
public OsmNode? previousPathNode = null;
2023-02-06 17:32:55 +01:00
public double currentPathWeight = double.MaxValue;
2023-02-07 23:52:23 +01:00
public double directDistanceToGoal = double.MaxValue;
2023-02-06 17:32:55 +01:00
2023-02-07 23:52:23 +01:00
public OsmNode(float lat, float lon)
2023-02-06 17:32:55 +01:00
{
this.edges = new();
this.coordinates = new Coordinates(lat, lon);
}
2023-02-07 23:52:23 +01:00
public OsmNode(Coordinates coordinates)
2023-02-06 17:32:55 +01:00
{
this.edges = new();
2023-02-07 23:52:23 +01:00
this.coordinates = coordinates;
2023-02-06 17:32:55 +01:00
}
public OsmEdge? GetEdgeToNode(OsmNode n)
{
foreach (OsmEdge e in this.edges)
if (e.neighborCoordinates.Equals(n.coordinates))
return e;
return null;
}
}