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
147
148#ifndef vtkRenderWindowInteractor_h
149#define vtkRenderWindowInteractor_h
150
151#include "vtkCommand.h" // for method sig
152#include "vtkObject.h"
153#include "vtkRenderingCoreModule.h" // For export macro
154#include "vtkSmartPointer.h" // For InteractorStyle
155#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
156
157VTK_ABI_NAMESPACE_BEGIN
158class vtkTimerIdMap;
159
160// Timer flags for win32/X compatibility
161#define VTKI_TIMER_FIRST 0
162#define VTKI_TIMER_UPDATE 1
163
164// maximum pointers active at once
165// for example in multitouch
166#define VTKI_MAX_POINTERS 5
167
170class vtkAssemblyPath;
173class vtkRenderWindow;
174class vtkRenderer;
178
179class VTKRENDERINGCORE_EXPORT VTK_MARSHALAUTO vtkRenderWindowInteractor : public vtkObject
180{
181
183
184public:
187 void PrintSelf(ostream& os, vtkIndent indent) override;
188
190
197 virtual void Initialize();
199 {
200 this->Initialized = 0;
201 this->Enabled = 0;
202 this->Initialize();
203 }
204
205
210 void UnRegister(vtkObjectBase* o) override;
211
217 virtual void Start();
218
225 virtual void ProcessEvents() {}
226
230 vtkGetMacro(Done, bool);
231 vtkSetMacro(Done, bool);
232
242 virtual void Enable()
243 {
244 this->Enabled = 1;
245 this->Modified();
246 }
247 virtual void Disable()
248 {
249 this->Enabled = 0;
250 this->Modified();
251 }
252 vtkGetMacro(Enabled, int);
253
255
259 vtkBooleanMacro(EnableRender, bool);
261 vtkSetMacro(EnableRender, bool);
263 vtkGetMacro(EnableRender, bool);
265
267
271 vtkGetObjectMacro(RenderWindow, vtkRenderWindow);
273
275
283
292 virtual void UpdateSize(int x, int y);
293
311 virtual int CreateTimer(int timerType); // first group, for backward compatibility
312 virtual int DestroyTimer(); // first group, for backward compatibility
313
318 int CreateRepeatingTimer(unsigned long duration);
319
324 int CreateOneShotTimer(unsigned long duration);
325
330 int IsOneShotTimer(int timerId);
331
335 unsigned long GetTimerDuration(int timerId);
336
340 int ResetTimer(int timerId);
341
346 int DestroyTimer(int timerId);
347
351 virtual int GetVTKTimerId(int platformTimerId);
352
353 // Moved into the public section of the class so that classless timer procs
354 // can access these enum members without being "friends"...
355 enum
356 {
359 };
360
362
371 vtkSetClampMacro(TimerDuration, unsigned long, 1, 100000);
372 vtkGetMacro(TimerDuration, unsigned long);
374
376
388 vtkSetMacro(TimerEventId, int);
389 vtkGetMacro(TimerEventId, int);
390 vtkSetMacro(TimerEventType, int);
391 vtkGetMacro(TimerEventType, int);
392 vtkSetMacro(TimerEventDuration, int);
393 vtkGetMacro(TimerEventDuration, int);
394 vtkSetMacro(TimerEventPlatformId, int);
395 vtkGetMacro(TimerEventPlatformId, int);
397
403 virtual void TerminateApp() { this->Done = true; }
404
406
413
415
423
425
432 vtkSetClampMacro(DesiredUpdateRate, double, 0.0001, VTK_FLOAT_MAX);
433 vtkGetMacro(DesiredUpdateRate, double);
435
437
442 vtkSetClampMacro(StillUpdateRate, double, 0.0001, VTK_FLOAT_MAX);
443 vtkGetMacro(StillUpdateRate, double);
445
447
451 vtkGetMacro(Initialized, int);
453
455
462 vtkGetObjectMacro(Picker, vtkAbstractPicker);
464
470
472
482
484
488 virtual void ExitCallback();
489 virtual void UserCallback();
490 virtual void StartPickCallback();
491 virtual void EndPickCallback();
493
497 virtual void GetMousePosition(int* x, int* y)
498 {
499 *x = 0;
500 *y = 0;
501 }
502
504
511
516 virtual void Render();
517
519
524 void FlyTo(vtkRenderer* ren, double x, double y, double z);
525 void FlyTo(vtkRenderer* ren, double* x) { this->FlyTo(ren, x[0], x[1], x[2]); }
526 void FlyToImage(vtkRenderer* ren, double x, double y);
527 void FlyToImage(vtkRenderer* ren, double* x) { this->FlyToImage(ren, x[0], x[1]); }
529
531
534 vtkSetClampMacro(NumberOfFlyFrames, int, 1, VTK_INT_MAX);
535 vtkGetMacro(NumberOfFlyFrames, int);
537
539
543 vtkSetMacro(Dolly, double);
544 vtkGetMacro(Dolly, double);
546
548
556 vtkGetVector2Macro(EventPosition, int);
557 vtkGetVector2Macro(LastEventPosition, int);
558 vtkSetVector2Macro(LastEventPosition, int);
559 virtual void SetEventPosition(int x, int y)
560 {
561 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting EventPosition to (" << x
562 << "," << y << ")");
563 if (this->EventPosition[0] != x || this->EventPosition[1] != y ||
564 this->LastEventPosition[0] != x || this->LastEventPosition[1] != y)
565 {
566 this->LastEventPosition[0] = this->EventPosition[0];
567 this->LastEventPosition[1] = this->EventPosition[1];
568 this->EventPosition[0] = x;
569 this->EventPosition[1] = y;
570 this->Modified();
571 }
572 }
573 virtual void SetEventPosition(int pos[2]) { this->SetEventPosition(pos[0], pos[1]); }
574 virtual void SetEventPositionFlipY(int x, int y)
575 {
576 this->SetEventPosition(x, this->Size[1] - y - 1);
577 }
578 virtual void SetEventPositionFlipY(int pos[2]) { this->SetEventPositionFlipY(pos[0], pos[1]); }
580
581 virtual int* GetEventPositions(int pointerIndex)
582 {
583 if (pointerIndex >= VTKI_MAX_POINTERS)
584 {
585 return nullptr;
586 }
587 return this->EventPositions[pointerIndex];
588 }
589 virtual int* GetLastEventPositions(int pointerIndex)
590 {
591 if (pointerIndex >= VTKI_MAX_POINTERS)
592 {
593 return nullptr;
594 }
595 return this->LastEventPositions[pointerIndex];
596 }
597 virtual void SetEventPosition(int x, int y, int pointerIndex)
598 {
599 if (pointerIndex < 0 || pointerIndex >= VTKI_MAX_POINTERS)
600 {
601 return;
602 }
603 if (pointerIndex == 0)
604 {
605 this->LastEventPosition[0] = this->EventPosition[0];
606 this->LastEventPosition[1] = this->EventPosition[1];
607 this->EventPosition[0] = x;
608 this->EventPosition[1] = y;
609 }
610 vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting EventPosition to (" << x
611 << "," << y << ") for pointerIndex number " << pointerIndex);
612 if (this->EventPositions[pointerIndex][0] != x || this->EventPositions[pointerIndex][1] != y ||
613 this->LastEventPositions[pointerIndex][0] != x ||
614 this->LastEventPositions[pointerIndex][1] != y)
615 {
616 this->LastEventPositions[pointerIndex][0] = this->EventPositions[pointerIndex][0];
617 this->LastEventPositions[pointerIndex][1] = this->EventPositions[pointerIndex][1];
618 this->EventPositions[pointerIndex][0] = x;
619 this->EventPositions[pointerIndex][1] = y;
620 this->Modified();
621 }
622 }
623 virtual void SetEventPosition(int pos[2], int pointerIndex)
624 {
625 this->SetEventPosition(pos[0], pos[1], pointerIndex);
626 }
627 virtual void SetEventPositionFlipY(int x, int y, int pointerIndex)
628 {
629 this->SetEventPosition(x, this->Size[1] - y - 1, pointerIndex);
630 }
631 virtual void SetEventPositionFlipY(int pos[2], int pointerIndex)
632 {
633 this->SetEventPositionFlipY(pos[0], pos[1], pointerIndex);
634 }
635
637
644 vtkSetMacro(AltKey, int);
645 vtkGetMacro(AltKey, int);
647
649
654 vtkSetMacro(ControlKey, int);
655 vtkGetMacro(ControlKey, int);
657
659
662 vtkSetMacro(ShiftKey, int);
663 vtkGetMacro(ShiftKey, int);
665
667
690 vtkSetMacro(KeyCode, char);
691 vtkGetMacro(KeyCode, char);
693
695
699 vtkSetMacro(RepeatCount, int);
700 vtkGetMacro(RepeatCount, int);
702
704
724 vtkSetStringMacro(KeySym);
725 vtkGetStringMacro(KeySym);
727
729
732 vtkSetMacro(PointerIndex, int);
733 vtkGetMacro(PointerIndex, int);
735
737
740 void SetRotation(double rotation);
741 vtkGetMacro(Rotation, double);
742 vtkGetMacro(LastRotation, double);
744
746
749 void SetScale(double scale);
750 vtkGetMacro(Scale, double);
751 vtkGetMacro(LastScale, double);
753
755
758 void SetTranslation(double val[2]);
759 vtkGetVector2Macro(Translation, double);
760 vtkGetVector2Macro(LastTranslation, double);
762
764
767 void SetEventInformation(int x, int y, int ctrl, int shift, char keycode, int repeatcount,
768 const char* keysym, int pointerIndex)
769 {
770 this->SetEventPosition(x, y, pointerIndex);
771 this->ControlKey = ctrl;
772 this->ShiftKey = shift;
773 this->KeyCode = keycode;
774 this->RepeatCount = repeatcount;
775 this->PointerIndex = pointerIndex;
776 if (keysym)
777 {
778 this->SetKeySym(keysym);
779 }
780 this->Modified();
781 }
782 void SetEventInformation(int x, int y, int ctrl = 0, int shift = 0, char keycode = 0,
783 int repeatcount = 0, const char* keysym = nullptr)
784 {
785 this->SetEventInformation(x, y, ctrl, shift, keycode, repeatcount, keysym, 0);
786 }
787
788
790
794 void SetEventInformationFlipY(int x, int y, int ctrl, int shift, char keycode, int repeatcount,
795 const char* keysym, int pointerIndex)
796 {
798 x, this->Size[1] - y - 1, ctrl, shift, keycode, repeatcount, keysym, pointerIndex);
799 }
800 void SetEventInformationFlipY(int x, int y, int ctrl = 0, int shift = 0, char keycode = 0,
801 int repeatcount = 0, const char* keysym = nullptr)
802 {
803 this->SetEventInformationFlipY(x, y, ctrl, shift, keycode, repeatcount, keysym, 0);
804 }
805
806
808
811 void SetKeyEventInformation(int ctrl = 0, int shift = 0, char keycode = 0, int repeatcount = 0,
812 const char* keysym = nullptr)
813 {
814 this->ControlKey = ctrl;
815 this->ShiftKey = shift;
816 this->KeyCode = keycode;
817 this->RepeatCount = repeatcount;
818 if (keysym)
819 {
820 this->SetKeySym(keysym);
821 }
822 this->Modified();
823 }
824
825
827
838 vtkSetVector2Macro(Size, int);
839 vtkGetVector2Macro(Size, int);
840 vtkSetVector2Macro(EventSize, int);
841 vtkGetVector2Macro(EventSize, int);
843
849 virtual vtkRenderer* FindPokedRenderer(int, int);
850
859
861
869 vtkSetMacro(UseTDx, bool);
870 vtkGetMacro(UseTDx, bool);
872
874
879 virtual void MouseMoveEvent();
880 virtual void RightButtonPressEvent();
882 virtual void LeftButtonPressEvent();
888 virtual void MouseWheelLeftEvent();
889 virtual void MouseWheelRightEvent();
890 virtual void ExposeEvent();
891 virtual void ConfigureEvent();
892 virtual void EnterEvent();
893 virtual void LeaveEvent();
894 virtual void KeyPressEvent();
895 virtual void KeyReleaseEvent();
896 virtual void CharEvent();
897 virtual void ExitEvent();
900 virtual void FifthButtonPressEvent();
903
905
909 virtual void StartPinchEvent();
910 virtual void PinchEvent();
911 virtual void EndPinchEvent();
912 virtual void StartRotateEvent();
913 virtual void RotateEvent();
914 virtual void EndRotateEvent();
915 virtual void StartPanEvent();
916 virtual void PanEvent();
917 virtual void EndPanEvent();
918 virtual void TapEvent();
919 virtual void LongTapEvent();
920 virtual void SwipeEvent();
922
924
930 vtkSetMacro(RecognizeGestures, bool);
931 vtkGetMacro(RecognizeGestures, bool);
933
935
940 vtkGetMacro(PointersDownCount, int);
942
944
951 void ClearContact(size_t contactID);
952 int GetPointerIndexForContact(size_t contactID);
954 bool IsPointerIndexSet(int i);
955 void ClearPointerIndex(int i);
957
977
979
988
989protected:
992
996
997 // Used as a helper object to pick instances of vtkProp
1000
1001 bool Done; // is the event loop done running
1002
1008
1017
1018 // Event information
1023 double Rotation;
1025 double Scale;
1027 double Translation[2];
1030 char* KeySym;
1034 int Size[2];
1039
1043
1045
1046 // control the fly to
1048 double Dolly;
1049
1059 void GrabFocus(vtkCommand* mouseEvents, vtkCommand* keypressEvents = nullptr)
1060 {
1061 this->Superclass::InternalGrabFocus(mouseEvents, keypressEvents);
1062 }
1064
1069
1070 // Timer related members
1071 friend struct vtkTimerStruct;
1072 vtkTimerIdMap* TimerMap; // An internal, PIMPLd map of timers and associated attributes
1073 unsigned long TimerDuration; // in milliseconds
1075
1081 virtual int InternalCreateTimer(int timerId, int timerType, unsigned long duration);
1082 virtual int InternalDestroyTimer(int platformTimerId);
1085
1086 // Force the interactor to handle the Start() event loop, ignoring any
1087 // overrides. (Overrides are registered by observing StartEvent on the
1088 // interactor.)
1090
1094 virtual void StartEventLoop() {}
1095
1096 bool UseTDx; // 3DConnexion device.
1097
1098 // when recognizing gestures VTK will take multitouch events
1099 // if it receives them and convert them to gestures
1106
1107private:
1109 void operator=(const vtkRenderWindowInteractor&) = delete;
1110};
1111
1112VTK_ABI_NAMESPACE_END
1113#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:108
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
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)