10#ifndef vtkVRInteractorStyle_h 
   11#define vtkVRInteractorStyle_h 
   16#include "vtkRenderingVRModule.h"  
   22VTK_ABI_NAMESPACE_BEGIN
 
  127  vtkSetMacro(HoverPick, 
bool);
 
  128  vtkGetMacro(HoverPick, 
bool);
 
  129  vtkBooleanMacro(HoverPick, 
bool);
 
  137  vtkSetMacro(GrabWithRay, 
bool);
 
  138  vtkGetMacro(GrabWithRay, 
bool);
 
  139  vtkBooleanMacro(GrabWithRay, 
bool);
 
  162    return this->InteractionState[
static_cast<int>(device)];
 
  233    vtkObject* 
object, 
unsigned long event, 
void* clientdata, 
void* calldata);
 
  251  bool HoverPick = 
false;
 
  252  bool GrabWithRay = 
true;
 
  264  std::map<std::tuple<vtkCommand::EventIds, vtkEventDataAction>, 
int> 
InputMap;
 
  273  double HeadsetDir[3] = { 0, 0, 0 };
 
  283  double LastGroundMovementTrackPadPosition[2] = { 0, 0 };
 
  284  double LastElevationTrackPadPosition[2] = { 0, 0 };
 
supports function callbacks
 
abstract class to specify cell behavior
 
a simple class to control print indentation
 
extends interaction to support 3D input
 
Allocate and hold a VTK object.
 
abstract base class for most VTK objects
 
perform various plane computations
 
represents an 3D object for placement in a rendered scene
 
platform-independent render window interaction including picking and frame rate control.
 
data object that represents a "selection" in VTK.
 
create a polygonal sphere centered at the origin
 
An actor that displays text.
 
Tooltip helper explaining controls Helper class to draw one tooltip per button around the controller.
 
pick an actor/prop given a controller position and orientation
 
Extended from vtkInteractorStyle3D to override command methods.
 
void ShowPickSphere(double *pos, double radius, vtkProp3D *)
Make the pick actor a sphere of given radius centered at given position, and show it.
 
void PositionProp(vtkEventData *, double *lwpos=nullptr, double *lwori=nullptr) override
Methods for interaction.
 
void ProbeData(vtkEventDataDevice controller)
Methods for interaction.
 
virtual void SetupActions(vtkRenderWindowInteractor *iren)=0
Setup default actions defined with an action path and a corresponding command.
 
vtkVRMenuWidget * GetMenu()
Return the menu to allow the user to add options to it.
 
void StartMovement3D(int interactionState, vtkEventDataDevice3D *)
Interaction mode entry points.
 
std::vector< vtkSmartPointer< vtkPlane > > ClippingPlanes
 
vtkNew< vtkTextActor3D > TextActor3D
 
void Clip(vtkEventDataDevice3D *)
Methods for interaction.
 
void ShowBillboard(const std::string &text)
Show/hide billboard with given text string.
 
void SetDrawControls(bool)
Control visibility of descriptive tooltips for controller/HMD models.
 
void OnNextPose3D(vtkEventData *edata) override
Override generic event bindings to call the corresponding action.
 
void EndAction(int VTKIS_STATE, vtkEventDataDevice3D *edata)
 
void OnSelect3D(vtkEventData *edata) override
Override generic event bindings to call the corresponding action.
 
virtual vtkVRControlsHelper * MakeControlsHelper()=0
Creates a new ControlsHelper suitable for use with the child class.
 
vtkNew< vtkCallbackCommand > MenuCommand
 
void Movement3D(int interactionState, vtkEventData *edata)
Update the 3D movement according to the given interaction state.
 
bool HardwareSelect(vtkEventDataDevice controller, bool actorPassOnly)
Pick using hardware selector.
 
void HidePickActor()
Hide the pick actor (sphere or polydata).
 
int GetInteractionState(vtkEventDataDevice device)
Return interaction state for the specified device (dolly, pick, none, etc...).
 
