128#ifndef vtkOpenVRRenderWindowInteractor_h
129#define vtkOpenVRRenderWindowInteractor_h
134#include "vtkRenderingOpenVRModule.h"
219 double wxyz[4],
double ppos[3],
double wdir[3]);
221 const float poseMatrix[3][4],
double pos[3],
double wxyz[4],
double ppos[3],
double wdir[3]);
249 vtkGetMacro(ActionManifestFileName, std::string);
250 vtkSetMacro(ActionManifestFileName, std::string);
257 vtkGetMacro(ActionSetName, std::string);
258 vtkSetMacro(ActionSetName, std::string);
271 static void (*ClassExitMethod)(
void*);
272 static void (*ClassExitMethodArgDelete)(
void*);
310 bool UseFunction =
false;
311 bool IsAnalog =
false;
319 vr::VRActionSetHandle_t ActionsetVTK = vr::k_ulInvalidActionSetHandle;
331 vr::VRInputValueHandle_t Source = vr::k_ulInvalidInputValueHandle;
a virtual camera for 3D rendering
a simple class to control print indentation
represent and manipulate 4x4 transformation matrices
Allocate and hold a VTK object.
vr::VRActionHandle_t ActionHandle
vtkCommand::EventIds EventId
std::function< void(vtkEventData *)> Function
implements OpenVR specific functions required by vtkRenderWindowInteractor.
void AddAction(std::string path, bool isAnalog, std::function< void(vtkEventData *)>)
Assign an event or std::function to an event path.
static void SetClassExitMethodArgDelete(void(*f)(void *))
Methods to set the default exit method for the class.
virtual double * GetPhysicalTranslation(vtkCamera *)
Set/Get the optional translation to map world coordinates into the 3D physical space (meters,...
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual int InternalDestroyTimer(int platformTimerId)
Win32-specific internal timer methods.
void ConvertOpenVRPoseToMatrices(const vr::TrackedDevicePose_t &tdPose, vtkMatrix4x4 *poseMatrixWorld, vtkMatrix4x4 *poseMatrixPhysical=nullptr)
void ConvertPoseToWorldCoordinates(const vr::TrackedDevicePose_t &tdPose, double pos[3], double wxyz[4], double ppos[3], double wdir[3])
virtual int InternalCreateTimer(int timerId, int timerType, unsigned long duration)
Win32-specific internal timer methods.
static vtkOpenVRRenderWindowInteractor * New()
Construct object so that light follows camera motion.
vtkEventDataDevice GetPointerDevice()
virtual void RecognizeComplexGesture(vtkEventDataDevice3D *edata)
std::map< std::string, ActionData > ActionMap
virtual void StartEventLoop()
This will start up the event loop and never return.
vtkOpenVRRenderWindowInteractor()
static void SetClassExitMethod(void(*f)(void *), void *arg)
Methods to set the default exit method for the class.
virtual void SetPhysicalScale(double)
Set/Get the optional translation to map world coordinates into the 3D physical space (meters,...
virtual void Initialize()
Initialize the event handler.
void AddAction(std::string path, vtkCommand::EventIds, bool isAnalog)
Assign an event or std::function to an event path.
virtual void ExitCallback()
These methods correspond to the Exit, User and Pick callbacks.
std::string ActionManifestFileName
std::string ActionSetName
void ConvertPoseMatrixToWorldCoordinates(const float poseMatrix[3][4], double pos[3], double wxyz[4], double ppos[3], double wdir[3])
static void * ClassExitMethodArg
Class variables so an exit method can be defined for this class (used to set different exit methods f...
void ProcessEvents() override
Run the event loop and return.
void GetStartingPhysicalToWorldMatrix(vtkMatrix4x4 *startingPhysicalToWorldMatrix)
Get the latest touchpad or joystick position for a device.
virtual double GetPhysicalScale()
Set/Get the optional translation to map world coordinates into the 3D physical space (meters,...
vtkNew< vtkMatrix4x4 > StartingPhysicalToWorldMatrix
Store physical to world matrix at the start of a multi-touch gesture.
void HandleGripEvents(vtkEventData *ed)
~vtkOpenVRRenderWindowInteractor() override
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)
adds support for 3D events to vtkRenderWindowInteractor.
abstract specification for renderers
vr::TrackedDevicePose_t LastPose
vtkEventDataDevice
platform-independent event data structures
const int vtkEventDataNumberOfDevices