| CARVIEW |
Adaptagrams is a library of tools and reusable code for adaptive diagramming applications, for example: drawing tools, automated document and diagram layout, smart presentation software, graph drawing, chart layout.
Currently, the Adaptagrams repository includes four cross-platform C++ libraries:
- libvpsc — a solver for the Variable Placement with Separation Constraints problem. This is a quadratic programming problem in which the squared differences between a placement vector and some ideal placement are minimised subject to a set of separation constraints. This is very useful in a number of layout problems.
- libcola — a library for constraint graph layout. Specifically, force-directed layout using the stress-majorization method subject to separation constraints. Applications include layout with non-overlapping nodes and clusters, directed graph layout and layout preserving the crossing properties of a given starting layout.
- libavoid — a library for object-avoiding polyline and orthogonal connector routing for use in interactive diagram editors.
- libtopology — a library containing extensions to libcola to support topology preserving constraint-based layout.
- libdialect — a library for computing human-like orthogonal network (DiAlEcT) layouts.
These libraries are collectively known as cola (for
Constraint Layout).
The Adaptagrams code is written by Tim Dwyer, Michael Wybrow and Steve Kieffer of the Immersive Analytics Lab at Monash University. A number of
papers describing the algorithms used in these libraries are listed on the documentation pages and our websites (here and here).
Documentation
The libraries are documented with Doxygen. Documentation can be generated by running doxygen in the cola directory, or can be viewed online here:
Source Code
You can find the C++ source code for
cola in the Git repository on GitHub:
https://github.com/mjwybrow/adaptagrams
All code in the Adaptagrams repository is released as open source under the terms of the LGPL.
We also dual-license the Adaptagrams libraries and for a fee we can provide them under a less-restrictive commercial license as well as extend them to fit your needs (contact us). For this reason, if you contribute code to the project and would like it to appear in the main Adaptagrams repository, we require that you assign the copyright on your changes to Monash Univeristy with the following statement: "I hereby assign copyright in this code to Monash University, to be licensed under the same terms as the rest of the code."
Software using the above libraries include: Inkscape, Graphviz, QxOrm library and QxEntityEditor, and Dunnart.
Examples
You must have an SVG capable browser to see the images on this page.
Below is an example showing a biological pathway laid-out using the algorithms in libcola:
Below: network of research collaboration amongst members of the Centre for Research on Intelligent Systems at Monash University: