Skip to content

Commit

Permalink
[doc] Add a shape on rectilinear custom edges
Browse files Browse the repository at this point in the history
Signed-off-by: Florian ROUËNÉ <[email protected]>
  • Loading branch information
frouene authored and sbegaudeau committed Mar 6, 2025
1 parent 4935bb7 commit 1fc20e7
Show file tree
Hide file tree
Showing 8 changed files with 47 additions and 1 deletion.
3 changes: 2 additions & 1 deletion CHANGELOG.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@

=== Shapes

- Add support for edges connected to edges
- Add support for edges connected to edges
- Preserve custom edges rectilinearity


=== Architectural decision records
Expand Down
45 changes: 45 additions & 0 deletions doc/iterations/2025.4/force_custom_edges_to_stay_rectilinear.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
= Force Custom Edges to Stay Rectilinear

== Problem

It is possible to add new bendpoints on an edge, but currently moving (or adding) a bendpoint causes the path to lose its rectilinearity.

== Key Result

Regardless of the actions performed on an edge, the resulting path must remain rectilinear.

== Solution

On edge, bendpoint (black-filled circle) are positioned to each segment corner and intermediate point (grey circle) on middle to each segment.

image:images/custom-edges-point-types.png[Custom edges point types, 70%]

Modify the algorithm for moving a bendpoint so that two new bendpoints are created (for one axis) at the positions of the adjacent intermediate point of the moved bendpoint.

image:images/custom-edges-new-bendpoints-one-axis.png[New benbpoints on one axis, 70%]

The same approach could be applied on the two axis in the same drag.

image:images/custom-edges-new-bendpoints-two-axis.png[New bendpoints on two axis, 70%]

Change the behavior of intermediate points so that they do not create new bendpoints but instead move existing adjacent bendpoints along an axis (x or y).
This axis is perpendicular to the segment in question.

image:images/custom-edges-intermediate-point-translation.png[Intermediate point translation, 60%]

To delete a bendpoint, align two segments to form a single segment (a margin will be implemented to facilitate this action).

image:images/custom-edges-before-bendpoint-suppression.png[Before bendpoint suppression, 50%]

image:images/custom-edges-after-bendpoint-suppression.png[After bendpoint suppression, 50%]

== Cutting Backs

It would be interesting to define the routing of an edge (rectilinear, oblique, etc...).

== Rabbit Holes

* Node handles are currently fixed, so it's not possible to modify the first and last edge segments directly.
* When the node is moved, the first bendpoint must be updated to preserve rectilinearity of the edge path.

== No-Gos
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 1fc20e7

Please sign in to comment.