150#ifndef vtkOpenVRRenderWindow_h
151#define vtkOpenVRRenderWindow_h
153#include "vtkRenderingOpenVRModule.h"
182 vr::IVRSystem*
GetHMD() {
return this->HMD; }
223 vtkGetMacro(BaseStationVisibility,
bool);
224 vtkSetMacro(BaseStationVisibility,
bool);
225 vtkBooleanMacro(BaseStationVisibility,
bool);
257 return this->GetTrackedDeviceIndexForDevice(dev, 0);
267 return this->GetTrackedDevicePose(idx, 0);
272 return this->TrackedDevicePose[idx];
305 vr::TrackedDeviceProperty prop, vr::TrackedPropertyError* peError =
nullptr);
311 vr::TrackedDevicePose_t TrackedDevicePose[vr::k_unMaxTrackedDeviceCount];
a virtual camera for 3D rendering
represent and manipulate 4x4 transformation matrices
bool GetPoseMatrixWorldFromDevice(vtkEventDataDevice device, vtkMatrix4x4 *poseMatrixWorld) override
Store in poseMatrixWorld the pose matrix in world coordinate from an event data device.
bool GetSizeFromAPI() override
Attempt to get the size of the display from the API and store it in this->Size.
void UpdateHMDMatrixPose() override
Update the HMD pose based on hardware pose and physical to world transform.
vr::IVRSystem * GetHMD()
Get the system pointer.
void ConvertOpenVRPoseToMatrices(const vr::TrackedDevicePose_t &tdPose, vtkMatrix4x4 *poseMatrixWorld, vtkMatrix4x4 *poseMatrixPhysical=nullptr)
static vtkOpenVRRenderWindow * New()
vr::TrackedDevicePose_t * GetTrackedDevicePose(vtkEventDataDevice idx, uint32_t index)
void SetDashboardOverlay(vtkOpenVROverlay *)
vr::TrackedDeviceIndex_t GetTrackedDeviceIndexForDevice(vtkEventDataDevice dev)
Get the index corresponding to the tracked device.
vtkRenderWindowInteractor * MakeRenderWindowInteractor() override
Create an interactor to control renderers in this window.
void RenderModels() override
Render the controller and base station models.
vr::IVRRenderModels * GetOpenVRRenderModels()
Get the openVR Render Models.
bool CreateFramebuffers() override
vr::TrackedDevicePose_t * GetTrackedDevicePose(vtkEventDataDevice idx)
Get the most recent pose corresponding to the tracked device.
vr::TrackedDeviceIndex_t GetTrackedDeviceIndexForDevice(vtkEventDataDevice dev, uint32_t index)
vr::TrackedDevicePose_t & GetTrackedDevicePose(vr::TrackedDeviceIndex_t idx)
std::string GetWindowTitleFromAPI() override
vtkOpenVRModel * FindOrLoadRenderModel(const char *modelName)
bool CreateOneFramebuffer(int nWidth, int nHeight, FramebufferDesc &framebufferDesc)
~vtkOpenVRRenderWindow() override
vtkEventDataDevice GetDeviceFromDeviceIndex(vr::TrackedDeviceIndex_t index)
Get the EventDataDevice corresponding to the OpenVR index.
uint32_t GetNumberOfTrackedDevicesForDevice(vtkEventDataDevice dev)
bool BaseStationVisibility
void StereoRenderComplete() override
Handles work required once both views have been rendered when using stereo rendering.
void ReleaseGraphicsResources(vtkWindow *renWin) override
Free up any graphics resources associated with this window a value of NULL means the context may alre...
void RenderOverlay()
Draw the overlay.
void StereoMidpoint() override
Intermediate method performs operations required between the rendering of the left and right eye.
vtkVRModel * GetTrackedDeviceModel(vtkEventDataDevice idx, uint32_t index) override
Get the VRModel corresponding to the tracked device.
std::string GetTrackedDeviceString(vr::IVRSystem *pHmd, vr::TrackedDeviceIndex_t unDevice, vr::TrackedDeviceProperty prop, vr::TrackedPropertyError *peError=nullptr)
void Render() override
Overridden to not release resources that would interfere with an external application's rendering.
void Initialize(void) override
Initialize the rendering window.
vtkOpenVROverlay * DashboardOverlay
vr::IVRRenderModels * OpenVRRenderModels
static bool IsHMDPresent()
platform-independent render window interaction including picking and frame rate control.
vtkVRModel * GetTrackedDeviceModel(vtkEventDataDevice idx)
Get the VRModel corresponding to the tracked device.
window superclass for vtkRenderWindow
vtkEventDataDevice
platform-independent event data structures