internal static bool IsForbidden(VisibilityEdge e) {
     return e.IsPassable != null && !e.IsPassable() || e is TollFreeVisibilityEdge;
 }
 private static bool IsPassable(VisibilityEdge edge) {
     return edge.IsPassable == null || edge.IsPassable();
 }
 static string GetEdgeColor(VisibilityEdge e, Port sourcePort, Port targetPort) {
     if (sourcePort == null || targetPort == null)
         return "green";
     if (ApproximateComparer.Close(e.SourcePoint, sourcePort.Location) ||
         ApproximateComparer.Close(e.SourcePoint, targetPort.Location)
         || ApproximateComparer.Close(e.TargetPoint, sourcePort.Location) ||
         ApproximateComparer.Close(e.TargetPoint, targetPort.Location))
         return "lightgreen";
     return e.IsPassable == null || e.IsPassable() ? "green" : "red";
 }