10 lines
550 B
C#
10 lines
550 B
C#
namespace PamhagenSysCtrl.Helpers.Pipeline {
|
|
public record struct Path(
|
|
INode Start,
|
|
IEnumerable<(IEdge Edge, INode Node)> Hops)
|
|
{
|
|
public readonly double Bends => Hops.Sum(h => (h.Node is not Valve && h.Node is not PipeJoin ? 1 : 0) + (h.Edge.Start.CenterX != h.Edge.End.CenterX && h.Edge.Start.CenterY != h.Edge.End.CenterY ? 1 : 0));
|
|
public readonly double Length => Hops.Sum(h => Math.Abs(h.Edge.Start.CenterX - h.Edge.End.CenterX) + Math.Abs(h.Edge.Start.CenterY - h.Edge.End.CenterY));
|
|
}
|
|
}
|