edgebundle 1.0.0
- added
edge_bundle(), a single entry point that
dispatches to any bundler via
type = c("force", "divided", "stub", "path", "hammer", "mingle")
- switched the test suite to testthat edition 3 and added correctness
tests for every exported function
- modernised all
igraph calls to the 2.x API, removing
deprecation warnings
edge_bundle_force() now also accepts a two-column
edgelist matrix
- fixed
edge_bundle_stub(): the angular grouping was
broken (wrong circular-gap handling and a bundle-size cap that summed
cluster ids instead of counting edges) and vertical edges could produce
NaN. Bundling output changes as a result
- fixed
edge_bundle_path(): the path-length used in the
distortion test was computed along the wrong vertices, so edges were
essentially never routed. Bundling output changes as a result
- added divided edge bundling for directed graphs via
edge_bundle_force(directed = TRUE) (Selassie et al. 2011):
edges running in opposite directions are kept in separate lanes
edge_bundle_hammer() is now a native C++ implementation
of KDE edge bundling (Hurter et al. 2012) and no longer depends on
Python/reticulate/datashader. reticulate was
dropped from Imports and install_bundle_py() was removed.
Bundling output differs from the datashader-based version
- added
edge_bundle_mingle(), multilevel agglomerative
edge bundling (Gansner et al. 2011); the kNN proximity graph is built
with a bundled kd-tree (nanoflann) for O(E log E) scaling, with a
k parameter for the number of merge candidates per
edge
metro_multicriteria() is deprecated in favour of
graphlayouts::layout_as_metromap() and will be removed in a
future release
- added
flow_tree(), a spiral-tree flow map (Verbeek,
Buchin & Speckmann 2011): planar, angle-restricted, keeps node
positions fixed, and needs no dummy nodes or triangulation. It is the
recommended flow map layout; the tnss_*() functions remain
as an alternative. flow_tree(optimize = TRUE) additionally
refines the tree (smoothness + obstacle avoidance) with join points held
fixed
tnss_tree(): order = "weight" now orders
leaves by flow magnitude (previously a no-op); fixed a bug in
tnss_dummies() where one diagonal corner was misplaced;
removed dead code. interp moved from Imports to Suggests
(only tnss_tree() needs it)
edgebundle 0.4.2
edgebundle 0.4.1
- added package level docs
- added citation file
- some minor bug fixes
edgebundle 0.4.0
- changed line straightening in
tnss_tree() to
Visvalingam algorithm (NOTE: The meaning of the epsilon parameter is now
reversed!)
- fixed a bug in
tnss_tree() which created duplicated
mesh points
edgebundle 0.3.1
edgebundle 0.3.0
edgebundle 0.2.1
- Fixed an error that occurred with valgrind
edgebundle 0.2.0
- added more documentation
- cleanup of code
- fixed readme
edgebundle 0.1.0
- added smoothing for
tnss_tree()
edgebundle 0.0.1
- Added a
NEWS.md file to track changes to the
package.