1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
/*!
\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
<a href="http://www.adaptagrams.org/">Adaptagrams project</a>.
There are no official releases yet, though the code is stable and
available from the Adaptagrams
<a href="https://github.com/mjwybrow/adaptagrams">GitHub
repository</a>.
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 <a href="libavoid_example.html">documented example</a> to help you get started.
libavoid is written and maintained by
<a href="http://users.monash.edu/~mwybrow/">Michael Wybrow</a>,
a member of <a href="http://ialab.it.monash.edu/">Immersive Analytics Lab</a> 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.
[<a href="http://dx.doi.org/10.1007/978-3-642-11805-0_22">DOI</a>]
[<a href="http://users.monash.edu/~mwybrow/papers/wybrow-gd-2009.pdf">PDF</a>]
- 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.
[<a href="http://dx.doi.org/10.1007/11618058_40">DOI</a>]
[<a href="http://users.monash.edu/~mwybrow/papers/wybrow-gd-2005.pdf">PDF</a>]
- 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.
[<a href="http://dx.doi.org/10.1007/978-3-642-31223-6_10">DOI</a>]
[<a href="http://users.monash.edu/~mwybrow/papers/wybrow-diagrams-2012.pdf">PDF</a>]
- 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.
[<a href="http://doi.acm.org/10.1007/978-3-662-44043-8_4">DOI</a>]
[<a href="http://users.monash.edu/~mwybrow/papers/marriott-diagrams-2014.pdf">PDF</a>]
libavoid is currently used in the following software:
- A commercial circuit diagram editor;
- <a href="http://users.monash.edu/~mwybrow/dunnart/">Dunnart</a>, a prototype research
constraint-based diagram editor;
- <a href="http://www.inkscape.org/">Inkscape</a>, the popular Open
Source vector graphics editor;
- <a href="http://arcadiapathways.sourceforge.net/">Arcadia</a>, a
visualisation tool for metabolic pathways;
- <a href="http://gaphor.sourceforge.net/">Gaphas</a>, an open source diagramming widget for GTK+, written in Python;
- <a href="http://brlcad.org/">BRL-CAD</a>, Constructive Solid Geometry (CSG) solid modeling system;
- <a href="http://www.qxorm.com/">QxOrm</a>, a C++ library designed to provide Object Relational Mapping (ORM) feature to C++ users; and
- <a href="http://www.qxorm.com/">QxEntityEditor</a>, a graphic editor for QxOrm library, providing a graphic way to manage a data model.
*/
|