Microsoft Automatic Graph Layout
Software library
Microsoft Automatic Graph Layout (MSAGL) is a .NET library for automatic graph layout. It was created by Lev Nachmanson at Microsoft Research.
Earlier versions carried the name GLEE (Graph Layout Execution Engine).
01Contents
The MSAGL software supplies four programming libraries:
- Microsoft.MSAGL.dll, a device-independent graph layout engine;
- Microsoft.MSAGL.Drawing.dll, a device-independent implementation of graphs as graphical user interface objects, with all kinds of graphical attributes, and support for interface events such as mouse actions;
- Microsoft.MSAGL.GraphViewerGDI.dll, a Windows.Forms-based graph viewer control.
- Microsoft.MSAGL.WpfGraphControl.dll, a WPF (Windows Presentation Foundation) based graph viewer control.
A trivial application is supplied to demonstrate the viewer.
02Features
MSAGL performs layout based on "principles of the Sugiyama scheme; it produces so called layered, or hierarchical, layouts" (according to the MSAGL home page). A modified Coffman-Graham scheduling algorithm is then used to find a layout that would fit in a given space. More detailed description of the algorithm can be found in U.S. patent 7,932,907.
At some time, it did not support a wide range of different layout algorithms, unlike, for instance, GraphViz or GUESS.
It does not appear to support incremental layout.
03Availability and licensing
MSAGL is distributed under MIT License as open source at GitHub.
Sources and credits
This article is adapted from the Wikipedia article “Microsoft Automatic Graph Layout”, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.
Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.