Aetheria/Assets/Scripts/NIH/MSAGL/Layout/Layered/FlatEdgeRouter.cs
hyperion51 01a956eef6 MSAGL Support
Added new tech tree layout implementation using Microsoft Automatic Graph Layouts
Added some functionality to the database editor tools
2020-04-14 00:42:04 +01:00

29 lines
1,019 B
C#

using Microsoft.Msagl.Core;
namespace Microsoft.Msagl.Layout.Layered {
internal class FlatEdgeRouter : AlgorithmBase {
readonly Routing routing;
private SugiyamaLayoutSettings settings;
int[][] Layers { get { return routing.LayerArrays.Layers; } }
internal FlatEdgeRouter(SugiyamaLayoutSettings settings, Routing routing)
{
this.settings = settings;
this.routing = routing;
}
protected override void RunInternal()
{
for (int i = 0; i < Layers.Length; i++) {
this.ProgressStep();
RouteFlatEdgesBetweenTwoLayers(Layers[i],
i < Layers.Length - 1 ? Layers[i + 1] : new int[0]);
}
}
private void RouteFlatEdgesBetweenTwoLayers(int[] lowerLayer, int[] upperLayer) {
var twoLayerRouter = new TwoLayerFlatEdgeRouter(settings, routing,
lowerLayer, upperLayer);
twoLayerRouter.Run();
}
}
}