Пример #1
0
        /// <summary>
        /// Nodes are too close to each other.
        /// </summary>
        /// <returns></returns>
        private IDictionary <string, Point> Create2()
        {
            // 2nd algorithm
            ISOMLayoutParameters params2 = null;            //new ISOMLayoutParameters();
            var algo2 = new ISOMLayoutAlgorithm <string, Edge <string>, BidirectionalGraph <string, Edge <string> > >(graph, params2);

            algo2.Compute();

            return(algo2.VertexPositions);
        }
Пример #2
0
        /// <summary>
        /// Performs the actual layout algorithm.
        /// </summary>
        /// <param name="graph">The object containing the graph data</param>
        /// <param name="rootNode">Root node</param>
        protected override void PerformLayout(GraphMapData graph, INode rootNode)
        {
            BidirectionalGraph<string, WeightedEdge<string>> bGraph = GraphSharpUtility.GetBidirectionalGraph(graph);
            IDictionary<string, Vector> nodePositions = GraphSharpUtility.GetNodePositions(graph);
            ISOMLayoutParameters isomLayoutParameters = new ISOMLayoutParameters();

            ISOMLayoutAlgorithm<string, WeightedEdge<string>, BidirectionalGraph<string, WeightedEdge<string>>> isomLayoutAlgorithm = new ISOMLayoutAlgorithm<string, WeightedEdge<string>, BidirectionalGraph<string, WeightedEdge<string>>>(bGraph, nodePositions, isomLayoutParameters);
            isomLayoutAlgorithm.Compute();

            GraphSharpUtility.SetNodePositions(graph, isomLayoutAlgorithm.VertexPositions);
            GraphSharpUtility.FSAOverlapRemoval(graph);
        }
Пример #3
0
        /// <summary>
        /// Performs the actual layout algorithm.
        /// </summary>
        /// <param name="graph">The object containing the graph data</param>
        /// <param name="rootNode">Root node</param>
        protected override void PerformLayout(GraphMapData graph, INode rootNode)
        {
            BidirectionalGraph <string, WeightedEdge <string> > bGraph = GraphSharpUtility.GetBidirectionalGraph(graph);
            IDictionary <string, Vector> nodePositions        = GraphSharpUtility.GetNodePositions(graph);
            ISOMLayoutParameters         isomLayoutParameters = new ISOMLayoutParameters();

            ISOMLayoutAlgorithm <string, WeightedEdge <string>, BidirectionalGraph <string, WeightedEdge <string> > > isomLayoutAlgorithm = new ISOMLayoutAlgorithm <string, WeightedEdge <string>, BidirectionalGraph <string, WeightedEdge <string> > >(bGraph, nodePositions, isomLayoutParameters);

            isomLayoutAlgorithm.Compute();

            GraphSharpUtility.SetNodePositions(graph, isomLayoutAlgorithm.VertexPositions);
            GraphSharpUtility.FSAOverlapRemoval(graph);
        }