44 lines
1.3 KiB
C#
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);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|