示例#1
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);
            LinLogLayoutParameters linLogLayoutParameters = new LinLogLayoutParameters()
            {
                AttractionExponent = 2D     // Default is 1D
            };

            LinLogLayoutAlgorithm<string, WeightedEdge<string>, BidirectionalGraph<string, WeightedEdge<string>>> linLogLayoutAlgorithm = new LinLogLayoutAlgorithm<string, WeightedEdge<string>, BidirectionalGraph<string, WeightedEdge<string>>>(bGraph, nodePositions, linLogLayoutParameters);
            linLogLayoutAlgorithm.Compute();

            GraphSharpUtility.SetNodePositions(graph, linLogLayoutAlgorithm.VertexPositions);
            GraphSharpUtility.FSAOverlapRemoval(graph);
        }
 public LinLogLayoutAlgorithm(TGraph visitedGraph, IDictionary <TVertex, Point> positions, LinLogLayoutParameters parameters)
     : base(visitedGraph, positions, parameters)
 {
 }