tbf/SchematicDrawing/GEdge.cs

44 lines
1.3 KiB
C#

///
/// Copyright (c) 2020 Sensus Slovensko a.s.
///
using System;
namespace SchematicDrawing
{
public class GEdge
{
public readonly GNode StartNode;
public readonly GNode EndNode;
public readonly int DefaultDist;
public readonly RouteCouple RouteCouple;
public int Dist;
public GEdge(GNode startNode, GNode endNode, int defaultDist, RouteCouple routeCouple)
{
StartNode = startNode;
EndNode = endNode;
DefaultDist = defaultDist;
RouteCouple = routeCouple;
Dist = (routeCouple == RouteCouple.None || routeCouple == RouteCouple.ClosedWhen1) ? DefaultDist : int.MaxValue;
}
public void UpdateFromRoute(bool routeBit)
{
switch (RouteCouple)
{
case RouteCouple.OpenWhen1:
Dist = routeBit ? DefaultDist : int.MaxValue; break;
case RouteCouple.ClosedWhen1:
Dist = routeBit ? int.MaxValue : DefaultDist; break;
}
}
public override string ToString()
{
return string.Format("{0}/{1}-{2}/{3} dist={4}", StartNode.Item.Name, StartNode.NodeId, EndNode.Item.Name, EndNode.NodeId, Dist);
}
}
}