edgebundle 1.0.0
- added
edge_bundle(), a single entry point that dispatches to any bundler viatype = 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
igraphcalls 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 produceNaN. 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.reticulatewas dropped from Imports andinstall_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 akparameter for the number of merge candidates per edge -
metro_multicriteria()is deprecated in favour ofgraphlayouts::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; thetnss_*()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 intnss_dummies()where one diagonal corner was misplaced; removed dead code.interpmoved from Imports to Suggests (onlytnss_tree()needs it)
edgebundle 0.4.1
CRAN release: 2022-11-22
- added package level docs
- added citation file
- some minor bug fixes
edgebundle 0.4.0
CRAN release: 2022-07-04
- 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.1.0
- added smoothing for
tnss_tree()
