MCPcopy Create free account
hub / github.com/Kitware/VTK / DoOneEvent

Method DoOneEvent

Rendering/OpenVR/vtkOpenVRRenderWindowInteractor.cxx:68–352  ·  view source on GitHub ↗

------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

66
67//------------------------------------------------------------------------------
68void vtkOpenVRRenderWindowInteractor::DoOneEvent(vtkVRRenderWindow* renWin, vtkRenderer* ren)
69{
70 vtkOpenVRRenderWindow* oRenWin = vtkOpenVRRenderWindow::SafeDownCast(renWin);
71
72 if (!oRenWin || !ren)
73 {
74 return;
75 }
76 vr::IVRSystem* pHMD = oRenWin->GetHMD();
77
78 if (!pHMD)
79 {
80 // try rendering to create the HMD connection
81 oRenWin->Render();
82 return;
83 }
84
85 vr::VREvent_t event;
86 vtkOpenVROverlay* ovl = oRenWin->GetDashboardOverlay();
87 bool result = false;
88
89 if (vr::VROverlay() && vr::VROverlay()->IsOverlayVisible(ovl->GetOverlayHandle()))
90 {
91 result =
92 vr::VROverlay()->PollNextOverlayEvent(ovl->GetOverlayHandle(), &event, sizeof(vr::VREvent_t));
93
94 if (result)
95 {
96 int height = ovl->GetOverlayTexture()->GetHeight();
97 switch (event.eventType)
98 {
99 case vr::VREvent_MouseButtonDown:
100 {
101 if (event.data.mouse.button == vr::VRMouseButton_Left)
102 {
103 ovl->MouseButtonPress(event.data.mouse.x, height - event.data.mouse.y - 1);
104 }
105 }
106 break;
107
108 case vr::VREvent_MouseButtonUp:
109 {
110 if (event.data.mouse.button == vr::VRMouseButton_Left)
111 {
112 ovl->MouseButtonRelease(event.data.mouse.x, height - event.data.mouse.y - 1);
113 }
114 }
115 break;
116
117 case vr::VREvent_MouseMove:
118 {
119 ovl->MouseMoved(event.data.mouse.x, height - event.data.mouse.y - 1);
120 }
121 break;
122
123 case vr::VREvent_OverlayShown:
124 {
125 oRenWin->RenderOverlay();

Callers 2

TestOpenVRRenderingFunction · 0.45

Calls 15

MouseButtonPressMethod · 0.80
MouseButtonReleaseMethod · 0.80
MouseMovedMethod · 0.80
InvokeEventMethod · 0.80
SetActionMethod · 0.80
FunctionMethod · 0.80
RenderMethod · 0.65
DeleteMethod · 0.65
NewFunction · 0.50

Tested by 2

TestOpenVRRenderingFunction · 0.36