public void RandomDotFileTests() { int line, column; string msg; string fileName = Path.Combine(this.TestContext.TestDir, "Out\\Dots\\fsm.dot"); Drawing.Graph drawGraph = Parser.Parse(fileName, out line, out column, out msg); drawGraph.CreateGeometryGraph(); GeometryGraph graph = drawGraph.GeometryGraph; GraphGenerator.SetRandomNodeShapes(graph, random); LayeredLayout layeredLayout = new LayeredLayout(graph, new SugiyamaLayoutSettings() { BrandesThreshold = 1 }); layeredLayout.Run(); string[] allFiles = Directory.GetFiles(Path.Combine(this.TestContext.TestDir, "Out\\Dots"), "*.dot"); List <int> selected = new List <int>(); for (int i = 0; i < 10; i++) { int next = random.Next(allFiles.Length); while (selected.Contains(next)) { next = random.Next(allFiles.Length); } selected.Add(next); WriteLine("Now handling dot file: " + allFiles[next]); drawGraph = Parser.Parse(allFiles[next], out line, out column, out msg); drawGraph.CreateGeometryGraph(); graph = drawGraph.GeometryGraph; GraphGenerator.SetRandomNodeShapes(graph, random); LayerDirection direction = LayerDirection.None; switch (i % 4) { case 0: direction = LayerDirection.TopToBottom; break; case 1: direction = LayerDirection.BottomToTop; break; case 2: direction = LayerDirection.LeftToRight; break; case 3: direction = LayerDirection.RightToLeft; break; } LayoutAndValidate(graph, (SugiyamaLayoutSettings)drawGraph.LayoutAlgorithmSettings, direction); } }
void ChangeDirection(LayerDirection dir) { CheckDirectionMenu(dir); Graph g = diagram.Graph; if (g != null) { g.Attr.LayerDirection = direction; diagram.OnGraphChanged(); } }
//визуализация дерева private void Visualize(Graph graph, Grid grid, LayerDirection layerDirection) { //TreeGridView System.Windows.Forms.Integration.WindowsFormsHost host = new System.Windows.Forms.Integration.WindowsFormsHost(); //create a viewer object GViewer viewer = new GViewer(); //create the graph content graph.Attr.LayerDirection = layerDirection; //bind the graph to the viewer viewer.Graph = graph; //associate the viewer with the form viewer.Dock = DockStyle.Fill; host.Child = viewer; grid.Children.Add(host); }
private void rbLR_CheckedChanged(object sender, EventArgs e) { if (rbLR.Checked) { userLayerDirection = LayerDirection.LR; } if (rbTB.Checked) { userLayerDirection = LayerDirection.TB; sugiyamaSettings.Transformation = planeTB; } if (rbRL.Checked) { userLayerDirection = LayerDirection.RL; } if (rbBT.Checked) { userLayerDirection = LayerDirection.BT; } regenerateMaster(); }
private static void LayoutAndValidate(GeometryGraph graph, SugiyamaLayoutSettings settings, double nodeSeparation, double layerSeparation, LayerDirection direction) { settings.NodeSeparation = nodeSeparation; switch (direction) { case LayerDirection.None: case LayerDirection.TopToBottom: break; case LayerDirection.BottomToTop: settings.Transformation = PlaneTransformation.Rotation(Math.PI); break; case LayerDirection.LeftToRight: settings.Transformation = PlaneTransformation.Rotation(Math.PI / 2); break; case LayerDirection.RightToLeft: settings.Transformation = PlaneTransformation.Rotation(-Math.PI / 2); break; } settings.LayerSeparation = layerSeparation; LayeredLayout layeredLayout = new LayeredLayout(graph, settings); layeredLayout.Run(); ShowGraphInDebugViewer(graph); // SugiyamaValidation.ValidateGraph(graph, settings); }
private static void LayoutAndValidate(GeometryGraph graph, SugiyamaLayoutSettings settings, LayerDirection direction) { LayoutAndValidate(graph, settings, settings.NodeSeparation, settings.LayerSeparation, direction); }
public MoveLayerAction(LayerDirection direction, int layerID) { _direction = direction; _layerID = layerID; }
private void Button_Direction_Click(object sender, EventArgs e) { if (Direction == LayerDirection.TB) { Direction = LayerDirection.LR; Button_Direction.Text = "L"; } else { Direction = LayerDirection.TB; Button_Direction.Text = "T"; } }
void CheckDirectionMenu(LayerDirection dir) { Check(direction.ToString(), false); direction = dir; Check(dir.ToString(), true); }
private static void LayoutAndValidate(GeometryGraph graph, SugiyamaLayoutSettings settings, double nodeSeparation, LayerDirection direction) { LayoutAndValidate(graph, settings, nodeSeparation, settings.LayerSeparation, direction); }