| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
implemented in Boost. I am replacing this with a custom implementation of
a constrained stress-majorization algorithm.
The stress-majorization algorithm is more robust and has better convergence
characteristics than Kamada-Kawai, and also simple constraints can be placed
on node position (for example, to enforce downward-pointing edges, non-overlap constraints, or cluster constraints).
Another big advantage is that we no longer need Boost.
I've tested the basic functionality, but I have yet to properly handle
disconnected graphs or to properly scale the resulting layout.
This commit also includes significant refactoring... the quadratic program solver - libvpsc (Variable Placement with Separation Constraints) has been moved to src/libvpsc and the actual graph layout algorithm is in libcola.
(bzr r1394)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
src/connector-context.cpp, src/conn-avoid-ref.cpp:
Keep a seperate connector router for each document.
* src/libavoid/Makefile_insert, src/libavoid/connector.cpp,
src/libavoid/connector.h, src/libavoid/debug.h,
src/libavoid/geometry.cpp, src/libavoid/geometry.h,
src/libavoid/geomtypes.h, src/libavoid/graph.cpp,
src/libavoid/graph.h, src/libavoid/incremental.cpp,
src/libavoid/incremental.h, src/libavoid/libavoid.h,
src/libavoid/makepath.cpp, src/libavoid/makepath.h,
src/libavoid/polyutil.cpp, src/libavoid/polyutil.h,
src/libavoid/router.cpp, src/libavoid/router.h,
src/libavoid/shape.cpp, src/libavoid/shape.h,
src/libavoid/static.cpp, src/libavoid/static.h,
src/libavoid/timer.cpp, src/libavoid/timer.h,
src/libavoid/vertices.cpp, src/libavoid/vertices.h,
src/libavoid/visibility.cpp, src/libavoid/visibility.h:
Upstream changes to libavoid that allow multiple connector
router instances, as well a few other minor bugfixes.
(bzr r144)
|