17#ifndef vtkRenderWindowInteractor3D_h 
   18#define vtkRenderWindowInteractor3D_h 
   21#include "vtkRenderingCoreModule.h"  
   25VTK_ABI_NAMESPACE_BEGIN
 
   68    return this->WorldEventPositions[pointerIndex];
 
   76    return this->LastWorldEventPositions[pointerIndex];
 
   84    return this->WorldEventOrientations[pointerIndex];
 
   92    return this->LastWorldEventOrientations[pointerIndex];
 
  110    vtkDebugMacro(<< this->
GetClassName() << 
" (" << 
this << 
"): setting PhysicalEventPosition to (" 
  111                  << x << 
"," << y << 
"," << z << 
") for pointerIndex number " << pointerIndex);
 
  112    if (this->PhysicalEventPositions[pointerIndex][0] != x ||
 
  113      this->PhysicalEventPositions[pointerIndex][1] != y ||
 
  114      this->PhysicalEventPositions[pointerIndex][2] != z ||
 
  115      this->LastPhysicalEventPositions[pointerIndex][0] != x ||
 
  116      this->LastPhysicalEventPositions[pointerIndex][1] != y ||
 
  117      this->LastPhysicalEventPositions[pointerIndex][2] != z)
 
  119      this->LastPhysicalEventPositions[pointerIndex][0] =
 
  120        this->PhysicalEventPositions[pointerIndex][0];
 
  121      this->LastPhysicalEventPositions[pointerIndex][1] =
 
  122        this->PhysicalEventPositions[pointerIndex][1];
 
  123      this->LastPhysicalEventPositions[pointerIndex][2] =
 
  124        this->PhysicalEventPositions[pointerIndex][2];
 
  125      this->PhysicalEventPositions[pointerIndex][0] = x;
 
  126      this->PhysicalEventPositions[pointerIndex][1] = y;
 
  127      this->PhysicalEventPositions[pointerIndex][2] = z;
 
  157    vtkDebugMacro(<< this->
GetClassName() << 
" (" << 
this << 
"): setting WorldEventPosition to (" 
  158                  << x << 
"," << y << 
"," << z << 
") for pointerIndex number " << pointerIndex);
 
  159    if (this->WorldEventPositions[pointerIndex][0] != x ||
 
  160      this->WorldEventPositions[pointerIndex][1] != y ||
 
  161      this->WorldEventPositions[pointerIndex][2] != z ||
 
  162      this->LastWorldEventPositions[pointerIndex][0] != x ||
 
  163      this->LastWorldEventPositions[pointerIndex][1] != y ||
 
  164      this->LastWorldEventPositions[pointerIndex][2] != z)
 
  166      this->LastWorldEventPositions[pointerIndex][0] = this->WorldEventPositions[pointerIndex][0];
 
  167      this->LastWorldEventPositions[pointerIndex][1] = this->WorldEventPositions[pointerIndex][1];
 
  168      this->LastWorldEventPositions[pointerIndex][2] = this->WorldEventPositions[pointerIndex][2];
 
  169      this->WorldEventPositions[pointerIndex][0] = x;
 
  170      this->WorldEventPositions[pointerIndex][1] = y;
 
  171      this->WorldEventPositions[pointerIndex][2] = z;
 
  181    vtkDebugMacro(<< this->
GetClassName() << 
" (" << 
this << 
"): setting WorldEventOrientation to (" 
  182                  << w << 
"," << x << 
"," << y << 
"," << z << 
") for pointerIndex number " 
  184    if (this->WorldEventOrientations[pointerIndex][0] != w ||
 
  185      this->WorldEventOrientations[pointerIndex][1] != x ||
 
  186      this->WorldEventOrientations[pointerIndex][2] != y ||
 
  187      this->WorldEventOrientations[pointerIndex][3] != z ||
 
  188      this->LastWorldEventOrientations[pointerIndex][0] != w ||
 
  189      this->LastWorldEventOrientations[pointerIndex][1] != x ||
 
  190      this->LastWorldEventOrientations[pointerIndex][2] != y ||
 
  191      this->LastWorldEventOrientations[pointerIndex][3] != z)
 
  193      this->LastWorldEventOrientations[pointerIndex][0] =
 
  194        this->WorldEventOrientations[pointerIndex][0];
 
  195      this->LastWorldEventOrientations[pointerIndex][1] =
 
  196        this->WorldEventOrientations[pointerIndex][1];
 
  197      this->LastWorldEventOrientations[pointerIndex][2] =
 
  198        this->WorldEventOrientations[pointerIndex][2];
 
  199      this->LastWorldEventOrientations[pointerIndex][3] =
 
  200        this->WorldEventOrientations[pointerIndex][3];
 
  201      this->WorldEventOrientations[pointerIndex][0] = w;
 
  202      this->WorldEventOrientations[pointerIndex][1] = x;
 
  203      this->WorldEventOrientations[pointerIndex][2] = y;
 
  204      this->WorldEventOrientations[pointerIndex][3] = z;
 
  271  vtkGetVector3Macro(Translation3D, 
double);
 
  272  vtkGetVector3Macro(LastTranslation3D, 
double);
 
  281  double Translation3D[3];
 
  282  double LastTranslation3D[3];
 
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.
 
const char * GetClassName() const
Return the class name as a string.
 
virtual void Modified()
Update the modification time for this object.
 
adds support for 3D events to vtkRenderWindowInteractor.
 
void Disable() override
Enable/Disable interactions.
 
virtual double * GetPhysicalTranslation(vtkCamera *)
Set/get position of the physical coordinate system origin in world coordinates.
 
virtual void SetPhysicalViewUp(double, double, double)
Set/get the direction of the physical coordinate system +Y axis in world coordinates.
 
virtual void SetPhysicalViewDirection(double, double, double)
Set/get the direction of the physical coordinate system -Z axis in world coordinates.
 
virtual void GetPhysicalEventPose(vtkMatrix4x4 *poseMatrix, int pointerIndex)
With VR we know the physical/room coordinate positions and orientations of events.
 
void RightButtonPressEvent() override
Override to set pointers down.
 
void SetTranslation3D(double val[3])
Set/get the translation for pan/swipe gestures, update LastTranslation.
 
virtual void SetWorldEventPosition(double x, double y, double z, int pointerIndex)
With VR we know the world coordinate positions and orientations of events.
 
virtual void GetTouchPadPosition(vtkEventDataDevice, vtkEventDataDeviceInput, float[3])
Get the latest touchpad or joystick position for a device.
 
virtual double GetPhysicalScale()
Set/get the physical scale (world / physical distance ratio)
 
void RecognizeGesture(vtkCommand::EventIds) override
 
virtual void SetWorldEventOrientation(double w, double x, double y, double z, int pointerIndex)
With VR we know the world coordinate positions and orientations of events.
 
virtual double * GetPhysicalViewUp()
Set/get the direction of the physical coordinate system +Y axis in world coordinates.
 
void RightButtonReleaseEvent() override
Override to set pointers down.
 
virtual void SetWorldEventPose(vtkMatrix4x4 *poseMatrix, int pointerIndex)
With VR we know the world coordinate positions and orientations of events.
 
~vtkRenderWindowInteractor3D() override
 
virtual void SetPhysicalEventPosition(double x, double y, double z, int pointerIndex)
With VR we know the physical/room coordinate positions and orientations of events.
 
virtual void GetLastWorldEventPose(vtkMatrix4x4 *poseMatrix, int pointerIndex)
With VR we know the world coordinate positions and orientations of events.
 
virtual double * GetLastWorldEventOrientation(int pointerIndex)
With VR we know the world coordinate positions and orientations of events.
 
virtual void SetPhysicalScale(double)
Set/get the physical scale (world / physical distance ratio)
 
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
 
virtual void SetPhysicalTranslation(vtkCamera *, double, double, double)
Set/get position of the physical coordinate system origin in world coordinates.
 
vtkRenderWindowInteractor3D()
 
virtual double * GetWorldEventOrientation(int pointerIndex)
With VR we know the world coordinate positions and orientations of events.
 
virtual double * GetPhysicalViewDirection()
Set/get the direction of the physical coordinate system -Z axis in world coordinates.
 
virtual void GetWorldEventPose(vtkMatrix4x4 *poseMatrix, int pointerIndex)
With VR we know the world coordinate positions and orientations of events.
 
void MiddleButtonPressEvent() override
Override to set pointers down.
 
virtual double * GetWorldEventPosition(int pointerIndex)
With VR we know the world coordinate positions and orientations of events.
 
static vtkRenderWindowInteractor3D * New()
Construct object so that light follows camera motion.
 
void MiddleButtonReleaseEvent() override
Override to set pointers down.
 
virtual void GetLastPhysicalEventPose(vtkMatrix4x4 *poseMatrix, int pointerIndex)
With VR we know the physical/room coordinate positions and orientations of events.
 
virtual void SetPhysicalEventPose(vtkMatrix4x4 *poseMatrix, int pointerIndex)
With VR we know the physical/room coordinate positions and orientations of events.
 
virtual void GetStartingPhysicalEventPose(vtkMatrix4x4 *poseMatrix, int pointerIndex)
With VR we know the physical/room coordinate positions and orientations of events.
 
void Enable() override
Enable/Disable interactions.
 
virtual double * GetLastWorldEventPosition(int pointerIndex)
With VR we know the world coordinate positions and orientations of events.
 
platform-independent render window interaction including picking and frame rate control.
 
vtkEventDataDevice
platform-independent event data structures
 
#define VTKI_MAX_POINTERS