ASP.NET - Northwoods.GoWeb (version 220.127.116.11)
Also note that I am using GoLayoutLayerdDigraph() as the layout format.
There are some graphs for which the LayeringOption of OptimalLinkLength can take a lot of time.
You could try different values for the PackingOption. (Although if you have enough links it will automatically take some or all of those options for you.)
Also, do you have disconnected subgraphs? If so, explicitly laying them out separately would be faster. You can use GoLayoutLayeredDigraphNetwork.SplitIntoSubNetworks().
- Timeout: You could override the various “principle steps” of the algorithm, and throw an exception if time was exceeded on the way in to calling the base function. I think that would work… I haven’t tried it. (this might also give you some insight into where the time is being spent.)
2, 3, 4) it depends too much on the graph, we really can’t predict reliably. It certainly goes up with nodes and links, but things like links between layers and crossings have a bigger impact.
Thank you for the quick response.
I doubt we have one sample that overrides them all, but they are listed in the GoLayout User Guide:
GoLayoutLayeredDigraph also has a number of methods that can be overridden. These can generally be divided into three categories. The first category of methods override principle steps of the layered-digraph routine: protected virtual void RemoveCycles();
protected virtual void AssignLayers();
protected virtual void MakeProper();
protected virtual void InitializeIndices();
protected virtual void InitializeColumns();
protected virtual void ReduceCrossings();
protected virtual void StraightenAndPack();
protected virtual void LayoutNodesAndLinks();
Thanks again for the quick response.