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