Skip to content

feat: [Remote rendering 3.3b] fold per-part edge visibility into the global toggle - #138

Open
LKasianAnsys wants to merge 2 commits into
feat/3.3a-server-tracked-widget-togglesfrom
feat/3.3b-fold-edge-visibility-into-global-toggle
Open

LKasianAnsys wants to merge 2 commits into
feat/3.3a-server-tracked-widget-togglesfrom
feat/3.3b-fold-edge-visibility-into-global-toggle

Conversation

@LKasianAnsys

@LKasianAnsys LKasianAnsys commented Sep 22, 2026 •

Copy link
Copy Markdown
Collaborator

Issue

Addresses #21

Context

This is the second PR of 4 to move ownership of widget state from the client to the server.

The wire frame widget requires the individual parts to toggle their edge visibility on or off, according to a single global toggle. VISOR does not support per-part controls for the edge visibilty, only a global setting that turns all parts on or off for the scene.

The individual parts currently have an edge visibility property stored as state, but this is not actually needed as we only ever toggle them on or off for the whole scene.

This PR is purely a cleanup: the per-part edge surface had no live caller, so the edge visibility application now happens in the edges widget itself.

Manual testing

No observable behaviour change is expected

Copilot summary

This pull request refactors how edge (wireframe) visibility is managed in the remote rendering system. Previously, edge visibility could be toggled per-part; this logic is now consolidated into a single global toggle, simplifying both the backend and frontend code. The change removes per-part edge visibility state and methods, updates the widget logic, and improves test coverage to ensure correct behavior.

Edge Visibility Refactor:

  • Removed all per-part edge visibility state and methods from the renderer backends (apply_edge_visibility and related logic in base.py, local_renderer.py, null_renderer.py). Edge visibility is now managed globally. [1] [2] [3]
  • Removed all per-part edge visibility state and methods from the scene graph and its API (edgeVisibility property, setEdgeVisibilityAsync method, and related internal state in VisorSceneGraph.tsx). [1] [2] [3] [4] [5]

Frontend/Widget Changes:

  • Updated EdgesWidget to enumerate all actor nodes and call the renderer’s per-actor setEdgeVisibilityAsync for each, using the global toggle state. The widget now receives the renderer as a dependency. [1] [2] [3]

Testing Improvements:

  • Added a new test to verify that toggling edge visibility globally triggers a per-actor call for every actor node, every time, regardless of the previous state. Updated scene graph test doubles to support this. [1] [2] [3] [4]

Documentation/Changelog:

  • Added a changelog entry summarizing the new global edge visibility behavior.

Cleanup:

  • Removed unused imports and dead code related to per-part edge visibility in the frontend. [1] [2]
  • Updated or removed related backend tests that are no longer relevant.

These changes streamline edge visibility management, reduce code complexity, and ensure consistent behavior across the application.

@LKasianAnsys LKasianAnsys self-assigned this Sep 22, 2026
@github-actions github-actions Bot added test Work associated with testing added enhancement New feature or request labels Sep 22, 2026
@LKasianAnsys
LKasianAnsys changed the base branch from main to feat/3.3a-server-tracked-widget-toggles September 22, 2026 22:12
@LKasianAnsys
LKasianAnsys force-pushed the feat/3.3b-fold-edge-visibility-into-global-toggle branch from 445008b to b10db12 Compare September 23, 2026 22:53
@LKasianAnsys
LKasianAnsys marked this pull request as ready for review September 23, 2026 23:00
@LKasianAnsys
LKasianAnsys force-pushed the feat/3.3b-fold-edge-visibility-into-global-toggle branch from b10db12 to da48fb9 Compare September 24, 2026 18:05
@LKasianAnsys
LKasianAnsys force-pushed the feat/3.3b-fold-edge-visibility-into-global-toggle branch from da48fb9 to 93267a1 Compare September 24, 2026 18:12

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

added enhancement New feature or request test Work associated with testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants