55 #ifndef vtkOpenVRRenderWindow_h
56 #define vtkOpenVRRenderWindow_h
60 #include "vtkRenderingOpenVRModule.h"
78 static bool IsHMDPresent();
94 vr::IVRSystem*
GetHMD() {
return this->HMD; }
122 void RenderOverlay();
139 void SetMatrixFromOpenVRPose(
vtkMatrix4x4* result,
const vr::TrackedDevicePose_t& vrPose);
151 uint32_t GetDeviceHandleForOpenVRHandle(vr::TrackedDeviceIndex_t
index);
162 bool CreateOneFramebuffer(
int nWidth,
int nHeight, FramebufferDesc& framebufferDesc);
167 std::string GetTrackedDeviceString(vr::IVRSystem* pHmd, vr::TrackedDeviceIndex_t unDevice,
168 vr::TrackedDeviceProperty prop, vr::TrackedPropertyError* peError =
nullptr);
176 vr::IVRSystem* HMD =
nullptr;
177 vr::IVRRenderModels* OpenVRRenderModels =
nullptr;
vtkSmartPointer< vtkOpenVROverlay > DashboardOverlay
represent and manipulate 4x4 transformation matrices
virtual void RenderModels()=0
Render the controller and base station models.
static vtkRenderWindow * New()
Construct an instance of vtkRenderWindow with its screen size set to 300x300, borders turned on...
vtkRenderWindowInteractor * MakeRenderWindowInteractor() override=0
Create an interactor to control renderers in this window.
virtual bool CreateFramebuffers(uint32_t viewCount=2)=0
window superclass for vtkRenderWindow
platform-independent render window interaction including picking and frame rate control.
vr::IVRRenderModels * GetOpenVRRenderModels()
Get the openVR Render Models.
virtual std::string GetWindowTitleFromAPI()
void Initialize() override
Initialize the rendering window.
vtkEventDataDevice
platform-independent event data structures
virtual bool GetSizeFromAPI()=0
Attempt to get the size of the display from the API and store it in this->Size.
void Render() override
Overridden to not release resources that would interfere with an external application's rendering...
virtual void StereoRenderComplete()
Handles work required once both views have been rendered when using stereo rendering.
void ReleaseGraphicsResources(vtkWindow *) override
Free up any graphics resources associated with this window a value of nullptr means the context may a...
virtual void UpdateHMDMatrixPose()
Update the HMD pose.
void StereoMidpoint() override
Intermediate method performs operations required between the rendering of the left and right eye...
vr::IVRSystem * GetHMD()
Get the system pointer.