void StartPick(vtkEventDataDevice3D *)
Interaction mode entry points.
 
void OnMenu3D(vtkEventData *edata) override
Override generic event bindings to call the corresponding action.
 
void OnPinch() override
Complex gesture events binding.
 
void StartAction(int VTKIS_STATE, vtkEventDataDevice3D *edata)
Utility routines.
 
void EndPick(vtkEventDataDevice3D *)
Interaction mode entry points.
 
vtkNew< vtkTimerLog > LastGroundMovement3DEventTime
 
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
 
void AddTooltipForInput(vtkEventDataDevice device, vtkEventDataDeviceInput input, const std::string &text={})
Define the helper text that goes with an input.
 
void OnElevation3D(vtkEventData *edata) override
Override generic event bindings to call the corresponding action.
 
void StartClip(vtkEventDataDevice3D *)
Interaction mode entry points.
 
vtkNew< vtkTimerLog > LastElevation3DEventTime
 
void EndPickCallback(vtkSelection *sel)
 
void MapInputToAction(vtkCommand::EventIds eid, vtkEventDataAction action, int state)
Map controller inputs to actions.
 
void EndClip(vtkEventDataDevice3D *)
Interaction mode entry points.
 
vtkNew< vtkVRMenuRepresentation > MenuRepresentation
 
void SetInteractor(vtkRenderWindowInteractor *iren) override
Set the Interactor wrapper being controlled by this object.
 
vtkNew< vtkVRHardwarePicker > HardwarePicker
 
void HideBillboard()
Show/hide billboard with given text string.
 
void ShowRay(vtkEventDataDevice controller)
Show/hide the ray for the specified controller.
 
~vtkVRInteractorStyle() override
 
void EndMovement3D(vtkEventDataDevice3D *)
Interaction mode entry points.
 
static void MenuCallback(vtkObject *object, unsigned long event, void *clientdata, void *calldata)
 
vtkNew< vtkVRMenuWidget > Menu
 
void EndPositionProp(vtkEventDataDevice3D *)
Interaction mode entry points.
 
void StartLoadCamPose(vtkEventDataDevice3D *)
Interaction mode entry points.
 
void OnViewerMovement3D(vtkEventData *edata) override
Override generic event bindings to call the corresponding action.
 
void HideRay(vtkEventDataDevice controller)
Show/hide the ray for the specified controller.
 
std::map< std::tuple< vtkCommand::EventIds, vtkEventDataAction >, int > InputMap
 
void ShowPickCell(vtkCell *cell, vtkProp3D *)
Make the pick actor a polydata built from the points and edges of the given cell, and show it.
 
void OnRotate() override
Complex gesture events binding.
 
void OnPan() override
Complex gesture events binding.
 
void OnMove3D(vtkEventData *edata) override
Override generic event bindings to call the corresponding action.
 
vtkNew< vtkActor > PickActor
 
std::vector< vtkSmartPointer< vtkProp3D > > InteractionProps
 
virtual void LoadNextCameraPose()=0
Methods for interaction.
 
void ToggleDrawControls()
Control visibility of descriptive tooltips for controller/HMD models.
 
void GroundMovement3D(vtkEventDataDevice3D *)
Move the camera on the "XY" plan (ground) using the thumbstick/trackpad position (up/down and left/ri...
 
void UpdateRay(vtkEventDataDevice controller)
Update and draw the ray.
 
void MapInputToAction(vtkCommand::EventIds eid, int state)
Map controller inputs to actions.
 
void Elevation3D(vtkEventDataDevice3D *)
Move the camera following the "Z" axis (elevation) using the thumbstick/trackpad position (up/down).
 
void EndLoadCamPose(vtkEventDataDevice3D *)
Interaction mode entry points.
 
void StartPositionProp(vtkEventDataDevice3D *)
Interaction mode entry points.
 
vtkNew< vtkSphereSource > Sphere
 
vtkEventDataDevice
platform-independent event data structures
 
const int vtkEventDataNumberOfDevices
 
const int vtkEventDataNumberOfInputs