History log of /inkscape/src/libcola/conjugate_gradient.cpp
Revision Date Author Comments Expand
d1c7cc7eb10f1bf5756d299e4a1e4f3060bfed8f 14-Jul-2006 tgdwyer <tgdwyer@users.sourceforge.net>

fixed warnings

c787248292420aeb9b05e2e4852df8291904cdee 12-Jul-2006 tgdwyer <tgdwyer@users.sourceforge.net>

- added toggle buttons for directed layout (doesn't do anything yet) and overlap avoiding layout to connector toolbar - added icon for directed layout toggle button - removed old ref to remove_rectangle_overlaps-test from src/Makefile.am

1ec681f88b68c6186b267afcce12c7fd667cc9f8 12-Jul-2006 tgdwyer <tgdwyer@users.sourceforge.net>

Previously graph layout was done using the Kamada-Kawai layout algorithm 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.

/inkscape/configure.ac /inkscape/mkinstalldirs /inkscape/src/Makefile.am /inkscape/src/Makefile_insert /inkscape/src/graphlayout/graphlayout.cpp Makefile_insert cola.cpp cola.h conjugate_gradient.cpp conjugate_gradient.h cycle_detector.cpp cycle_detector.h defs.h gradient_projection.cpp gradient_projection.h shortest_paths.cpp shortest_paths.h straightener.cpp straightener.h /inkscape/src/libvpsc/COPYING /inkscape/src/libvpsc/Makefile_insert /inkscape/src/libvpsc/block.cpp /inkscape/src/libvpsc/block.h /inkscape/src/libvpsc/blocks.cpp /inkscape/src/libvpsc/blocks.h /inkscape/src/libvpsc/constraint.cpp /inkscape/src/libvpsc/constraint.h /inkscape/src/libvpsc/csolve_VPSC.cpp /inkscape/src/libvpsc/csolve_VPSC.h /inkscape/src/libvpsc/generate-constraints.cpp /inkscape/src/libvpsc/generate-constraints.h /inkscape/src/libvpsc/isnan.h /inkscape/src/libvpsc/pairingheap/.dirstamp /inkscape/src/libvpsc/pairingheap/PairingHeap.cpp /inkscape/src/libvpsc/pairingheap/PairingHeap.h /inkscape/src/libvpsc/pairingheap/dsexceptions.h /inkscape/src/libvpsc/placement_SolveVPSC.h /inkscape/src/libvpsc/remove_rectangle_overlap.cpp /inkscape/src/libvpsc/remove_rectangle_overlap.h /inkscape/src/libvpsc/solve_VPSC.cpp /inkscape/src/libvpsc/solve_VPSC.h /inkscape/src/libvpsc/variable.cpp /inkscape/src/libvpsc/variable.h /inkscape/src/removeoverlap/Makefile_insert /inkscape/src/removeoverlap/pairingheap/.cvsignore /inkscape/src/removeoverlap/placement_SolveVPSC.cpp /inkscape/src/removeoverlap/remove_rectangle_overlap-test.cpp /inkscape/src/removeoverlap/removeoverlap.cpp