Take the ImGui suite at 3.23.0 - #29
Merged
Merged
Conversation
3.23.0 makes the node graph's layout measure a link between the pins it is drawn between, rather than between the two node centres. Every force that shapes a link worked on node geometry before, so on a node with several rows of pins - which is most of them here - it was shaping a line the user could not see: a pair whose centres were level could still show a steep link, and the clearance that keeps a curve out from behind its own nodes was computed from a drop the curve is not drawn with. The renderer measures where each pin actually sits and feeds it to the layout during its own render pass, so nothing here has to call anything new. Behavioural change inside the layout, so nothing here changes but the pins. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01D2KNUKr1xJPTEdDmeF2tQN
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Why
3.23.0 makes the node graph's layout measure a link between the pins it is drawn between, rather than between the two node centres (ktsu-dev/ImGuiApp#364).
Every force that shapes a link — the spring, the levelling that prefers horizontal, and the clearance that keeps a curve out from behind its own nodes — worked on node geometry before. On a node with several rows of pins, which is most of them in this editor, those differ by most of the node's height. So the layout was shaping a line nobody can see: a pair whose centres were perfectly level could still show a steep link, and the clearance was computed from a vertical drop the curve isn't drawn with.
This matters for the two changes already in 3.21.0 and 3.22.0 — both were operating on centres, so this is the first version where all three forces act on the geometry actually on screen.
The renderer measures where each pin sits and feeds it to the layout during its own render pass, so nothing here has to call anything new.
What changed
Directory.Packages.propsonly — the six packages published from the ImGuiApp repo, 3.22.0 to 3.23.0:ktsu.ImGui.App,ktsu.ImGui.App.Testing,ktsu.ImGui.SyntaxHighlighting,ktsu.ImGui.Widgets,ktsu.ImGui.NodeEditor,ktsu.ForceDirectedLayout.Verification
a5989ed, 10:02:46Z) rather than trusting the version number.NU1102because one package lagged the others, and cleared the NuGet HTTP cache, which had kept resolving a stale index even after publication.dotnet build -c Releaseclean,Coder.Test329/329 against 3.23.0.Not verified visually. This environment is headless, and since the layout is now shaping the real curves the result may look meaningfully different from 3.22.0 —
LinkFlatteningStrength(default0.5) is worth re-judging against this rather than against what came before.🤖 Generated with Claude Code
https://claude.ai/code/session_01D2KNUKr1xJPTEdDmeF2tQN
Generated by Claude Code