VTK  9.5.2
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
38
39#ifndef vtkRenderWindowInteractor_h
40#define vtkRenderWindowInteractor_h
41
42#include "vtkCommand.h" // for method sig
43#include "vtkObject.h"
44#include "vtkRenderingCoreModule.h" // For export macro
45#include "vtkSmartPointer.h" // For InteractorStyle
46#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
47
48VTK_ABI_NAMESPACE_BEGIN
49class vtkTimerIdMap;
50
51// Timer flags for win32/X compatibility
52#define VTKI_TIMER_FIRST 0
53#define VTKI_TIMER_UPDATE 1
54
55// maximum pointers active at once
56// for example in multitouch
57#define VTKI_MAX_POINTERS 5
58
61class vtkAssemblyPath;
64class vtkRenderWindow;
65class vtkRenderer;
69
70class VTKRENDERINGCORE_EXPORT VTK_MARSHALAUTO vtkRenderWindowInteractor : public vtkObject
71{
72
74
75public:
78 void PrintSelf(ostream& os, vtkIndent indent) override;
79
81
88 virtual void Initialize();
90 {
91 this->Initialized = 0;
92 this->Enabled = 0;
93 this->Initialize();
94 }
95
96
101 void UnRegister(vtkObjectBase* o) override;
102
108 virtual void Start();
109
116 virtual void ProcessEvents() {}
117
121 vtkGetMacro(Done, bool);
122 vtkSetMacro(Done, bool);
123
133 virtual void Enable()
134 {
135 this->Enabled = 1;
136 this->Modified();
137 }
138 virtual void Disable()
139 {
140 this->Enabled = 0;
141 this->Modified();
142 }
143 vtkGetMacro(Enabled, int);
144
146
150 vtkBooleanMacro(EnableRender, bool);
152 vtkSetMacro(EnableRender, bool);
154 vtkGetMacro(EnableRender, bool);
156
158
162 vtkGetObjectMacro(RenderWindow, vtkRenderWindow);
164
166
174
183 virtual void UpdateSize(int x, int y);
184
202 virtual int CreateTimer(int timerType); // first group, for backward compatibility
203 virtual int DestroyTimer(); // first group, for backward compatibility
204
209 int CreateRepeatingTimer(unsigned long duration);
210
215 int CreateOneShotTimer(unsigned long duration);
216
221 int IsOneShotTimer(int timerId);
222
226 unsigned long GetTimerDuration(int timerId);
227
231 int ResetTimer(int timerId);
232
237 int DestroyTimer(int timerId);
238
242 virtual int GetVTKTimerId(int platformTimerId);
243
244 // Moved into the public section of the class so that classless timer procs
245 // can access these enum members without being "friends"...
246 enum
247 {
250 };
251
253
262 vtkSetClampMacro(TimerDuration, unsigned long, 1, 100000);
263 vtkGetMacro(TimerDuration, unsigned long);
265
267
279 vtkSetMacro(TimerEventId, int);
280 vtkGetMacro(TimerEventId, int);
281 vtkSetMacro(TimerEventType, int);
282 vtkGetMacro(TimerEventType, int);
283 vtkSetMacro(TimerEventDuration, int);
284 vtkGetMacro(TimerEventDuration, int);
285 vtkSetMacro(TimerEventPlatformId, int);
286 vtkGetMacro(TimerEventPlatformId, int);
288
294 virtual void TerminateApp() { this->Done = true; }
295
297
304
306
314
316
323 vtkSetClampMacro(DesiredUpdateRate, double, 0.0001, VTK_FLOAT_MAX);
324 vtkGetMacro(DesiredUpdateRate, double);
326
328
333 vtkSetClampMacro(StillUpdateRate, double, 0.0001, VTK_FLOAT_MAX);
334 vtkGetMacro(StillUpdateRate, double);
336
338
342 vtkGetMacro(Initialized, int);
344
346
353 vtkGetObjectMacro(Picker, vtkAbstractPicker);
355
361
363
373
375
379 virtual void ExitCallback();
380 virtual void UserCallback();
381 virtual void StartPickCallback();
382 virtual void EndPickCallback();
384
388 virtual void GetMousePosition(int* x, int* y)
389 {
390 *x = 0;
391 *y = 0;
392 }
393
395
402
407 virtual void Render();
408
410
415 void FlyTo(vtkRenderer* ren, double x, double y, double z);
416 void FlyTo(vtkRenderer* ren, double* x) { this->FlyTo(ren, x[0], x[1], x[2]); }
417 void FlyToImage(vtkRenderer* ren, double x, double y);
418 void FlyToImage(vtkRenderer* ren, double* x) { this->FlyToImage(ren, x[0], x[1]); }
420
422
425 vtkSetClampMacro(NumberOfFlyFrames, int, 1, VTK_INT_MAX);
426 vtkGetMacro(NumberOfFlyFrames, int);
428
430
434 vtkSetMacro(Dolly, double);
435 vtkGetMacro(Dolly, double);
437
439
447 vtkGetVector2Macro(EventPosition, int);
448 vtkGetVector2Macro(LastEventPosition, int);
449 vtkSetVector2Macro(LastEventPosition, int);
450 virtual void SetEventPosition(int x, int y)
451 {
452 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting EventPosition to (" << x
453 << "," << y << ")");
454 if (this->EventPosition[0] != x || this->EventPosition[1] != y ||
455 this->LastEventPosition[0] != x || this->LastEventPosition[1] != y)
456 {
457 this->LastEventPosition[0] = this->EventPosition[0];
458 this->LastEventPosition[1] = this->EventPosition[1];
459 this->EventPosition[0] = x;
460 this->EventPosition[1] = y;
461 this->Modified();
462 }
463 }
464 virtual void SetEventPosition(int pos[2]) { this->SetEventPosition(pos[0], pos[1]); }
465 virtual void SetEventPositionFlipY(int x, int y)
466 {
467 this->SetEventPosition(x, this->Size[1] - y - 1);
468 }
469 virtual void SetEventPositionFlipY(int pos[2]) { this->SetEventPositionFlipY(pos[0], pos[1]); }
471
472 virtual int* GetEventPositions(int pointerIndex)
473 {
474 if (pointerIndex >= VTKI_MAX_POINTERS)
475 {
476 return nullptr;
477 }
478 return this->EventPositions[pointerIndex];
479 }
480 virtual int* GetLastEventPositions(int pointerIndex)
481 {
482 if (pointerIndex >= VTKI_MAX_POINTERS)
483 {
484 return nullptr;
485 }
486 return this->LastEventPositions[pointerIndex];
487 }
488 virtual void SetEventPosition(int x, int y, int pointerIndex)
489 {
490 if (pointerIndex < 0 || pointerIndex >= VTKI_MAX_POINTERS)
491 {
492 return;
493 }
494 if (pointerIndex == 0)
495 {
496 this->LastEventPosition[0] = this->EventPosition[0];
497 this->LastEventPosition[1] = this->EventPosition[1];
498 this->EventPosition[0] = x;
499 this->EventPosition[1] = y;
500 }
501 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting EventPosition to (" << x
502 << "," << y << ") for pointerIndex number " << pointerIndex);
503 if (this->EventPositions[pointerIndex][0] != x || this->EventPositions[pointerIndex][1] != y ||
504 this->LastEventPositions[pointerIndex][0] != x ||
505 this->LastEventPositions[pointerIndex][1] != y)
506 {
507 this->LastEventPositions[pointerIndex][0] = this->EventPositions[pointerIndex][0];
508 this->LastEventPositions[pointerIndex][1] = this->EventPositions[pointerIndex][1];
509 this->EventPositions[pointerIndex][0] = x;
510 this->EventPositions[pointerIndex][1] = y;
511 this->Modified();
512 }
513 }
514 virtual void SetEventPosition(int pos[2], int pointerIndex)
515 {
516 this->SetEventPosition(pos[0], pos[1], pointerIndex);
517 }
518 virtual void SetEventPositionFlipY(int x, int y, int pointerIndex)
519 {
520 this->SetEventPosition(x, this->Size[1] - y - 1, pointerIndex);
521 }
522 virtual void SetEventPositionFlipY(int pos[2], int pointerIndex)
523 {
524 this->SetEventPositionFlipY(pos[0], pos[1], pointerIndex);
525 }
526
528
535 vtkSetMacro(AltKey, int);
536 vtkGetMacro(AltKey, int);
538
540
545 vtkSetMacro(ControlKey, int);
546 vtkGetMacro(ControlKey, int);
548
550
553 vtkSetMacro(ShiftKey, int);
554 vtkGetMacro(ShiftKey, int);
556
558
581 vtkSetMacro(KeyCode, char);
582 vtkGetMacro(KeyCode, char);
584
586
590 vtkSetMacro(RepeatCount, int);
591 vtkGetMacro(RepeatCount, int);
593
595
615 vtkSetStringMacro(KeySym);
616 vtkGetStringMacro(KeySym);
618
620
623 vtkSetMacro(PointerIndex, int);
624 vtkGetMacro(PointerIndex, int);
626
628
631 void SetRotation(double rotation);
632 vtkGetMacro(Rotation, double);
633 vtkGetMacro(LastRotation, double);
635
637
640 void SetScale(double scale);
641 vtkGetMacro(Scale, double);
642 vtkGetMacro(LastScale, double);
644
646
649 void SetTranslation(double val[2]);
650 vtkGetVector2Macro(Translation, double);
651 vtkGetVector2Macro(LastTranslation, double);
653
655
658 void SetEventInformation(int x, int y, int ctrl, int shift, char keycode, int repeatcount,
659 const char* keysym, int pointerIndex)
660 {
661 this->SetEventPosition(x, y, pointerIndex);
662 this->ControlKey = ctrl;
663 this->ShiftKey = shift;
664 this->KeyCode = keycode;
665 this->RepeatCount = repeatcount;
666 this->PointerIndex = pointerIndex;
667 if (keysym)
668 {
669 this->SetKeySym(keysym);
670 }
671 this->Modified();
672 }
673 void SetEventInformation(int x, int y, int ctrl = 0, int shift = 0, char keycode = 0,
674 int repeatcount = 0, const char* keysym = nullptr)
675 {
676 this->SetEventInformation(x, y, ctrl, shift, keycode, repeatcount, keysym, 0);
677 }
678
679
681
685 void SetEventInformationFlipY(int x, int y, int ctrl, int shift, char keycode, int repeatcount,
686 const char* keysym, int pointerIndex)
687 {
689 x, this->Size[1] - y - 1, ctrl, shift, keycode, repeatcount, keysym, pointerIndex);
690 }
691 void SetEventInformationFlipY(int x, int y, int ctrl = 0, int shift = 0, char keycode = 0,
692 int repeatcount = 0, const char* keysym = nullptr)
693 {
694 this->SetEventInformationFlipY(x, y, ctrl, shift, keycode, repeatcount, keysym, 0);
695 }
696
697
699
702 void SetKeyEventInformation(int ctrl = 0, int shift = 0, char keycode = 0, int repeatcount = 0,
703 const char* keysym = nullptr)
704 {
705 this->ControlKey = ctrl;
706 this->ShiftKey = shift;
707 this->KeyCode = keycode;
708 this->RepeatCount = repeatcount;
709 if (keysym)
710 {
711 this->SetKeySym(keysym);
712 }
713 this->Modified();
714 }
715
716
718
729 vtkSetVector2Macro(Size, int);
730 vtkGetVector2Macro(Size, int);
731 vtkSetVector2Macro(EventSize, int);
732 vtkGetVector2Macro(EventSize, int);
734
740 virtual vtkRenderer* FindPokedRenderer(int, int);
741
750
752
760 vtkSetMacro(UseTDx, bool);
761 vtkGetMacro(UseTDx, bool);
763
765
770 virtual void MouseMoveEvent();
771 virtual void RightButtonPressEvent();
773 virtual void LeftButtonPressEvent();
779 virtual void MouseWheelLeftEvent();
780 virtual void MouseWheelRightEvent();
781 virtual void ExposeEvent();
782 virtual void ConfigureEvent();
783 virtual void EnterEvent();
784 virtual void LeaveEvent();
785 virtual void KeyPressEvent();
786 virtual void KeyReleaseEvent();
787 virtual void CharEvent();
788 virtual void ExitEvent();
791 virtual void FifthButtonPressEvent();
794
796
800 virtual void StartPinchEvent();
801 virtual void PinchEvent();
802 virtual void EndPinchEvent();
803 virtual void StartRotateEvent();
804 virtual void RotateEvent();
805 virtual void EndRotateEvent();
806 virtual void StartPanEvent();
807 virtual void PanEvent();
808 virtual void EndPanEvent();
809 virtual void TapEvent();
810 virtual void LongTapEvent();
811 virtual void SwipeEvent();
813
815
821 vtkSetMacro(RecognizeGestures, bool);
822 vtkGetMacro(RecognizeGestures, bool);
824
826
831 vtkGetMacro(PointersDownCount, int);
833
835
842 void ClearContact(size_t contactID);
843 int GetPointerIndexForContact(size_t contactID);
845 bool IsPointerIndexSet(int i);
846 void ClearPointerIndex(int i);
848
868
870
879
880protected:
883
887
888 // Used as a helper object to pick instances of vtkProp
891
892 bool Done; // is the event loop done running
893
899
903 int Style;
908
909 // Event information
914 double Rotation;
916 double Scale;
917 double LastScale;
918 double Translation[2];
921 char* KeySym;
924 int EventSize[2];
925 int Size[2];
930
934
936
937 // control the fly to
939 double Dolly;
940
950 void GrabFocus(vtkCommand* mouseEvents, vtkCommand* keypressEvents = nullptr)
951 {
952 this->Superclass::InternalGrabFocus(mouseEvents, keypressEvents);
953 }
955
960
961 // Timer related members
962 friend struct vtkTimerStruct;
963 vtkTimerIdMap* TimerMap; // An internal, PIMPLd map of timers and associated attributes
964 unsigned long TimerDuration; // in milliseconds
966
972 virtual int InternalCreateTimer(int timerId, int timerType, unsigned long duration);
973 virtual int InternalDestroyTimer(int platformTimerId);
976
977 // Force the interactor to handle the Start() event loop, ignoring any
978 // overrides. (Overrides are registered by observing StartEvent on the
979 // interactor.)
981
985 virtual void StartEventLoop() {}
986
987 bool UseTDx; // 3DConnexion device.
988
989 // when recognizing gestures VTK will take multitouch events
990 // if it receives them and convert them to gestures
997
998private:
1000 void operator=(const vtkRenderWindowInteractor&) = delete;
1001};
1002
1003VTK_ABI_NAMESPACE_END
1004#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:60
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:161
#define VTK_FLOAT_MAX
Definition vtkType.h:169
#define VTK_MARSHAL_EXCLUDE_REASON_IS_INTERNAL
#define VTK_MARSHAL_EXCLUDE_REASON_NOT_SUPPORTED
#define VTK_MARSHALAUTO
#define VTK_MARSHALEXCLUDE(reason)