VTK  9.6.1
vtkRenderWindowInteractor.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
41
42#ifndef vtkRenderWindowInteractor_h
43#define vtkRenderWindowInteractor_h
44
45#include "vtkCommand.h" // for method sig
46#include "vtkObject.h"
47#include "vtkRenderingCoreModule.h" // For export macro
48#include "vtkSmartPointer.h" // For InteractorStyle
49#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
50
51VTK_ABI_NAMESPACE_BEGIN
52class vtkTimerIdMap;
53
54// Timer flags for win32/X compatibility
55#define VTKI_TIMER_FIRST 0
56#define VTKI_TIMER_UPDATE 1
57
58// maximum pointers active at once
59// for example in multitouch
60#define VTKI_MAX_POINTERS 5
61
64class vtkAssemblyPath;
67class vtkRenderWindow;
68class vtkRenderer;
72
73class VTKRENDERINGCORE_EXPORT VTK_MARSHALAUTO vtkRenderWindowInteractor : public vtkObject
74{
75
77
78public:
81 void PrintSelf(ostream& os, vtkIndent indent) override;
82
84
91 virtual void Initialize();
93 {
94 this->Initialized = 0;
95 this->Enabled = 0;
96 this->Initialize();
97 }
98
99
104 void UnRegister(vtkObjectBase* o) override;
105
111 virtual void Start();
112
119 virtual void ProcessEvents() {}
120
124 vtkGetMacro(Done, bool);
125 vtkSetMacro(Done, bool);
126
136 virtual void Enable()
137 {
138 this->Enabled = 1;
139 this->Modified();
140 }
141 virtual void Disable()
142 {
143 this->Enabled = 0;
144 this->Modified();
145 }
146 vtkGetMacro(Enabled, int);
147
149
153 vtkBooleanMacro(EnableRender, bool);
155 vtkSetMacro(EnableRender, bool);
157 vtkGetMacro(EnableRender, bool);
159
161
165 vtkGetObjectMacro(RenderWindow, vtkRenderWindow);
167
169
177
186 virtual void UpdateSize(int x, int y);
187
205 virtual int CreateTimer(int timerType); // first group, for backward compatibility
206 virtual int DestroyTimer(); // first group, for backward compatibility
207
212 int CreateRepeatingTimer(unsigned long duration);
213
218 int CreateOneShotTimer(unsigned long duration);
219
224 int IsOneShotTimer(int timerId);
225
229 unsigned long GetTimerDuration(int timerId);
230
234 int ResetTimer(int timerId);
235
240 int DestroyTimer(int timerId);
241
245 virtual int GetVTKTimerId(int platformTimerId);
246
247 // Moved into the public section of the class so that classless timer procs
248 // can access these enum members without being "friends"...
249 enum
250 {
253 };
254
256
265 vtkSetClampMacro(TimerDuration, unsigned long, 1, 100000);
266 vtkGetMacro(TimerDuration, unsigned long);
268
270
282 vtkSetMacro(TimerEventId, int);
283 vtkGetMacro(TimerEventId, int);
284 vtkSetMacro(TimerEventType, int);
285 vtkGetMacro(TimerEventType, int);
286 vtkSetMacro(TimerEventDuration, int);
287 vtkGetMacro(TimerEventDuration, int);
288 vtkSetMacro(TimerEventPlatformId, int);
289 vtkGetMacro(TimerEventPlatformId, int);
291
297 virtual void TerminateApp() { this->Done = true; }
298
300
307
309
317
319
326 vtkSetClampMacro(DesiredUpdateRate, double, 0.0001, VTK_FLOAT_MAX);
327 vtkGetMacro(DesiredUpdateRate, double);
329
331
336 vtkSetClampMacro(StillUpdateRate, double, 0.0001, VTK_FLOAT_MAX);
337 vtkGetMacro(StillUpdateRate, double);
339
341
345 vtkGetMacro(Initialized, int);
347
349
356 vtkGetObjectMacro(Picker, vtkAbstractPicker);
358
364
366
376
378
382 virtual void ExitCallback();
383 virtual void UserCallback();
384 virtual void StartPickCallback();
385 virtual void EndPickCallback();
387
391 virtual void GetMousePosition(int* x, int* y)
392 {
393 *x = 0;
394 *y = 0;
395 }
396
398
405
410 virtual void Render();
411
413
418 void FlyTo(vtkRenderer* ren, double x, double y, double z);
419 void FlyTo(vtkRenderer* ren, double* x) { this->FlyTo(ren, x[0], x[1], x[2]); }
420 void FlyToImage(vtkRenderer* ren, double x, double y);
421 void FlyToImage(vtkRenderer* ren, double* x) { this->FlyToImage(ren, x[0], x[1]); }
423
425
428 vtkSetClampMacro(NumberOfFlyFrames, int, 1, VTK_INT_MAX);
429 vtkGetMacro(NumberOfFlyFrames, int);
431
433
437 vtkSetMacro(Dolly, double);
438 vtkGetMacro(Dolly, double);
440
442
450 vtkGetVector2Macro(EventPosition, int);
451 vtkGetVector2Macro(LastEventPosition, int);
452 vtkSetVector2Macro(LastEventPosition, int);
453 virtual void SetEventPosition(int x, int y)
454 {
455 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting EventPosition to (" << x
456 << "," << y << ")");
457 if (this->EventPosition[0] != x || this->EventPosition[1] != y ||
458 this->LastEventPosition[0] != x || this->LastEventPosition[1] != y)
459 {
460 this->LastEventPosition[0] = this->EventPosition[0];
461 this->LastEventPosition[1] = this->EventPosition[1];
462 this->EventPosition[0] = x;
463 this->EventPosition[1] = y;
464 this->Modified();
465 }
466 }
467 virtual void SetEventPosition(int pos[2]) { this->SetEventPosition(pos[0], pos[1]); }
468 virtual void SetEventPositionFlipY(int x, int y)
469 {
470 this->SetEventPosition(x, this->Size[1] - y - 1);
471 }
472 virtual void SetEventPositionFlipY(int pos[2]) { this->SetEventPositionFlipY(pos[0], pos[1]); }
474
475 virtual int* GetEventPositions(int pointerIndex)
476 {
477 if (pointerIndex >= VTKI_MAX_POINTERS)
478 {
479 return nullptr;
480 }
481 return this->EventPositions[pointerIndex];
482 }
483 virtual int* GetLastEventPositions(int pointerIndex)
484 {
485 if (pointerIndex >= VTKI_MAX_POINTERS)
486 {
487 return nullptr;
488 }
489 return this->LastEventPositions[pointerIndex];
490 }
491 virtual void SetEventPosition(int x, int y, int pointerIndex)
492 {
493 if (pointerIndex < 0 || pointerIndex >= VTKI_MAX_POINTERS)
494 {
495 return;
496 }
497 if (pointerIndex == 0)
498 {
499 this->LastEventPosition[0] = this->EventPosition[0];
500 this->LastEventPosition[1] = this->EventPosition[1];
501 this->EventPosition[0] = x;
502 this->EventPosition[1] = y;
503 }
504 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting EventPosition to (" << x
505 << "," << y << ") for pointerIndex number " << pointerIndex);
506 if (this->EventPositions[pointerIndex][0] != x || this->EventPositions[pointerIndex][1] != y ||
507 this->LastEventPositions[pointerIndex][0] != x ||
508 this->LastEventPositions[pointerIndex][1] != y)
509 {
510 this->LastEventPositions[pointerIndex][0] = this->EventPositions[pointerIndex][0];
511 this->LastEventPositions[pointerIndex][1] = this->EventPositions[pointerIndex][1];
512 this->EventPositions[pointerIndex][0] = x;
513 this->EventPositions[pointerIndex][1] = y;
514 this->Modified();
515 }
516 }
517 virtual void SetEventPosition(int pos[2], int pointerIndex)
518 {
519 this->SetEventPosition(pos[0], pos[1], pointerIndex);
520 }
521 virtual void SetEventPositionFlipY(int x, int y, int pointerIndex)
522 {
523 this->SetEventPosition(x, this->Size[1] - y - 1, pointerIndex);
524 }
525 virtual void SetEventPositionFlipY(int pos[2], int pointerIndex)
526 {
527 this->SetEventPositionFlipY(pos[0], pos[1], pointerIndex);
528 }
529
531
538 vtkSetMacro(AltKey, int);
539 vtkGetMacro(AltKey, int);
541
543
548 vtkSetMacro(ControlKey, int);
549 vtkGetMacro(ControlKey, int);
551
553
556 vtkSetMacro(ShiftKey, int);
557 vtkGetMacro(ShiftKey, int);
559
561
584 vtkSetMacro(KeyCode, char);
585 vtkGetMacro(KeyCode, char);
587
589
593 vtkSetMacro(RepeatCount, int);
594 vtkGetMacro(RepeatCount, int);
596
598
618 vtkSetStringMacro(KeySym);
619 vtkGetStringMacro(KeySym);
621
623
626 vtkSetMacro(PointerIndex, int);
627 vtkGetMacro(PointerIndex, int);
629
631
634 void SetRotation(double rotation);
635 vtkGetMacro(Rotation, double);
636 vtkGetMacro(LastRotation, double);
638
640
643 void SetScale(double scale);
644 vtkGetMacro(Scale, double);
645 vtkGetMacro(LastScale, double);
647
649
652 void SetTranslation(double val[2]);
653 vtkGetVector2Macro(Translation, double);
654 vtkGetVector2Macro(LastTranslation, double);
656
658
661 void SetEventInformation(int x, int y, int ctrl, int shift, char keycode, int repeatcount,
662 const char* keysym, int pointerIndex)
663 {
664 this->SetEventPosition(x, y, pointerIndex);
665 this->ControlKey = ctrl;
666 this->ShiftKey = shift;
667 this->KeyCode = keycode;
668 this->RepeatCount = repeatcount;
669 this->PointerIndex = pointerIndex;
670 if (keysym)
671 {
672 this->SetKeySym(keysym);
673 }
674 this->Modified();
675 }
676 void SetEventInformation(int x, int y, int ctrl = 0, int shift = 0, char keycode = 0,
677 int repeatcount = 0, const char* keysym = nullptr)
678 {
679 this->SetEventInformation(x, y, ctrl, shift, keycode, repeatcount, keysym, 0);
680 }
681
682
684
688 void SetEventInformationFlipY(int x, int y, int ctrl, int shift, char keycode, int repeatcount,
689 const char* keysym, int pointerIndex)
690 {
692 x, this->Size[1] - y - 1, ctrl, shift, keycode, repeatcount, keysym, pointerIndex);
693 }
694 void SetEventInformationFlipY(int x, int y, int ctrl = 0, int shift = 0, char keycode = 0,
695 int repeatcount = 0, const char* keysym = nullptr)
696 {
697 this->SetEventInformationFlipY(x, y, ctrl, shift, keycode, repeatcount, keysym, 0);
698 }
699
700
702
705 void SetKeyEventInformation(int ctrl = 0, int shift = 0, char keycode = 0, int repeatcount = 0,
706 const char* keysym = nullptr)
707 {
708 this->ControlKey = ctrl;
709 this->ShiftKey = shift;
710 this->KeyCode = keycode;
711 this->RepeatCount = repeatcount;
712 if (keysym)
713 {
714 this->SetKeySym(keysym);
715 }
716 this->Modified();
717 }
718
719
721
732 vtkSetVector2Macro(Size, int);
733 vtkGetVector2Macro(Size, int);
734 vtkSetVector2Macro(EventSize, int);
735 vtkGetVector2Macro(EventSize, int);
737
743 virtual vtkRenderer* FindPokedRenderer(int, int);
744
753
755
763 vtkSetMacro(UseTDx, bool);
764 vtkGetMacro(UseTDx, bool);
766
768
773 virtual void MouseMoveEvent();
774 virtual void RightButtonPressEvent();
776 virtual void LeftButtonPressEvent();
782 virtual void MouseWheelLeftEvent();
783 virtual void MouseWheelRightEvent();
784 virtual void ExposeEvent();
785 virtual void ConfigureEvent();
786 virtual void EnterEvent();
787 virtual void LeaveEvent();
788 virtual void KeyPressEvent();
789 virtual void KeyReleaseEvent();
790 virtual void CharEvent();
791 virtual void ExitEvent();
794 virtual void FifthButtonPressEvent();
797
799
803 virtual void StartPinchEvent();
804 virtual void PinchEvent();
805 virtual void EndPinchEvent();
806 virtual void StartRotateEvent();
807 virtual void RotateEvent();
808 virtual void EndRotateEvent();
809 virtual void StartPanEvent();
810 virtual void PanEvent();
811 virtual void EndPanEvent();
812 virtual void TapEvent();
813 virtual void LongTapEvent();
814 virtual void SwipeEvent();
816
818
824 vtkSetMacro(RecognizeGestures, bool);
825 vtkGetMacro(RecognizeGestures, bool);
827
829
834 vtkGetMacro(PointersDownCount, int);
836
838
845 void ClearContact(size_t contactID);
846 int GetPointerIndexForContact(size_t contactID);
848 bool IsPointerIndexSet(int i);
849 void ClearPointerIndex(int i);
851
871
873
882
883protected:
886
890
891 // Used as a helper object to pick instances of vtkProp
894
895 bool Done; // is the event loop done running
896
902
906 int Style;
911
912 // Event information
917 double Rotation;
919 double Scale;
920 double LastScale;
921 double Translation[2];
924 char* KeySym;
927 int EventSize[2];
928 int Size[2];
933
937
939
940 // control the fly to
942 double Dolly;
943
953 void GrabFocus(vtkCommand* mouseEvents, vtkCommand* keypressEvents = nullptr)
954 {
955 this->Superclass::InternalGrabFocus(mouseEvents, keypressEvents);
956 }
958
963
964 // Timer related members
965 friend struct vtkTimerStruct;
966 vtkTimerIdMap* TimerMap; // An internal, PIMPLd map of timers and associated attributes
967 unsigned long TimerDuration; // in milliseconds
969
975 virtual int InternalCreateTimer(int timerId, int timerType, unsigned long duration);
976 virtual int InternalDestroyTimer(int platformTimerId);
979
980 // Force the interactor to handle the Start() event loop, ignoring any
981 // overrides. (Overrides are registered by observing StartEvent on the
982 // interactor.)
984
988 virtual void StartEventLoop() {}
989
990 bool UseTDx; // 3DConnexion device.
991
992 // when recognizing gestures VTK will take multitouch events
993 // if it receives them and convert them to gestures
1000
1001private:
1003 void operator=(const vtkRenderWindowInteractor&) = delete;
1004};
1005
1006VTK_ABI_NAMESPACE_END
1007#endif
define API for picking subclasses
abstract API for pickers that can pick an instance of vtkProp
a list of nodes that form an assembly path
superclass for callback/observer methods
Definition vtkCommand.h:384
create a window for renderers to draw into
a simple class to control print indentation
Definition vtkIndent.h:29
record and play VTK events passing through a vtkRenderWindowInteractor
an abstract superclass for classes observing events invoked by vtkRenderWindowInteractor
const char * GetClassName() const
Return the class name as a string.
void InternalReleaseFocus()
These methods allow a command to exclusively grab all events.
void InternalGrabFocus(vtkCommand *mouseEvents, vtkCommand *keypressEvents=nullptr)
These methods allow a command to exclusively grab all events.
virtual void Modified()
Update the modification time for this object.
manage contention for cursors and other resources
Class defines API to manage the picking process.
unsigned long GetTimerDuration(int timerId)
Get the duration (in milliseconds) for the specified timerId.
void HideCursor()
Hide or show the mouse cursor, it is nice to be able to hide the default cursor if you want VTK to di...
virtual void StartEventLoop()
Run the event loop (does not return until TerminateApp is called).
virtual void FourthButtonReleaseEvent()
Fire various events.
virtual void PinchEvent()
Fire various gesture based events.
virtual void SwipeEvent()
Fire various gesture based events.
virtual void StartRotateEvent()
Fire various gesture based events.
void SetRenderWindow(vtkRenderWindow *aren)
Set/Get the rendering window being controlled by this object.
void SetKeyEventInformation(int ctrl=0, int shift=0, char keycode=0, int repeatcount=0, const char *keysym=nullptr)
Set all the keyboard-related event information in one call.
void UnRegister(vtkObjectBase *o) override
This Method detects loops of RenderWindow-Interactor, so objects are freed properly.
virtual void SetEventPositionFlipY(int pos[2], int pointerIndex)
virtual void EndPinchEvent()
Fire various gesture based events.
virtual void KeyReleaseEvent()
Fire various events.
virtual int * GetLastEventPositions(int pointerIndex)
virtual void EndPickCallback()
These methods correspond to the Exit, User and Pick callbacks.
virtual void Enable()
Enable/Disable interactions.
virtual int InternalDestroyTimer(int platformTimerId)
Internal methods for creating and destroying timers that must be implemented by subclasses.
int CreateRepeatingTimer(unsigned long duration)
Create a repeating timer, with the specified duration (in milliseconds).
vtkObserverMediator * ObserverMediator
Widget mediators are used to resolve contention for cursors and other resources.
virtual void EndRotateEvent()
Fire various gesture based events.
virtual void ExitEvent()
Fire various events.
void FlyToImage(vtkRenderer *ren, double x, double y)
Given a position x, move the current camera's focal point to x.
void SetRotation(double rotation)
Set/get the rotation for the gesture in degrees, update LastRotation.
virtual void ExposeEvent()
Fire various events.
virtual void EndPanEvent()
Fire various gesture based events.
virtual void Render()
Render the scene.
int EventPositions[VTKI_MAX_POINTERS][2]
virtual vtkRenderer * FindPokedRenderer(int, int)
When an event occurs, we must determine which Renderer the event occurred within, since one RenderWin...
virtual vtkAbstractPropPicker * CreateDefaultPicker()
Create default picker.
virtual void MouseWheelLeftEvent()
Fire various events.
virtual void MouseWheelForwardEvent()
Fire various events.
virtual void SetEventPosition(int x, int y)
Set/Get information about the current event.
virtual void TerminateApp()
This function is called on 'q','e' keypress if exitmethod is not specified and should be overridden b...
virtual void UserCallback()
These methods correspond to the Exit, User and Pick callbacks.
void SetHardwareWindow(vtkHardwareWindow *aren)
Set/Get the hardware window being controlled by this object.
virtual void LeftButtonReleaseEvent()
Fire various events.
virtual void CharEvent()
Fire various events.
virtual int DestroyTimer()
int IsOneShotTimer(int timerId)
Query whether the specified timerId is a one shot timer.
void SetEventInformation(int x, int y, int ctrl, int shift, char keycode, int repeatcount, const char *keysym, int pointerIndex)
Set all the event information in one call.
vtkObserverMediator * GetObserverMediator()
Return the object used to mediate between vtkInteractorObservers contending for resources.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void UpdateSize(int x, int y)
When the event loop notifies the interactor that the window size has changed, this method is called t...
virtual vtkPickingManager * CreateDefaultPickingManager()
Create default pickingManager.
virtual void LeaveEvent()
Fire various events.
static bool InteractorManagesTheEventLoop
This flag is useful when you are integrating VTK in a larger system.
virtual vtkInteractorObserver * GetInteractorStyle()
External switching between joystick/trackball/new?
virtual void FourthButtonPressEvent()
Fire various events.
virtual void MouseWheelRightEvent()
Fire various events.
virtual void EnterEvent()
Fire various events.
virtual int InternalCreateTimer(int timerId, int timerType, unsigned long duration)
Internal methods for creating and destroying timers that must be implemented by subclasses.
~vtkRenderWindowInteractor() override
virtual void RightButtonPressEvent()
Fire various events.
virtual void Start()
Start the event loop.
void SetEventInformation(int x, int y, int ctrl=0, int shift=0, char keycode=0, int repeatcount=0, const char *keysym=nullptr)
Set all the event information in one call.
void ShowCursor()
Hide or show the mouse cursor, it is nice to be able to hide the default cursor if you want VTK to di...
virtual void ConfigureEvent()
Fire various events.
virtual void FifthButtonPressEvent()
Fire various events.
virtual int * GetEventPositions(int pointerIndex)
virtual void StartPanEvent()
Fire various gesture based events.
virtual int CreateTimer(int timerType)
This class provides two groups of methods for manipulating timers.
int ResetTimer(int timerId)
Reset the specified timer.
int GetCurrentTimerId()
Internal methods for creating and destroying timers that must be implemented by subclasses.
virtual void MouseWheelBackwardEvent()
Fire various events.
virtual void SetInteractorStyle(vtkInteractorObserver *)
External switching between joystick/trackball/new?
void ClearContact(size_t contactID)
Most multitouch systems use persistent contact/pointer ids to track events/motion during multitouch e...
size_t PointerIndexLookup[VTKI_MAX_POINTERS]
void FlyTo(vtkRenderer *ren, double x, double y, double z)
Given a position x, move the current camera's focal point to x.
int CreateOneShotTimer(unsigned long duration)
Create a one shot timer, with the specified duration (in milliseconds).
void ReInitialize()
Prepare for handling events and set the Enabled flag to true.
virtual void ExitCallback()
These methods correspond to the Exit, User and Pick callbacks.
void SetEventInformationFlipY(int x, int y, int ctrl=0, int shift=0, char keycode=0, int repeatcount=0, const char *keysym=nullptr)
Calls SetEventInformation, but flips the Y based on the current Size[1] value (i.e.
vtkSmartPointer< vtkInteractorObserver > InteractorStyle
void SetTranslation(double val[2])
Set/get the translation for pan/swipe gestures, update LastTranslation.
virtual void SetCurrentGesture(vtkCommand::EventIds eid)
Get the current gesture that was recognized when handling multitouch and VR events.
void FlyToImage(vtkRenderer *ren, double *x)
Given a position x, move the current camera's focal point to x.
virtual void PanEvent()
Fire various gesture based events.
virtual void ProcessEvents()
Process all user-interaction, timer events and return.
virtual void RightButtonReleaseEvent()
Fire various events.
int LastEventPositions[VTKI_MAX_POINTERS][2]
virtual void SetEventPositionFlipY(int x, int y, int pointerIndex)
void SetEventInformationFlipY(int x, int y, int ctrl, int shift, char keycode, int repeatcount, const char *keysym, int pointerIndex)
Calls SetEventInformation, but flips the Y based on the current Size[1] value (i.e.
virtual void GetMousePosition(int *x, int *y)
Get the current position of the mouse.
virtual void SetEventPositionFlipY(int x, int y)
Set/Get information about the current event.
int GetPointerIndexForContact(size_t contactID)
Most multitouch systems use persistent contact/pointer ids to track events/motion during multitouch e...
static vtkRenderWindowInteractor * New()
virtual void FifthButtonReleaseEvent()
Fire various events.
bool IsPointerIndexSet(int i)
Most multitouch systems use persistent contact/pointer ids to track events/motion during multitouch e...
virtual void LeftButtonPressEvent()
Fire various events.
void GrabFocus(vtkCommand *mouseEvents, vtkCommand *keypressEvents=nullptr)
friend class vtkInteractorObserver
These methods allow the interactor to control which events are processed.
virtual vtkCommand::EventIds GetCurrentGesture() const
Get the current gesture that was recognized when handling multitouch and VR events.
virtual void MiddleButtonPressEvent()
Fire various events.
virtual void StartPickCallback()
These methods correspond to the Exit, User and Pick callbacks.
int GetPointerIndexForExistingContact(size_t contactID)
Most multitouch systems use persistent contact/pointer ids to track events/motion during multitouch e...
virtual void SetKeySym(const char *)
Set/get the key symbol for the key that was pressed.
virtual void MouseMoveEvent()
Fire various events.
void FlyTo(vtkRenderer *ren, double *x)
Given a position x, move the current camera's focal point to x.
virtual void StartPinchEvent()
Fire various gesture based events.
virtual void SetEventPosition(int pos[2])
Set/Get information about the current event.
virtual void SetPicker(vtkAbstractPicker *)
Set/Get the object used to perform pick operations.
virtual int GetVTKTimerId(int platformTimerId)
Get the VTK timer ID that corresponds to the supplied platform ID.
void SetScale(double scale)
Set/get the scale for the gesture, updates LastScale.
virtual void Initialize()
Prepare for handling events and set the Enabled flag to true.
virtual void RotateEvent()
Fire various gesture based events.
virtual void TapEvent()
Fire various gesture based events.
virtual void SetEventPositionFlipY(int pos[2])
Set/Get information about the current event.
virtual void SetEventPosition(int x, int y, int pointerIndex)
int StartingEventPositions[VTKI_MAX_POINTERS][2]
void ClearPointerIndex(int i)
Most multitouch systems use persistent contact/pointer ids to track events/motion during multitouch e...
virtual void LongTapEvent()
Fire various gesture based events.
virtual void MiddleButtonReleaseEvent()
Fire various events.
virtual void RecognizeGesture(vtkCommand::EventIds)
virtual void SetEventPosition(int pos[2], int pointerIndex)
virtual void SetPickingManager(vtkPickingManager *)
Set the picking manager.
virtual void KeyPressEvent()
Fire various events.
create a window for renderers to draw into
abstract specification for renderers
Definition vtkRenderer.h:64
Hold a reference to a vtkObjectBase instance.
int vtkTypeBool
Definition vtkABI.h:64
#define VTKI_MAX_POINTERS
virtual void Initialize()
#define VTK_INT_MAX
Definition vtkType.h:197
#define VTK_FLOAT_MAX
Definition vtkType.h:205
#define VTK_MARSHAL_EXCLUDE_REASON_IS_INTERNAL
#define VTK_MARSHAL_EXCLUDE_REASON_NOT_SUPPORTED
#define VTK_MARSHALAUTO
#define VTK_MARSHALEXCLUDE(reason)