microsoft / automatic-graph-layout

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

[Question] Is this features available? #256

Open bsp13 opened 4 years ago

bsp13 commented 4 years ago

I need following features in graph layout framework::

1) I need to set position for perticular node programmatically which i choose. 2) I need to set minimum edge length and also need to set edge type like.. splines, ortho 3) In graph, every node show with rectagle, circle or square. so, I need to set width and height of that rectagle.

is there available?

SMTStuck commented 4 years ago
  1. Not that I know, or rather not strictly so. There are methods available within the layout settings for things such as AddLeftRightConstraint, AddUpDownConstraint and various other constraint setting methods which should allow you to position a node relatively well to other nodes.

  2. Not sure if there is a way of setting minimum edge length. Yes you can see edge types though. The types can be found in Core.Routing.EdgeRoutingMode:

        /// <summary>
        /// routing splines over tangent visibility graph edge as a sequence of Bezier segments 
        /// </summary>
        Spline,
        /// <summary>
        /// drawing ordered bundles
        /// </summary>
        SplineBundling,
        /// <summary>
        /// draw edges as straight lines 
        /// </summary>
        StraightLine,
        /// <summary>
        /// inside of Sugiyama algorithm use the standard spline routing
        /// </summary>
        SugiyamaSplines,
        /// <summary>
        /// rectilinear edge routing
        /// </summary>
        Rectilinear,
        /// <summary>
        /// rectilinear but not checking for the optimal port and routing just to the node centers
        /// </summary>
        RectilinearToCenter,
  1. Yes very possible and is how I'm using MSAGL.
SMTStuck commented 4 years ago

Possible correction of 1. Yes this may be possible using the Node.Centre property. Whether this is preserved during layout you'd have to test.