[slicer-5.6-v9.2.20230607-1ff325c54-2] Update VTK backporting VR, OpenVR and OpenXR improvements #50
Merged
jcfr merged 16 commits intoSlicer:slicer-5.6-v9.2.20230607-1ff325c54-2from Dec 30, 2023
Conversation
…ction() Adds public API to support querying which interaction state `VTKIS_*STATE*` is mapped to a given pair `(EventId, EventDataAction)`. Merge-request: vtk/vtk!10784 (cherry picked from commit b2e3406)
This helps client applications supporting for both OpenXR and OpenVR runtimes. Merge-request: vtk/vtk!10785 (cherry picked from commit bc22e02)
…public This helps client applications that are externally re-mapping the buttons associated with complex gesture. Merge-request: vtk/vtk!10786 (cherry picked from commit 28945f3)
…e gesture being recognized This helps client applications redefining the heuristic used to recognized complex gestures. Merge-request: vtk/vtk!10786 (cherry picked from commit 32a2899)
…esture being recognized This helps client applications redefining the heuristic used to recognized complex gestures. Merge-request: vtk/vtk!10786 (cherry picked from commit 6a574fe)
This helps client applications redefining the heuristic used to recognized complex gestures. This is similar to the existing API for querying the number of pointers down. See vtkRenderWindowInteractor::GetPointersDownCount() Merge-request: vtk/vtk!10786 (cherry picked from commit 057d96d)
This helps client applications redefining the heuristic used to recognized complex gestures. Merge-request: vtk/vtk!10786 (cherry picked from commit fb85f70)
This helps client applications redefining the heuristic used to recognized complex gestures. Merge-request: vtk/vtk!10786 (cherry picked from commit 1fb631c)
This helps client applications redefining the heuristic used to recognized complex gestures. Merge-request: vtk/vtk!10786 (cherry picked from commit f09ab08)
…r style This helps client applications that are externally setting the interaction states. It allows to more easily share custom interactor style logic common to both OpenVR and OpenXR runtime. Merge-request: vtk/vtk!10789 (cherry picked from commit 5768bdf)
…ction() This commit improves consistency in the signature of the OpenVR interactor's `AddAction()` function. The update ensures backward compatibility and aligns the function with its counterpart in other interactors. This change sets the stage for a subsequent commit that will update the base class, introducing a virtual interface for adding actions. This change is backward compatible and intended to improve consistency between the signature of the function in both interactors. And is done anticipating a subsequent commit updating the base class to add a virtual interface for adding action. Merge-request: vtk/vtk!10785 (cherry picked from commit 64c0ef6)
This commit virtualizes the `AddAction()` functions in the VR interactor. The addition of the `isAnalog` parameter aims to facilitate client applications that support both OpenXR and OpenVR runtimes. Although the `isAnalog` parameter is ignored in the context of the OpenXR interactor, these signatures are designed to meet the requirements of the base class interface. Merge-request: vtk/vtk!10785 (cherry picked from commit 16fa4f1)
…erWindow Initialization This commit addresses warnings in the OpenXR rendering pipeline that occurred immediately after initialization. In such cases, when the `XrFrameState.shouldRender` property, used to set the `ShouldRenderCurrentFrame` flag, evaluates to False, we eliminate explicit use of the `vtkWarningMacro`. This prevents warnings like the following from being reported after a standard pipeline initialization: ``` Warning: In vtkOpenXRRenderWindow.cxx, line 189 vtkOpenXRRenderWindow (0000028A641868D0): Not rendered ``` This resolves issue vtk/vtk#19112 (OpenXR Renderer: always warn "Not rendered" at startup). Additionally, the associated docstring for the `ShouldRenderCurrentFrame` instance variable has been updated for clarity. Furthermore, the flag "ShouldRenderCurrentFrame" is proactively reset to avoid any attempted rendering if the function `WaitAndBeginFrame()`, used in `vtkOpenXRRenderWindow::Render`, exits prematurely. For more details on `XrFrameState` and `XrFrameBeginInfo`, refer to the OpenXR specification: - https://registry.khronos.org/OpenXR/specs/1.0/man/html/XrFrameState.html - https://registry.khronos.org/OpenXR/specs/1.0/man/html/XrFrameBeginInfo.html Merge-request: vtk/vtk!10794 (cherry picked from commit 2baaba8)
Copied from `Plugins/XRInterface` directory associated with commit Kitware/ParaView@ec4111e7c References: * https://github.com/Kitware/ParaView/blob/ec4111e7c46033549622c01d47aba0333ac9412f/Plugins/XRInterface/Plugin/pv_openxr_actions.json * https://github.com/Kitware/ParaView/blob/ec4111e7c46033549622c01d47aba0333ac9412f/Plugins/XRInterface/Plugin/pv_openxr_binding_oculus_touch_controller.json (cherry picked from commit b9aae67)
Member
Author
|
Corresponding changes have been fetched in the
For example, here is the output of the |
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.
These changes correspond to commits directly pushed to the
slicer-v9.2.20230607-1ff325c54-2and integrated in Slicer through these pull requests:For convenience, description of the associated pull requests are copied below.
Pull request #7514
Updates VTK to support the integration of multiple runtime into the SlicerVirtualReality extension.
The following merge requests, including the backported commits referenced below, have been submitted to upstream VTK for reference
VR: Update interactor style API adding GetMappedAction().See https://gitlab.kitware.com/vtk/vtk/-/merge_requests/10784
VR: Declare AddAction() functions as virtual.See https://gitlab.kitware.com/vtk/vtk/-/merge_requests/10785
VR: Update vtkVRRenderWindowInteractor marking ComplexGesture recognition functions as public.See https://gitlab.kitware.com/vtk/vtk/-/merge_requests/10786
VR: Add SetInteractionState() API to VR interactor style.See https://gitlab.kitware.com/vtk/vtk/-/merge_requests/10789
List of VTK changes:
Pull request #7516
Updates VTK to support integration of the OpenXR runtime into the SlicerVirtualReality extension.
The following merge requests, including the backported commits referenced below, have been submitted to upstream VTK for reference
VR: Declare AddAction() functions as virtualSee https://gitlab.kitware.com/vtk/vtk/-/merge_requests/10785VR: Resolve "Not rendered" warnings after XR RenderWindow InitializationSee https://gitlab.kitware.com/vtk/vtk/-/merge_requests/10794Additionally this commit also adds the OpenXR bindings for the oculus touch controller copied from Kitware/ParaView@ec4111e7c. See
Plugins/XRInterface/Plugin/pv_openxr_binding_oculus_touch_controller.json.List of VTK changes: