-
Notifications
You must be signed in to change notification settings - Fork 86
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
Tree Layout with vertical position constraints #960
base: master
Are you sure you want to change the base?
Conversation
add missing documentation implement quick fixes mark remaining issues with TODO
spacing.nodeNode is now considered when constructing outline nodes in addition to any existing node margins.
For invalid graphs throw UnsupportedConfigurationException instead of IllegalArgumentException
replace string with more appropriate enum edge layout strategy
remove image include
make layer distance property add descriptions to properties
refactors all qualified names and references to the new name
Correctly compute graph size and consider padding instead of magicnumber
Number phase packages to correspond to the phases declared in the phases enum.
...ins/org.eclipse.elk.alg.vertiflex/src/org/eclipse/elk/alg/vertiflex/EdgeRoutingStrategy.java
Outdated
Show resolved
Hide resolved
plugins/org.eclipse.elk.alg.vertiflex/src/org/eclipse/elk/alg/vertiflex/InternalProperties.java
Outdated
Show resolved
Hide resolved
...org.eclipse.elk.alg.vertiflex/src/org/eclipse/elk/alg/vertiflex/VertiFlexLayoutProvider.java
Outdated
Show resolved
Hide resolved
...org.eclipse.elk.alg.vertiflex/src/org/eclipse/elk/alg/vertiflex/VertiFlexLayoutProvider.java
Outdated
Show resolved
Hide resolved
...org.eclipse.elk.alg.vertiflex/src/org/eclipse/elk/alg/vertiflex/VertiFlexLayoutProvider.java
Outdated
Show resolved
Hide resolved
....eclipse.elk.alg.vertiflex/src/org/eclipse/elk/alg/vertiflex/p2relative/RelativeXPlacer.java
Show resolved
Hide resolved
....eclipse.elk.alg.vertiflex/src/org/eclipse/elk/alg/vertiflex/p3absolute/AbsoluteXPlacer.java
Show resolved
Hide resolved
...clipse.elk.alg.vertiflex/src/org/eclipse/elk/alg/vertiflex/p4edgerouting/BendEdgeRouter.java
Show resolved
Hide resolved
...clipse.elk.alg.vertiflex/src/org/eclipse/elk/alg/vertiflex/p4edgerouting/BendEdgeRouter.java
Show resolved
Hide resolved
...se.elk.alg.vertiflex/src/org/eclipse/elk/alg/vertiflex/p4edgerouting/StraightEdgeRouter.java
Show resolved
Hide resolved
- Correct the constraint validity computation - Correct the y placement calculation for nodes without constraint - Add more documentation
change rol and lol to right and left outline in vars and comments
allows using the node model as a tie breaker during the x placement of nodes to avoid certain ono cases The avoided situations are: - mirrored layouts that are obviously better - nodes that have the same height do not maintain the model order
plugins/org.eclipse.elk.alg.vertiflex/src/org/eclipse/elk/alg/vertiflex/VertiFlex.melk
Outdated
Show resolved
Hide resolved
plugins/org.eclipse.elk.alg.vertiflex/src/org/eclipse/elk/alg/vertiflex/VertiFlexUtil.java
Show resolved
Hide resolved
...rg.eclipse.elk.alg.vertiflex/src/org/eclipse/elk/alg/vertiflex/p1yplacement/NodeYPlacer.java
Outdated
Show resolved
Hide resolved
...e.elk.alg.vertiflex/src/org/eclipse/elk/alg/vertiflex/p2relative/InverseYNodeComparator.java
Outdated
Show resolved
Hide resolved
....eclipse.elk.alg.vertiflex/src/org/eclipse/elk/alg/vertiflex/p2relative/RelativeXPlacer.java
Outdated
Show resolved
Hide resolved
....eclipse.elk.alg.vertiflex/src/org/eclipse/elk/alg/vertiflex/p2relative/RelativeXPlacer.java
Outdated
Show resolved
Hide resolved
|
||
} | ||
|
||
/** Split nodes into two lists, while maintaining a sensible model order for nodes on the same height. */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe add a full javadoc if you need one?
} | ||
|
||
/** Combine outlines of multiple siblings. */ | ||
private void bundleChildren(final ElkNode leftSubtree, final ElkNode a, final ElkNode b) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this method deserves a bit more of a javadoc to explain what it does.
....eclipse.elk.alg.vertiflex/src/org/eclipse/elk/alg/vertiflex/p3absolute/AbsoluteXPlacer.java
Outdated
Show resolved
Hide resolved
improves documentation and cleans up comments
@Eddykasp could you add a check-list to highlight what is still missing here? |
Co-authored-by: Sören Domrös <[email protected]>
x1 = o1.getRelativeX(); | ||
x2 = o2.getRelativeX(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This might be a problem, if the outline nodes already have positions from the previous run?
// now change o1 | ||
o1 = o1.getNext(); | ||
if (o1 != null) { | ||
x1 += o1.getRelativeX(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Adding somehting to the x-coordinate may also be your problem.
Could you add a test for the "I do layout twice and everything breaks" problem? |
resolves #861
Implementation of a tree layout that can handle vertical position constraints for nodes. Created in the scope of the bachelor thesis of cln.
Todos:
Sample ELK graph:
Straight edges vs preserved model order