Orrery v0.4.0
Edge routing for parallel edges, reverse edges, and self-loops — multiple arrows between the same components now render as separate, visually distinguishable curves.
Orrery v0.4.0 adds edge routing — parallel edges, reverse edges, and self-loops now render as separate, visually distinguishable curves instead of overlapping on a single line.
What changed
Added
- Edge routing for parallel edges, reverse edges, and self-loops — Multiple arrows between the same components now render as separate, visually distinguishable curves. Reverse arrows render on opposite sides, and self-referencing relations render as visible loops. (#104)
Changed
- BREAKING: Default
ArrowStylechanged toCurved— The default arrow style is nowCurved(wasStraight).Curvedrenders a straight line when no control points are provided, and follows bezier control points when they are. (#106) - BREAKING: Arrow rendering API accepts control points —
ArrowDrawer::draw_arrow,ArrowWithText::render_to_layers, andArrowWithTextDrawer::draw_arrow_with_textnow require an additionalcontrol_points: &[Point]parameter. Pass&[]to preserve previous behavior. (#106) - BREAKING: Arrow rendering API accepts an optional label position —
ArrowWithText::render_to_layersandArrowWithTextDrawer::draw_arrow_with_textnow require an additionaltext_position_override: Option<Point>parameter, andPositionedArrowWithTextexposes awith_text_positionbuilder. (#117)
Fixed
- Removed redundant
normalize_offseton embedded diagram containers — Container positions were double-shifted: once during component layout and again during layer composition. The redundant first shift displaced containers from their layout-assigned positions, causing overlap with siblings and cascading misalignment in multi-level nesting. (#111)
Update
cargo install orrery-cli