VTK
vtkOpenVRRenderWindowInteractor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkOpenVRRenderWindowInteractor.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
26 #ifndef vtkOpenVRRenderWindowInteractor_h
27 #define vtkOpenVRRenderWindowInteractor_h
28 
29 #include "vtkRenderingOpenVRModule.h" // For export macro
31 
32 #include "vtkOpenVRRenderWindow.h" // ivars
33 #include "vtkNew.h" // ivars
34 #include "vtkTransform.h" // ivars
35 
36 class VTKRENDERINGOPENVR_EXPORT vtkOpenVRRenderWindowInteractor : public vtkRenderWindowInteractor3D
37 {
38 public:
43 
45  void PrintSelf(ostream& os, vtkIndent indent);
46 
50  virtual void Initialize();
51 
57  void TerminateApp(void);
58 
60 
66  static void SetClassExitMethod(void (*f)(void *), void *arg);
67  static void SetClassExitMethodArgDelete(void (*f)(void *));
69 
74  virtual void ExitCallback();
75 
77 
81  virtual void SetPhysicalTranslation(vtkCamera *, double, double, double);
82  virtual double *GetPhysicalTranslation(vtkCamera *);
84 
85  virtual void DoOneEvent(vtkOpenVRRenderWindow *renWin, vtkRenderer *ren);
86 
87 protected:
90 
91  void UpdateTouchPadPosition(vr::IVRSystem *pHMD,
92  vr::TrackedDeviceIndex_t tdi);
93 
95 
100  static void (*ClassExitMethod)(void *);
101  static void (*ClassExitMethodArgDelete)(void *);
102  static void *ClassExitMethodArg;
104 
106 
110  virtual int InternalCreateTimer(int timerId, int timerType, unsigned long duration);
111  virtual int InternalDestroyTimer(int platformTimerId);
113 
119  virtual void StartEventLoop();
120 
121 
123 
124  // converts a device pose to a world coordinate
125  // position and orientation
127  vtkRenderer *ren,
128  vr::TrackedDevicePose_t &tdPose,
129  double pos[3],
130  double wxyz[4]);
131 
132 private:
134  void operator=(const vtkOpenVRRenderWindowInteractor&); // Not implemented.
135 };
136 
137 #endif
a virtual camera for 3D rendering
Definition: vtkCamera.h:51
a simple class to control print indentation
Definition: vtkIndent.h:40
implements OpenVR specific functions required by vtkRenderWindowInteractor.
void UpdateTouchPadPosition(vr::IVRSystem *pHMD, vr::TrackedDeviceIndex_t tdi)
static void SetClassExitMethodArgDelete(void(*f)(void *))
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual double * GetPhysicalTranslation(vtkCamera *)
void ConvertPoseToWorldCoordinates(vtkRenderer *ren, vr::TrackedDevicePose_t &tdPose, double pos[3], double wxyz[4])
virtual int InternalDestroyTimer(int platformTimerId)
virtual int InternalCreateTimer(int timerId, int timerType, unsigned long duration)
Win32-specific internal timer methods.
virtual void StartEventLoop()
This will start up the event loop and never return.
static void SetClassExitMethod(void(*f)(void *), void *arg)
Methods to set the default exit method for the class.
virtual void Initialize()
Initialize the event handler.
virtual void ExitCallback()
These methods correspond to the the Exit, User and Pick callbacks.
static vtkOpenVRRenderWindowInteractor * New()
Construct object so that light follows camera motion.
void TerminateApp(void)
OpenVR specific application terminate, calls ClassExitMethod then calls PostQuitMessage(0) to termina...
virtual void SetPhysicalTranslation(vtkCamera *, double, double, double)
Set/Get the optional translation to map world coordinates into the 3D physical space (meters,...
virtual void DoOneEvent(vtkOpenVRRenderWindow *renWin, vtkRenderer *ren)
OpenVR rendering window.
adds support for 3D events to vtkRenderWindowInteractor.
abstract specification for renderers
Definition: vtkRenderer.h:64