Skip to content

Add temporary dendrogram tree overlay with rising water cut - #342

Merged
cornhundred merged 10 commits into
mainfrom
temp_dendro_tree_viz
Sep 29, 2026
Merged

cornhundred merged 10 commits into
mainfrom
temp_dendro_tree_viz

Conversation

@cornhundred

@cornhundred cornhundred commented Sep 27, 2026 •

Copy link
Copy Markdown
Collaborator

Zoom-aware temporary dendrogram

The temporary tree overlay now follows the Clustergram’s zoom and pan. Zooming into rows enlarges and repositions the row branches; horizontal zoom does the same for columns. This lets users inspect subclusters while keeping the tree aligned with the matrix.

The translucent white backdrop and blue cut rectangle remain fitted to the visible matrix. Only the leaf axis follows zoom and pan; the linkage-distance axis retains its scale, keeping the cut position visible.

Implementation

  • js/ui/dendro_tree_overlay.js

    • Projects leaf positions through the active matrix viewport.
    • Uses the rendered camera, including intermediate animation frames.
    • Resolves leaf positions through the existing matrix layout, including reduced RANK views and composition layouts.
    • Places internal branches at the midpoint of their children.
    • Refreshes when the viewport changes without reopening the overlay or extending its dismissal timer.
  • js/viz/matrix_viz.js

    • Passes the deck instance to the overlay.
    • Synchronizes the overlay through onAfterRender.
  • js/__tests__/dendro_tree_overlay.test.js

    • Adds regression coverage for zoom, pan, independent axes, RANK mapping, composition geometry, animation frames, and dismissal timing.
  • Documentation and the generated JavaScript bundle were updated.

Review focus

  1. Alignment: Branch endpoints should remain aligned with their matrix rows or columns at different zoom levels and pan positions.
  2. Filtering: RANK views must use the reduced linkage’s mapping back to the full matrix.
  3. Cut behavior: The blue rectangle should respond to the slicing slider while retaining its visible extent during zoom.
  4. Lifecycle: Camera updates must not reopen a hidden overlay, delay dismissal, or leave callbacks running after teardown.

Validation

  • All 266 JavaScript tests passed across 37 suites.
  • ESLint, formatting, build, and diff checks passed.
  • Browser checks covered vertical and horizontal zoom, panning, reduced RANK views, live camera updates, dismissal, and widget cleanup.

@cornhundred
cornhundred added this pull request to stack #335 September 27, 2026 02:01
Base automatically changed from manage_widget_state to main September 28, 2026 18:23
@cornhundred
cornhundred marked this pull request as ready for review September 28, 2026 18:26
@cornhundred
cornhundred marked this pull request as draft September 28, 2026 20:32
@cornhundred
cornhundred marked this pull request as ready for review September 29, 2026 13:44
@cornhundred
cornhundred merged commit 5e3330b into main Sep 29, 2026
7 of 9 checks passed
@cornhundred
cornhundred deleted the temp_dendro_tree_viz branch September 29, 2026 14:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant