microsoft / automatic-graph-layout

A set of tools for graph layout and viewing
Other
1.36k stars 304 forks source link

Is there any overview over classes and members? #69

Closed Hypernut closed 8 years ago

Hypernut commented 8 years ago

Anywhere? :)

Hypernut commented 8 years ago

Come on guys! There are so many classes and members... Did the Microsoft team that originally developed this, never made any documentation?

levnach commented 8 years ago

There are samples. I hope they are helpful. By looking at the sample projects names people usually are able to find their scenario and find out the right API

Hypernut commented 8 years ago

No they are not. Not much. And, sorry, but it is ridiculous that everyone has to start from zero and find out for himself. I mean at least link prominently to an "official" forum, so that users can share their findings.

levnach commented 8 years ago

Sorry for this situation.  This website is the place to discuss such topics. Why don't you ask your specific question and I will try to help?

From: Hypernut

Sent: Friday, April 22, 17:17

Subject: Re: [Microsoft/automatic-graph-layout] Is there any overview over classes and members? (#69)

To: Microsoft/automatic-graph-layout

Cc: Lev Nachmanson, Comment

No they are not. Not much.

And, sorry, but it is ridiculous that everyone has to start from zero and find out for himself.

I mean at least link prominently to an "official" forum, so that users can share their findings.

You are receiving this because you commented.

Reply to this email directly or view it on GitHub

Hypernut commented 8 years ago

I already did ask question in the other thread, which you ignored. :) Anyway thanks for the offer:

thanks !

levnach commented 8 years ago

The time line is impossible.

