コード例 #1
0
 /// <summary>
 /// calulates the layout
 /// </summary>
 public void CalculateLayout()
 {
     using (GViewer gv = new GViewer()) {
         gv.CurrentLayoutMethod = LayoutMethod.UseSettingsOfTheGraph;
         layedOutGraph          = gv.CalculateLayout(graph);
     }
 }
コード例 #2
0
        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;
        }
コード例 #3
0
        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);
        }
コード例 #4
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);
 }
コード例 #5
0
 /// <summary>
 /// calulates the layout
 /// </summary>
 public void CalculateLayout()
 {
     using (GViewer gv = new GViewer())
         layedOutGraph = gv.CalculateLayout(this.graph);
 }
コード例 #6
0
 /// <summary>
 /// calulates the layout
 /// </summary>
 public void CalculateLayout() {
     using (GViewer gv = new GViewer()) {
         gv.CurrentLayoutMethod = LayoutMethod.UseSettingsOfTheGraph;
         layedOutGraph = gv.CalculateLayout(graph);
     }
 }
コード例 #7
0
        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)) {}
            }
        }