Generify OpenVR module into a VR module and rework OpenVR module accordingly
Master issue for future VR developments #18302 (closed)
MR to adapt the Paraview OpenVR plugin (and rename it to VRPlugin) to work with theses new changes
MR for the functional Generic VR branch
This branch creates a new "VR" module to factorize code between OpenVR module (and future OpenXR module, not in this MR).
For instance, only the simplest factorization has been done to be merged quickly :
- Unchanged classes :
- the vtkOpenGLAvatar and its data (in the data/ folder)
- CollaborationHelper
- Follower
- HardwarePicker
- Menu Representation + Widget
- Panel Representation + Wiget
- Ray
- Classes that need to be overriden by specific API classes (OpenVR or OpenXR for example) :
- the Camera that act only as a shell to hold the GetTrackingToDCMatrix (used in vtkVRModel)
- the ControlsHelper to
InitControlPosition
at the controller's button position - The VRModel to :
- Create and setup the VBO+IBO from the controller mesh
- Create and load the texture object and model
- The RenderWindow to :
- Create the framebuffers
- Get the PoseMatrixWorld from an EventDataDevice
- Specify how to destroy specific API resources (ReleaseGraphicResources)
- Specify the size of the HMD
- Specify the name of the window
- Initialize and finalize the window (API initialization+shutdown, etc..)
- The Renderer to create a specialized Camera in
MakeCamera()
The InteractorStyle and RenderWindowInteractor are not handled here, as well as the overlay
Edited by Paul Lafoix