-
Notifications
You must be signed in to change notification settings - Fork 61
Closed
Description
The refactoring is intended to help with:
- supporting both OpenVR and OpenXR in the context of this extension (
SlicerVirtualReality) - allowing code reuse within
SlicerMixedRealityextension
Approach
Similarly to the VTK refactoring introducing vtkRenderingVR common to both vtkRenderingOpenVR and vtkRenderingOpenXR, proposed approach is the following:
- Create
vtkMRMLAbstractVRViewNodethat will be common ancestor tovtkMRMLVirtualRealityViewNodeandvtkMRMLMixedRealityViewNode - Create
vtkSlicerAbstractVRLogicproviding generic methods like the following:AddVRViewNodeGetVRViewNodeGetDefaultVRViewNodeGetVRConnected/SetVRConnected(bool connect)1GetVRActive/SetVRActive(bool activate)SetDefaultReferenceViewSetVolumeRenderingLogic
- Create reusable widget
qSlicerVRConnectionPropertiesWidget2,qSlicerVRDisplayPropertiesWidget(andqSlicerVRAdvancedPropertiesWidget?) - Create
qMRMLAbstractVRView(common toqMRMLVirtualRealityViewandqMRMLMixedRealityView)- The view will support running using either the
OpenVRorOpenXRruntime qMRMLAbstractVRViewwill provide generic methods like the following:qMRMLAbstractVRViewPrivatewill provide generic methods like the following:startVR/stopVRdesiredUpdateRate/stillUpdateRatedoVRcreateRenderWindow/destroyRenderWindow
- The view will support running using either the
- Create
vtkSlicerAbstractVRViewInteractorStyle- Include code common to OpenVR, OpenXR
- Consolidate InteractorStyle integration #123
Footnotes
-
To support "remoting", the function
vtkSlicerMixedRealityLogic::SetVRConnected(bool connect, const std::string& playerIPAddress)will be changed to get/set the player IP usingvtkSlicerMixedRealityLogic::GetPlayerIPAddress/SetPlayerIPAddress↩ -
To support "remoting", the
SlicerMixedRealityextension will instead implementqSlicerVRRemoteConnectionPropertiesWidget↩ -
Will have to define what this mean in the context of mixed reality ↩
-
Since OpenXR introduce the concept of XR instance and session, we may have to revisit the terminology ↩
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels