/// <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) { }