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

[Question]: Configure Edge to Edge Spacing for Libavoid #1056

Open
maxmrzk opened this issue Jul 31, 2024 · 2 comments
Open

[Question]: Configure Edge to Edge Spacing for Libavoid #1056

maxmrzk opened this issue Jul 31, 2024 · 2 comments
Labels
alg-libavoid Affects the ELK libavoid bridge bug Erroneous behaviour. question Request for support in using ELK.

Comments

@maxmrzk
Copy link

maxmrzk commented Jul 31, 2024

Im Routing connections with the libavoid layout algortihm. When doing so, sometimes Routes overlap instead of taking a different Path, even though there is enough space for the routes to be laid out. I'm looking for a configuration like CoreOptions.EdgeSpacing to set a fixed spacing distance for edges. The libavoid layout provider does not seem to take this option into account as it is not part of the algorithms routing parameters.

My current configuration, applied to parents, looks like this:
this.configurator.configure(ElkNode.class) .setProperty(LibavoidOptions.CROSSING_PENALTY, PATH_CROSSING_PENALTY) .setProperty(LibavoidOptions.FIXED_SHARED_PATH_PENALTY, SHARED_PATH_PENALTY) .setProperty(LibavoidOptions.IDEAL_NUDGING_DISTANCE, IDEAL_NUDGING_DISTANCE);
I also tried playing around with the other configuration options (also just increasing the penalty values) for libavoid mentioned in Reference, but none of them fully prevented this corner case behavior.

I know that this seems to be a very specific problem, and i am definetly not asking you to fix my code, but maybe there is an obvious fix for this, that im just missing. Should the libavoid process normally take edge to edge Spacing from the core options into account ?

Expected behavior
Routes always have enough spacing between them, so they are viusally distinct. (Given that there is enough Routing Space)

Screenshots
Sometimes:
routesOnTop
Expected:
routeSeperate

Additional context
Resulting BendingPoints of the two overlapping Routes in the picture:
Edge(1): Start: (5101.91,184.417) BP: (5118.41,184.417) BP: (5118.41,79.4167) BP: (4373.91,79.4167) BP: (4373.91,776.321) BP: (228.41,776.321) BP: (228.41,142.321) End: (286.91,142.321)
Edge(2): Start: (5101.91,190.417) BP: (5148.41,190.417) BP: (5148.41,79.4167) BP: (4346.91,79.4167) BP: (4346.91,372.417) BP: (3588.91,372.417) BP: (3588.91,79.4167) BP: (2097.41,79.4167) BP: (2097.41,190.417) End: (2113.91,190.417)

@maxmrzk maxmrzk added the question Request for support in using ELK. label Jul 31, 2024
@Eddykasp
Copy link
Contributor

I'm not sure what could be causing this issue. Do you have an example graph that reproduces this problem that we could use to look into this?

@Eddykasp Eddykasp added bug Erroneous behaviour. alg-libavoid Affects the ELK libavoid bridge labels Jul 31, 2024
@maxmrzk
Copy link
Author

maxmrzk commented Jul 31, 2024

Hi, thanks for the quick reply. Here is a test graph, this is the smallest one on which I was able to reproduce this problem.
It would be enough for me to know, if there is an intended configuration to enforce spacing between two edges, when using the libavoid routing algorithm.
samplegraph.json

@soerendomroes soerendomroes added this to the Release 0.9.2 milestone Aug 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
alg-libavoid Affects the ELK libavoid bridge bug Erroneous behaviour. question Request for support in using ELK.
Projects
None yet
Development

No branches or pull requests

3 participants