There is a  limited, and not entirely faithful,  dot language (https://en.m.wikipedia.org/wiki/DOT_(graph_description_language)) parser. Please see Dot2Graph.csproj.

For events on node clicks see WindowsApplicationSample.csproj.

From: Hypernut

Sent: Saturday, April 23, 16:43

Subject: Re: [Microsoft/automatic-graph-layout] Is there any overview over classes and members? (#69)

To: Microsoft/automatic-graph-layout

Cc: Lev Nachmanson, Comment

I already did ask question in the other thread, which you ignored. :)

Anyway thanks for the offer:

is it possible to ceate some kind of "timeline" (like this i.e. link . I would like to diplay the execution of commands in the order they have been executed.

I saw some nice examples of AGL here: link. The way they displayed the settings used for the examples, like i.e. at the beginning of this example: link, seem to suggest there is an easy syntax to create nodes and edges. Is there?

Is it possible to add events to the nodes, so that I can execute code when the user clicks on a node?

thanks !

You are receiving this because you commented.

Reply to this email directly or view it on GitHub

Hypernut commented 8 years ago

Thanks. There are some LayoutAlgorithm properties, for which I can not figure out from the examples what they do: MDS:

Sugiyama

Edge Routing Settings:

Can you explain them? Thanks!

levnach commented 8 years ago

MDS – multi dimensional scaling

The implementation of MDS in MSAGL follows https://kops.uni-konstanz.de/bitstream/handle/123456789/5741/bp_empmdsld_06.pdf?sequence=1. “PivotNumber” comes from this paper, corresponding to the number of sample points, or pivots.

CallIterationsWithMajorizationThreshold – if, and only if, the number of the nodes of the graph is less than CallIterationsWithMajorizationThreshold then a layout improvement using stress majorization (mentioned in the paper) is called.

ClusterMargin – sets the margin size for clusters ( a group of nodes, or clusters)

Exponent – the power applied to the distance between the nodes to obtain weight matrix of Pivot MDS.

NumberofInterationswithMajorization – cannot find it, you probably meant IterationsWithMajorization. It gives number of calls to the optimization mentioned above.

Edge Routing Settings:

IncrementalRoutingThreshold, is not used

KeepOriginalSpline (KeepOringinalSpline in the originalJ)- it was used for debugging purposes and is not used anymore

UseObstacleRectangles – is used in the rectilinear routing. If set to true then the rectangle bounding boxes are used to limit the place for the edges, otherwise for some node shapes, for example, ellipses, a tighter obstacle will be created leaving more space for the edges.

Date: Mon, 25 Apr 2016 05:37:58 -0700 From: notifications@github.com To: automatic-graph-layout@noreply.github.com CC: levnach@hotmail.com; comment@noreply.github.com Subject: Re: [Microsoft/automatic-graph-layout] Is there any overview over classes and members? (#69)

Thanks.

There are some LayoutAlgorithm properties, for which I can not figure out from the examples what they do:

MDS:

Number of pivots CallIterationsWithMajorizationThreshold ClusterMargin Exponent NumberofInterationswithMajorization Edge Routing Settings:

IncrementalRoutingThreshold KeepOringinalSpline UseObstacleRectangles

— You are receiving this because you commented. Reply to this email directly or view it on GitHub

Hypernut commented 8 years ago

Thanks. I have a few more, I hope you don't mind:

  1. There is one LayoutSetting which seems to have a loot of impact: Fast X-coordinate assignment algorithm threshold
    • What does this do and how can I set this via a LayoutAlgorithmSettings object, because I can only find it in the LayoutSettings-Dialog in the viewer.
  2. Can I set a "minimum free space" around a graph (Sugyiama and/or MDS), so that the white background of graph i.e. would be always 100 pixels bigger on all sides than the actual diagram?
  3. Can i somehow link the zoomfactor to the size of the graph? Reason is, my viewer window has a fixed size and I do not know beforehand if the graph I am displaying has e.g. 2 , 20 or 200 nodes. So if there are just 2 nodes, they get zoomed a lot and they appear gigantic. So I would like to ensure somehow, that nodes are not displayed not more than twice their actual size. If that is not possible, is there anything else I can do in the same direction?
  4. Can I display an image in the bottom left or right corner of the graph, which would be included in the printed or saved image of the viewer. The space occupied by the image would need to be unusable for nodes and edges.

Thanks!

levnach commented 8 years ago

1) I am citing the comment of SugiyamaLayoutSettings.BrandesThreshold,"If the number of vertices in the proper layered graph is more than the value we switch to the fast x-coordinate assignment algorithm of Brandes and Kopf". The mentioned algorithm can be found at http://algo.uni-konstanz.de/publications/bk-fshca-01.pdf.Points 2,3,4 are not supported, sorry. Date: Thu, 28 Apr 2016 05:50:54 -0700 From: notifications@github.com To: automatic-graph-layout@noreply.github.com CC: levnach@hotmail.com; comment@noreply.github.com Subject: Re: [Microsoft/automatic-graph-layout] Is there any overview over classes and members? (#69)

Thanks. I have a few more, I hope you don't mind:

There is one LayoutSetting which seems to have a loot of impact:

Fast X-coordinate assignment algorithm threshold

What does this do and how can I set this via a LayoutAlgorithmSettings object, because I can only find it in the LayoutSettings-Dialog in the viewer.

Can I set a "minimum free space" around a graph (Sugyiama and/or MDS), so that the white background of graph i.e. would be always 100 pixels bigger on all sides than the actual diagram?

Can i somehow link the zoomfactor to the size of the graph?

Reason is, my viewer window has a fixed size and I do not know beforehand if the graph I am displaying has e.g. 2 , 20 or 200 nodes. So if there are just 2 nodes, they get zoomed a lot and they appear gigantic.

So I would like to ensure somehow, that nodes are not displayed not more than twice their actual size.

If that is not possible, is there anything else I can do in the same direction?

Can I display an image in the bottom left or right corner of the graph, which would be included in the printed or saved image of the viewer. The space occupied by the image would need to be unusable for nodes and edges.

Thanks!

— You are receiving this because you commented. Reply to this email directly or view it on GitHub