32 #ifndef vtkRenderWindowInteractor3D_h
33 #define vtkRenderWindowInteractor3D_h
36 #include "vtkRenderingCoreModule.h"
82 return this->WorldEventPositions[pointerIndex];
90 return this->LastWorldEventPositions[pointerIndex];
98 return this->WorldEventOrientations[pointerIndex];
106 return this->LastWorldEventOrientations[pointerIndex];
124 vtkDebugMacro(<< this->
GetClassName() <<
" (" <<
this <<
"): setting PhysicalEventPosition to ("
125 << x <<
"," << y <<
"," << z <<
") for pointerIndex number " << pointerIndex);
126 if (this->PhysicalEventPositions[pointerIndex][0] != x ||
127 this->PhysicalEventPositions[pointerIndex][1] != y ||
128 this->PhysicalEventPositions[pointerIndex][2] != z ||
129 this->LastPhysicalEventPositions[pointerIndex][0] != x ||
130 this->LastPhysicalEventPositions[pointerIndex][1] != y ||
131 this->LastPhysicalEventPositions[pointerIndex][2] != z)
133 this->LastPhysicalEventPositions[pointerIndex][0] =
134 this->PhysicalEventPositions[pointerIndex][0];
135 this->LastPhysicalEventPositions[pointerIndex][1] =
136 this->PhysicalEventPositions[pointerIndex][1];
137 this->LastPhysicalEventPositions[pointerIndex][2] =
138 this->PhysicalEventPositions[pointerIndex][2];
139 this->PhysicalEventPositions[pointerIndex][0] = x;
140 this->PhysicalEventPositions[pointerIndex][1] = y;
141 this->PhysicalEventPositions[pointerIndex][2] = z;
171 vtkDebugMacro(<< this->
GetClassName() <<
" (" <<
this <<
"): setting WorldEventPosition to ("
172 << x <<
"," << y <<
"," << z <<
") for pointerIndex number " << pointerIndex);
173 if (this->WorldEventPositions[pointerIndex][0] != x ||
174 this->WorldEventPositions[pointerIndex][1] != y ||
175 this->WorldEventPositions[pointerIndex][2] != z ||
176 this->LastWorldEventPositions[pointerIndex][0] != x ||
177 this->LastWorldEventPositions[pointerIndex][1] != y ||
178 this->LastWorldEventPositions[pointerIndex][2] != z)
180 this->LastWorldEventPositions[pointerIndex][0] = this->WorldEventPositions[pointerIndex][0];
181 this->LastWorldEventPositions[pointerIndex][1] = this->WorldEventPositions[pointerIndex][1];
182 this->LastWorldEventPositions[pointerIndex][2] = this->WorldEventPositions[pointerIndex][2];
183 this->WorldEventPositions[pointerIndex][0] = x;
184 this->WorldEventPositions[pointerIndex][1] = y;
185 this->WorldEventPositions[pointerIndex][2] = z;
195 vtkDebugMacro(<< this->
GetClassName() <<
" (" <<
this <<
"): setting WorldEventOrientation to ("
196 << w <<
"," << x <<
"," << y <<
"," << z <<
") for pointerIndex number "
198 if (this->WorldEventOrientations[pointerIndex][0] != w ||
199 this->WorldEventOrientations[pointerIndex][1] != x ||
200 this->WorldEventOrientations[pointerIndex][2] != y ||
201 this->WorldEventOrientations[pointerIndex][3] != z ||
202 this->LastWorldEventOrientations[pointerIndex][0] != w ||
203 this->LastWorldEventOrientations[pointerIndex][1] != x ||
204 this->LastWorldEventOrientations[pointerIndex][2] != y ||
205 this->LastWorldEventOrientations[pointerIndex][3] != z)
207 this->LastWorldEventOrientations[pointerIndex][0] =
208 this->WorldEventOrientations[pointerIndex][0];
209 this->LastWorldEventOrientations[pointerIndex][1] =
210 this->WorldEventOrientations[pointerIndex][1];
211 this->LastWorldEventOrientations[pointerIndex][2] =
212 this->WorldEventOrientations[pointerIndex][2];
213 this->LastWorldEventOrientations[pointerIndex][3] =
214 this->WorldEventOrientations[pointerIndex][3];
215 this->WorldEventOrientations[pointerIndex][0] = w;
216 this->WorldEventOrientations[pointerIndex][1] = x;
217 this->WorldEventOrientations[pointerIndex][2] = y;
218 this->WorldEventOrientations[pointerIndex][3] = z;
264 vtkGetVector3Macro(Translation3D,
double);
265 vtkGetVector3Macro(LastTranslation3D,
double);
274 double Translation3D[3];
275 double LastTranslation3D[3];
a virtual camera for 3D rendering
a simple class to control print indentation
represent and manipulate 4x4 transformation matrices
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.
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()
void RecognizeGesture(vtkCommand::EventIds) override
virtual double * GetLastWorldEventOrientation(int pointerIndex)
virtual void SetWorldEventOrientation(double w, double x, double y, double z, int pointerIndex)
virtual double * GetWorldEventPosition(int pointerIndex)
With VR we know the world coordinate positions and orientations of events.
void RightButtonReleaseEvent() override
virtual void SetWorldEventPose(vtkMatrix4x4 *poseMatrix, int pointerIndex)
~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)
virtual void SetPhysicalScale(double)
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 the optional scale translation to map world coordinates into the 3D physical space (meters,...
vtkRenderWindowInteractor3D()
virtual double * GetWorldEventOrientation(int pointerIndex)
virtual void GetWorldEventPose(vtkMatrix4x4 *poseMatrix, int pointerIndex)
void MiddleButtonPressEvent() override
Override to set pointers down.
static vtkRenderWindowInteractor3D * New()
Construct object so that light follows camera motion.
void MiddleButtonReleaseEvent() override
virtual void GetLastPhysicalEventPose(vtkMatrix4x4 *poseMatrix, int pointerIndex)
virtual void SetPhysicalEventPose(vtkMatrix4x4 *poseMatrix, int pointerIndex)
virtual void GetStartingPhysicalEventPose(vtkMatrix4x4 *poseMatrix, int pointerIndex)
void Enable() override
Enable/Disable interactions.
virtual double * GetPhysicalTranslation(vtkCamera *)
virtual double * GetLastWorldEventPosition(int pointerIndex)
platform-independent render window interaction including picking and frame rate control.
vtkEventDataDevice
platform-independent event data structures
#define VTKI_MAX_POINTERS