/*!
\if LIBAVOID_DOC
@mainpage libavoid: Object-avoiding orthogonal and polyline connector routing library
\endif
\if ADAPTAGRAMS_DOC
@page libavoid libavoid — Overview
\endif
libavoid is a cross-platform C++ library providing fast, object-avoiding
orthogonal and polyline connector routing for use in interactive diagram
editors.
libavoid is part of the
Adaptagrams project.
There are no official releases yet, though the code is stable and
available from the Adaptagrams
GitHub
repository.
The API is documented using Doxygen. The documentation you are currently
reading can be obtained by running doxygen in the cola or libavoid directory.
There is also
a simple documented example to help you get started.
libavoid is written and maintained by
Michael Wybrow,
a member of Immersive Analytics Lab at Monash University, Australia.
The algorithms used for the connector routing are described in the following papers. If you use libavoid, please cite the relevant paper.
- M. Wybrow, K. Marriott, and P.J. Stuckey. Orthogonal connector
routing.\n
In Proceedings of 17th International Symposium on Graph Drawing
(GD '09),\n
LNCS 5849, pages 219–231. Spring-Verlag, 2010.
[DOI]
[PDF]
- M. Wybrow, K. Marriott, and P.J. Stuckey. Incremental connector
routing.\n
In Proceedings of 13th International Symposium on Graph Drawing
(GD '05),\n
LNCS 3843, pages 446—457. Springer-Verlag, 2006.
[DOI]
[PDF]
- M. Wybrow, K. Marriott and P.J. Stuckey. Orthogonal hyperedge routing.\n
In Proceedings of 7th International Conference on the Theory and Application of Diagrams (Diagrams 2012),\n
LNCS (LNAI) 7352, pages 51–64. Springer-Verlag, 2012.
[DOI]
[PDF]
- K. Marriott, P.J. Stuckey, and M. Wybrow. Seeing Around Corners: Fast Orthogonal Connector Routing.\n
In Proceedings of the 8th International Conference on the Theory and Application of Diagrams (Diagrams 2014),\n
LNCS 8578, pages 31–37. Springer-Verlag, 2014.
[DOI]
[PDF]
libavoid is currently used in the following software:
- A commercial circuit diagram editor;
- Dunnart, a prototype research
constraint-based diagram editor;
- Inkscape, the popular Open
Source vector graphics editor;
- Arcadia, a
visualisation tool for metabolic pathways;
- Gaphas, an open source diagramming widget for GTK+, written in Python;
- BRL-CAD, Constructive Solid Geometry (CSG) solid modeling system;
- QxOrm, a C++ library designed to provide Object Relational Mapping (ORM) feature to C++ users; and
- QxEntityEditor, a graphic editor for QxOrm library, providing a graphic way to manage a data model.
*/