Skip to content

feat: Remote rendering 4.3c: Select parts by clicking a streamed frame - #188

Merged
LKasianAnsys merged 4 commits into
mainfrom
feat/4.3c-pick-parts-in-server-mode
Nov 3, 2026
Merged

LKasianAnsys merged 4 commits into
mainfrom
feat/4.3c-pick-parts-in-server-mode

Conversation

@LKasianAnsys

@LKasianAnsys LKasianAnsys commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Issue

Resolves #28

Context

This PR implements picking in VISOR's SERVER mode. Until now, clicking on a server-mode frame did not select any parts of a rendered dataset. This PR enables picking by sending the click to pick_part_at in render-window device pixels, and routse the result through a shared ViewerClickDispatcher used by both SERVER and CLIENT mode.

Manual check: in server mode, click on a part of a multiblock dataset. it should appear as selected in the tree view. In client mode, there should be no changes.

Copilot summary

This pull request introduces a new feature for VISOR's server mode: users can now select parts by clicking on a streamed frame. The implementation standardizes and improves the handling of viewer click events across both server and WASM renderers by introducing a shared ViewerClickDispatcher utility. It also improves error handling and adds comprehensive tests to ensure correct behavior. The most important changes are grouped below.

Remote Rendering Feature:

  • Added support for selecting parts by clicking a streamed frame in remote rendering 4.3c.

Viewer Click Handling Refactor:

  • Introduced the ViewerClickDispatcher utility to manage viewer click listeners and ensure only one pick operation runs at a time; this is now used by both the server (ServerRenderer) and WASM (VtkScene) renderers. [1] [2] [3] [4] [5]

Server Renderer Improvements:

  • Refactored ServerRenderer to use ViewerClickDispatcher for click handling, including normalized click position translation, error logging, and listener notification. [1] [2] [3] [4] [5]

WASM Renderer Improvements:

  • Updated VtkScene to use ViewerClickDispatcher, simplifying the click event flow and ensuring consistent pick dispatching logic with the server renderer. [1] [2] [3] [4] [5]

Testing and Error Handling:

  • Added and updated Jest tests to verify correct pick dispatching, listener notification, and error logging for failed picks. [1] [2] [3] [4]

These changes collectively improve user interaction with rendered frames and ensure robust, maintainable click-handling logic across the codebase.

@github-actions github-actions Bot added added enhancement New feature or request labels Oct 22, 2026
@LKasianAnsys
LKasianAnsys force-pushed the feat/4.3c-pick-parts-in-server-mode branch from c8ccff6 to 4dabd38 Compare October 26, 2026 14:16
@LKasianAnsys
LKasianAnsys force-pushed the feat/4.3c-pick-parts-in-server-mode branch from 4dabd38 to 776f1ff Compare October 26, 2026 17:33
@LKasianAnsys
LKasianAnsys force-pushed the feat/4.3c-pick-parts-in-server-mode branch from 776f1ff to 6a32355 Compare October 26, 2026 19:40
@LKasianAnsys
LKasianAnsys marked this pull request as ready for review October 26, 2026 20:20
@LKasianAnsys LKasianAnsys self-assigned this Oct 26, 2026
@LKasianAnsys
LKasianAnsys force-pushed the feat/4.3c-pick-parts-in-server-mode branch from 6a32355 to 15fb087 Compare October 28, 2026 14:10
@LKasianAnsys
LKasianAnsys force-pushed the feat/4.3c-pick-parts-in-server-mode branch from 15fb087 to 551fcc6 Compare October 28, 2026 16:16
@LKasianAnsys
LKasianAnsys force-pushed the feat/4.3c-pick-parts-in-server-mode branch from 551fcc6 to df94c42 Compare October 28, 2026 16:30
@LKasianAnsys
LKasianAnsys added this pull request to stack #197 October 29, 2026 20:54
@LKasianAnsys
LKasianAnsys force-pushed the feat/4.3c-pick-parts-in-server-mode branch from df94c42 to 99067d5 Compare October 29, 2026 21:45
@LKasianAnsys LKasianAnsys changed the title feat: [Remote rendering 4.3c] Select parts by clicking a streamed frame feat: Remote rendering 4.3c: Select parts by clicking a streamed frame Oct 29, 2026
@LKasianAnsys
LKasianAnsys force-pushed the feat/4.3c-pick-parts-in-server-mode branch 3 times, most recently from 01440f7 to 391efa1 Compare November 2, 2026 14:24

@ansBAkula ansBAkula left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested and works. So this is where the future work of selection features edges/faces/vertices (not just parts) is expected to go ?

Base automatically changed from feat/4.3b-show-panels-in-server-mode to main November 3, 2026 14:17
@LKasianAnsys
LKasianAnsys force-pushed the feat/4.3c-pick-parts-in-server-mode branch from 391efa1 to 7f2b24a Compare November 3, 2026 14:17
@LKasianAnsys

Copy link
Copy Markdown
Collaborator Author

@ansBAkula Yes that's right. For now it just logs a console error indicating geometry picking is not supported in server mode. The server-mode geometry picking itself will be added in a follow-up PR.

@ansBAkula ansBAkula left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

re-approve

@LKasianAnsys
LKasianAnsys merged commit a872095 into main Nov 3, 2026
16 checks passed
@LKasianAnsys
LKasianAnsys deleted the feat/4.3c-pick-parts-in-server-mode branch November 3, 2026 15:51
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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Remote rendering 4.3] RemoteCanvas frame display and interaction forwarding

3 participants