/// <summary> /// calulates the layout /// </summary> public void CalculateLayout() { using (GViewer gv = new GViewer()) { gv.CurrentLayoutMethod = LayoutMethod.UseSettingsOfTheGraph; layedOutGraph = gv.CalculateLayout(graph); } }
static void ProcessDotFile(GViewer gviewer, ArgsParser.ArgsParser argsParser, string dotFileName) { int line; int col; string msg; Graph graph = Parser.Parse(dotFileName, out line, out col, out msg); if (graph == null) { Console.WriteLine("{0}({1},{2}): error: {3}", dotFileName, line, col, msg); Environment.Exit(1); } if (argsParser.OptionIsUsed(RecoverSugiyamaTestOption)) { gviewer.CalculateLayout(graph); graph.GeometryGraph.AlgorithmData = null; LayeredLayout.RecoverAlgorithmData(graph.GeometryGraph); Node node = graph.GeometryGraph.Nodes[1]; node.BoundaryCurve = node.BoundaryCurve.Transform(new PlaneTransformation(3, 0, 0, 0, 3, 0)); LayeredLayout.IncrementalLayout(graph.GeometryGraph, node); gviewer.NeedToCalculateLayout = false; gviewer.Graph = graph; gviewer.NeedToCalculateLayout = true; return; } if (argsParser.OptionIsUsed(MdsOption)) graph.LayoutAlgorithmSettings = new MdsLayoutSettings(); else if (argsParser.OptionIsUsed(FdOption)) graph.LayoutAlgorithmSettings = new FastIncrementalLayoutSettings(); if (argsParser.OptionIsUsed(BundlingOption)) { graph.LayoutAlgorithmSettings.EdgeRoutingSettings.EdgeRoutingMode = EdgeRoutingMode.SplineBundling; BundlingSettings bs = GetBundlingSettings(argsParser); graph.LayoutAlgorithmSettings.EdgeRoutingSettings.BundlingSettings = bs; string ink = argsParser.GetValueOfOptionWithAfterString(InkImportanceOption); if (ink != null) { double inkCoeff; if (double.TryParse(ink, out inkCoeff)) { bs.InkImportance = inkCoeff; BundlingSettings.DefaultInkImportance = inkCoeff; } else { Console.WriteLine("cannot parse {0}", ink); Environment.Exit(1); } } string esString = argsParser.GetValueOfOptionWithAfterString(EdgeSeparationOption); if (esString != null) { double es; if (double.TryParse(esString, out es)) { BundlingSettings.DefaultEdgeSeparation = es; bs.EdgeSeparation = es; } else { Console.WriteLine("cannot parse {0}", esString); Environment.Exit(1); } } } gviewer.Graph = graph; }
static void TestSave() { var g = new Graph(); g.AddEdge("a", "b"); var gv = new GViewer(); gv.CalculateLayout(g); const string fileName = "c:\\tmp\\saved.msagl"; g.Write(fileName); g = Graph.Read(fileName); var f = new Form(); f.SuspendLayout(); f.Controls.Add(gv); gv.Dock = DockStyle.Fill; gv.NeedToCalculateLayout = false; gv.Graph = g; f.ResumeLayout(); f.ShowDialog(); Environment.Exit(0); }
static void ConvertDotToGeom(string dotFileName, string geomFileName) { int line, column; string msg; Graph graph = Parser.Parse(dotFileName, out line, out column, out msg); var gv = new GViewer(); gv.CalculateLayout(graph); GeometryGraph geomGraph = graph.GeometryGraph; GeometryGraphWriter.Write(geomGraph, geomFileName); }
/// <summary> /// calulates the layout /// </summary> public void CalculateLayout() { using (GViewer gv = new GViewer()) layedOutGraph = gv.CalculateLayout(this.graph); }
/// <summary> /// calulates the layout /// </summary> public void CalculateLayout() { using (GViewer gv = new GViewer()) { gv.CurrentLayoutMethod = LayoutMethod.UseSettingsOfTheGraph; layedOutGraph = gv.CalculateLayout(graph); } }
void GraphLayoutCalculation() { try { var gv = new GViewer(); gv.CurrentLayoutMethod=this.GViewer.CurrentLayoutMethod; object res = gv.CalculateLayout(generatedGraph); double ar = generatedGraph.GeometryGraph.BoundingBox.Width/ generatedGraph.GeometryGraph.BoundingBox.Height; if (ar > 5) Console.WriteLine("ar={0}", ar); //update the dotviewer if (InvokeRequired) Invoke(new VoidFunctionWithOneParameterDelegate(UpdateViewer), new[] {res}); else UpdateViewer(res); } catch (Exception e) { //if it is thread abort exception then just ignore it if (!(e is ThreadAbortException)) {} } }