Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Edge rendering details #8139

Closed
2 tasks done
Tracked by #9007
kazcw opened this issue Oct 24, 2023 · 3 comments
Closed
2 tasks done
Tracked by #9007

Edge rendering details #8139

kazcw opened this issue Oct 24, 2023 · 3 comments
Assignees
Labels
-gui d-easy Difficulty: little prior knowledge required p-medium Should be completed in the next few sprints
Milestone

Comments

@kazcw
Copy link
Contributor

kazcw commented Oct 24, 2023

  • Fix output ports anti-aliasing: The end-caps and variable-width portions of output ports are separate objects in order to efficiently tie the variable-width portion to the node's width. They need to overlap each other and the node in order to avoid apparent gaps due inexact FP math and antialiasing.
  • Z-order: A disconnected edge should render above nodes (except the attached node); target-attachment segments should be rendered above nodes. As individual components of an SVG object cannot be given different Z-indexes, objects that need different stacking should be rendered by separate component instantiations. (Target attachments could be drawn by the nodes, but they'll need the coloring information computed for rendering the edges.)
mergify bot pushed a commit that referenced this issue Oct 25, 2023
[vokoscreenNG-2023-10-23_06-35-31.webm](https://github.com/enso-org/enso/assets/1047859/d8a5ffc5-4677-4264-a246-8def4418505a)

- Implement disconnected edges and edge interactions (#7864).
- Port edge layout from Rust.
- Implement output ports, hover extensions, backward-edge arrows, hover-splitting.

# Important Notes
- A new `currentInteraction` API supports mutually-exclusive interactions; this is used to cancel edge creation when the CB is opened. We can use it more generally to ensure only one major interaction is ongoing at a time.
- Remaining details to reach parity with gui1 edges: #8139
@farmaazon farmaazon added d-easy Difficulty: little prior knowledge required p-medium Should be completed in the next few sprints labels Nov 8, 2023
@farmaazon
Copy link
Contributor

farmaazon commented Nov 30, 2023

Refinement notes:

  • In the connected edges, "above node" could be just a part of the port.
  • In general, the path of the edge should just start where the node ends.

@kazcw
Copy link
Contributor Author

kazcw commented Feb 14, 2024

The issues:

Incoming edge is not drawn above node background:

image

Disconnected edge is not drawn above other nodes:

image

@enso-bot
Copy link

enso-bot bot commented Feb 15, 2024

Keziah Wesley reports a new STANDUP for yesterday (2024-02-14):

Progress: Implemented edge layering for target-attachment bits and unconnected edges. It should be finished by 2024-02-14.

Next Day: Next day I will be working on the #8238 task. Address review on code-editor PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-gui d-easy Difficulty: little prior knowledge required p-medium Should be completed in the next few sprints
Projects
Archived in project
Development

No branches or pull requests

3 participants