VTK  9.0.1
vtkRenderWindowInteractor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkRenderWindowInteractor.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
54 #ifndef vtkRenderWindowInteractor_h
55 #define vtkRenderWindowInteractor_h
56 
57 #include "vtkCommand.h" // for method sig
58 #include "vtkObject.h"
59 #include "vtkRenderingCoreModule.h" // For export macro
60 
61 class vtkTimerIdMap;
62 
63 // Timer flags for win32/X compatibility
64 #define VTKI_TIMER_FIRST 0
65 #define VTKI_TIMER_UPDATE 1
66 
67 // maximum pointers active at once
68 // for example in multitouch
69 #define VTKI_MAX_POINTERS 5
70 
71 class vtkAbstractPicker;
73 class vtkAssemblyPath;
74 class vtkHardwareWindow;
76 class vtkRenderWindow;
77 class vtkRenderer;
80 class vtkPickingManager;
81 
82 class VTKRENDERINGCORE_EXPORT vtkRenderWindowInteractor : public vtkObject
83 {
84 
86 
87 public:
90  void PrintSelf(ostream& os, vtkIndent indent) override;
91 
93 
100  virtual void Initialize();
102  {
103  this->Initialized = 0;
104  this->Enabled = 0;
105  this->Initialize();
106  }
108 
113  void UnRegister(vtkObjectBase* o) override;
114 
120  virtual void Start();
121 
127  virtual void ProcessEvents() {}
128 
132  vtkGetMacro(Done, bool);
133  vtkSetMacro(Done, bool);
134 
144  virtual void Enable()
145  {
146  this->Enabled = 1;
147  this->Modified();
148  }
149  virtual void Disable()
150  {
151  this->Enabled = 0;
152  this->Modified();
153  }
154  vtkGetMacro(Enabled, int);
155 
157 
161  vtkBooleanMacro(EnableRender, bool);
162  vtkSetMacro(EnableRender, bool);
163  vtkGetMacro(EnableRender, bool);
165 
167 
171  vtkGetObjectMacro(RenderWindow, vtkRenderWindow);
173 
175 
181  vtkGetObjectMacro(HardwareWindow, vtkHardwareWindow);
183 
191  virtual void UpdateSize(int x, int y);
192 
209  virtual int CreateTimer(int timerType); // first group, for backward compatibility
210  virtual int DestroyTimer(); // first group, for backward compatibility
211 
216  int CreateRepeatingTimer(unsigned long duration);
217 
222  int CreateOneShotTimer(unsigned long duration);
223 
228  int IsOneShotTimer(int timerId);
229 
233  unsigned long GetTimerDuration(int timerId);
234 
238  int ResetTimer(int timerId);
239 
244  int DestroyTimer(int timerId);
245 
249  virtual int GetVTKTimerId(int platformTimerId);
250 
251  // Moved into the public section of the class so that classless timer procs
252  // can access these enum members without being "friends"...
253  enum
254  {
255  OneShotTimer = 1,
256  RepeatingTimer
257  };
258 
260 
269  vtkSetClampMacro(TimerDuration, unsigned long, 1, 100000);
270  vtkGetMacro(TimerDuration, unsigned long);
272 
274 
286  vtkSetMacro(TimerEventId, int);
287  vtkGetMacro(TimerEventId, int);
288  vtkSetMacro(TimerEventType, int);
289  vtkGetMacro(TimerEventType, int);
290  vtkSetMacro(TimerEventDuration, int);
291  vtkGetMacro(TimerEventDuration, int);
292  vtkSetMacro(TimerEventPlatformId, int);
293  vtkGetMacro(TimerEventPlatformId, int);
295 
301  virtual void TerminateApp(void) { this->Done = true; }
302 
304 
309  vtkGetObjectMacro(InteractorStyle, vtkInteractorObserver);
311 
313 
317  vtkSetMacro(LightFollowCamera, vtkTypeBool);
318  vtkGetMacro(LightFollowCamera, vtkTypeBool);
319  vtkBooleanMacro(LightFollowCamera, vtkTypeBool);
321 
323 
330  vtkSetClampMacro(DesiredUpdateRate, double, 0.0001, VTK_FLOAT_MAX);
331  vtkGetMacro(DesiredUpdateRate, double);
333 
335 
340  vtkSetClampMacro(StillUpdateRate, double, 0.0001, VTK_FLOAT_MAX);
341  vtkGetMacro(StillUpdateRate, double);
343 
345 
349  vtkGetMacro(Initialized, int);
351 
353 
359  virtual void SetPicker(vtkAbstractPicker*);
360  vtkGetObjectMacro(Picker, vtkAbstractPicker);
362 
368 
370 
376  vtkGetObjectMacro(PickingManager, vtkPickingManager);
378 
380 
384  virtual void ExitCallback();
385  virtual void UserCallback();
386  virtual void StartPickCallback();
387  virtual void EndPickCallback();
389 
393  virtual void GetMousePosition(int* x, int* y)
394  {
395  *x = 0;
396  *y = 0;
397  }
398 
400 
404  void HideCursor();
405  void ShowCursor();
407 
412  virtual void Render();
413 
415 
420  void FlyTo(vtkRenderer* ren, double x, double y, double z);
421  void FlyTo(vtkRenderer* ren, double* x) { this->FlyTo(ren, x[0], x[1], x[2]); }
422  void FlyToImage(vtkRenderer* ren, double x, double y);
423  void FlyToImage(vtkRenderer* ren, double* x) { this->FlyToImage(ren, x[0], x[1]); }
425 
427 
430  vtkSetClampMacro(NumberOfFlyFrames, int, 1, VTK_INT_MAX);
431  vtkGetMacro(NumberOfFlyFrames, int);
433 
435 
439  vtkSetMacro(Dolly, double);
440  vtkGetMacro(Dolly, double);
442 
444 
452  vtkGetVector2Macro(EventPosition, int);
453  vtkGetVector2Macro(LastEventPosition, int);
454  vtkSetVector2Macro(LastEventPosition, int);
455  virtual void SetEventPosition(int x, int y)
456  {
457  vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting EventPosition to (" << x
458  << "," << y << ")");
459  if (this->EventPosition[0] != x || this->EventPosition[1] != y ||
460  this->LastEventPosition[0] != x || this->LastEventPosition[1] != y)
461  {
462  this->LastEventPosition[0] = this->EventPosition[0];
463  this->LastEventPosition[1] = this->EventPosition[1];
464  this->EventPosition[0] = x;
465  this->EventPosition[1] = y;
466  this->Modified();
467  }
468  }
469  virtual void SetEventPosition(int pos[2]) { this->SetEventPosition(pos[0], pos[1]); }
470  virtual void SetEventPositionFlipY(int x, int y)
471  {
472  this->SetEventPosition(x, this->Size[1] - y - 1);
473  }
474  virtual void SetEventPositionFlipY(int pos[2]) { this->SetEventPositionFlipY(pos[0], pos[1]); }
476 
477  virtual int* GetEventPositions(int pointerIndex)
478  {
479  if (pointerIndex >= VTKI_MAX_POINTERS)
480  {
481  return nullptr;
482  }
483  return this->EventPositions[pointerIndex];
484  }
485  virtual int* GetLastEventPositions(int pointerIndex)
486  {
487  if (pointerIndex >= VTKI_MAX_POINTERS)
488  {
489  return nullptr;
490  }
491  return this->LastEventPositions[pointerIndex];
492  }
493  virtual void SetEventPosition(int x, int y, int pointerIndex)
494  {
495  if (pointerIndex < 0 || pointerIndex >= VTKI_MAX_POINTERS)
496  {
497  return;
498  }
499  if (pointerIndex == 0)
500  {
501  this->LastEventPosition[0] = this->EventPosition[0];
502  this->LastEventPosition[1] = this->EventPosition[1];
503  this->EventPosition[0] = x;
504  this->EventPosition[1] = y;
505  }
506  vtkDebugMacro(<< this->GetClassName() << " (" << this << "): setting EventPosition to (" << x
507  << "," << y << ") for pointerIndex number " << pointerIndex);
508  if (this->EventPositions[pointerIndex][0] != x || this->EventPositions[pointerIndex][1] != y ||
509  this->LastEventPositions[pointerIndex][0] != x ||
510  this->LastEventPositions[pointerIndex][1] != y)
511  {
512  this->LastEventPositions[pointerIndex][0] = this->EventPositions[pointerIndex][0];
513  this->LastEventPositions[pointerIndex][1] = this->EventPositions[pointerIndex][1];
514  this->EventPositions[pointerIndex][0] = x;
515  this->EventPositions[pointerIndex][1] = y;
516  this->Modified();
517  }
518  }
519  virtual void SetEventPosition(int pos[2], int pointerIndex)
520  {
521  this->SetEventPosition(pos[0], pos[1], pointerIndex);
522  }
523  virtual void SetEventPositionFlipY(int x, int y, int pointerIndex)
524  {
525  this->SetEventPosition(x, this->Size[1] - y - 1, pointerIndex);
526  }
527  virtual void SetEventPositionFlipY(int pos[2], int pointerIndex)
528  {
529  this->SetEventPositionFlipY(pos[0], pos[1], pointerIndex);
530  }
531 
533 
536  vtkSetMacro(AltKey, int);
537  vtkGetMacro(AltKey, int);
539 
541 
544  vtkSetMacro(ControlKey, int);
545  vtkGetMacro(ControlKey, int);
547 
549 
552  vtkSetMacro(ShiftKey, int);
553  vtkGetMacro(ShiftKey, int);
555 
557 
560  vtkSetMacro(KeyCode, char);
561  vtkGetMacro(KeyCode, char);
563 
565 
569  vtkSetMacro(RepeatCount, int);
570  vtkGetMacro(RepeatCount, int);
572 
574 
580  vtkSetStringMacro(KeySym);
581  vtkGetStringMacro(KeySym);
583 
585 
588  vtkSetMacro(PointerIndex, int);
589  vtkGetMacro(PointerIndex, int);
591 
593 
596  void SetRotation(double val);
597  vtkGetMacro(Rotation, double);
598  vtkGetMacro(LastRotation, double);
600 
602 
605  void SetScale(double val);
606  vtkGetMacro(Scale, double);
607  vtkGetMacro(LastScale, double);
609 
611 
614  void SetTranslation(double val[2]);
615  vtkGetVector2Macro(Translation, double);
616  vtkGetVector2Macro(LastTranslation, double);
618 
620 
623  void SetEventInformation(int x, int y, int ctrl, int shift, char keycode, int repeatcount,
624  const char* keysym, int pointerIndex)
625  {
626  this->SetEventPosition(x, y, pointerIndex);
627  this->ControlKey = ctrl;
628  this->ShiftKey = shift;
629  this->KeyCode = keycode;
630  this->RepeatCount = repeatcount;
631  this->PointerIndex = pointerIndex;
632  if (keysym)
633  {
634  this->SetKeySym(keysym);
635  }
636  this->Modified();
637  }
638  void SetEventInformation(int x, int y, int ctrl = 0, int shift = 0, char keycode = 0,
639  int repeatcount = 0, const char* keysym = nullptr)
640  {
641  this->SetEventInformation(x, y, ctrl, shift, keycode, repeatcount, keysym, 0);
642  }
644 
646 
650  void SetEventInformationFlipY(int x, int y, int ctrl, int shift, char keycode, int repeatcount,
651  const char* keysym, int pointerIndex)
652  {
653  this->SetEventInformation(
654  x, this->Size[1] - y - 1, ctrl, shift, keycode, repeatcount, keysym, pointerIndex);
655  }
656  void SetEventInformationFlipY(int x, int y, int ctrl = 0, int shift = 0, char keycode = 0,
657  int repeatcount = 0, const char* keysym = nullptr)
658  {
659  this->SetEventInformationFlipY(x, y, ctrl, shift, keycode, repeatcount, keysym, 0);
660  }
662 
664 
667  void SetKeyEventInformation(int ctrl = 0, int shift = 0, char keycode = 0, int repeatcount = 0,
668  const char* keysym = nullptr)
669  {
670  this->ControlKey = ctrl;
671  this->ShiftKey = shift;
672  this->KeyCode = keycode;
673  this->RepeatCount = repeatcount;
674  if (keysym)
675  {
676  this->SetKeySym(keysym);
677  }
678  this->Modified();
679  }
681 
683 
694  vtkSetVector2Macro(Size, int);
695  vtkGetVector2Macro(Size, int);
696  vtkSetVector2Macro(EventSize, int);
697  vtkGetVector2Macro(EventSize, int);
699 
705  virtual vtkRenderer* FindPokedRenderer(int, int);
706 
715 
717 
725  vtkSetMacro(UseTDx, bool);
726  vtkGetMacro(UseTDx, bool);
728 
730 
735  virtual void MouseMoveEvent();
736  virtual void RightButtonPressEvent();
737  virtual void RightButtonReleaseEvent();
738  virtual void LeftButtonPressEvent();
739  virtual void LeftButtonReleaseEvent();
740  virtual void MiddleButtonPressEvent();
741  virtual void MiddleButtonReleaseEvent();
742  virtual void MouseWheelForwardEvent();
743  virtual void MouseWheelBackwardEvent();
744  virtual void ExposeEvent();
745  virtual void ConfigureEvent();
746  virtual void EnterEvent();
747  virtual void LeaveEvent();
748  virtual void KeyPressEvent();
749  virtual void KeyReleaseEvent();
750  virtual void CharEvent();
751  virtual void ExitEvent();
752  virtual void FourthButtonPressEvent();
753  virtual void FourthButtonReleaseEvent();
754  virtual void FifthButtonPressEvent();
755  virtual void FifthButtonReleaseEvent();
757 
759 
763  virtual void StartPinchEvent();
764  virtual void PinchEvent();
765  virtual void EndPinchEvent();
766  virtual void StartRotateEvent();
767  virtual void RotateEvent();
768  virtual void EndRotateEvent();
769  virtual void StartPanEvent();
770  virtual void PanEvent();
771  virtual void EndPanEvent();
772  virtual void TapEvent();
773  virtual void LongTapEvent();
774  virtual void SwipeEvent();
776 
778 
784  vtkSetMacro(RecognizeGestures, bool);
785  vtkGetMacro(RecognizeGestures, bool);
787 
789 
794  vtkGetMacro(PointersDownCount, int);
796 
798 
805  void ClearContact(size_t contactID);
806  int GetPointerIndexForContact(size_t contactID);
807  int GetPointerIndexForExistingContact(size_t contactID);
808  bool IsPointerIndexSet(int i);
809  void ClearPointerIndex(int i);
811 
812 protected:
815 
819 
820  // Used as a helper object to pick instances of vtkProp
823 
824  bool Done; // is the event loop done running
825 
831 
833  int Enabled;
835  int Style;
840 
841  // Event information
842  int AltKey;
844  int ShiftKey;
845  char KeyCode;
846  double Rotation;
847  double LastRotation;
848  double Scale;
849  double LastScale;
850  double Translation[2];
851  double LastTranslation[2];
853  char* KeySym;
854  int EventPosition[2];
855  int LastEventPosition[2];
856  int EventSize[2];
857  int Size[2];
862 
863  int EventPositions[VTKI_MAX_POINTERS][2];
864  int LastEventPositions[VTKI_MAX_POINTERS][2];
866 
867  size_t PointerIndexLookup[VTKI_MAX_POINTERS];
868 
869  // control the fly to
871  double Dolly;
872 
881  friend class vtkInteractorObserver;
882  void GrabFocus(vtkCommand* mouseEvents, vtkCommand* keypressEvents = nullptr)
883  {
884  this->Superclass::InternalGrabFocus(mouseEvents, keypressEvents);
885  }
887 
892 
893  // Timer related members
894  friend struct vtkTimerStruct;
895  vtkTimerIdMap* TimerMap; // An internal, PIMPLd map of timers and associated attributes
896  unsigned long TimerDuration; // in milliseconds
898 
904  virtual int InternalCreateTimer(int timerId, int timerType, unsigned long duration);
905  virtual int InternalDestroyTimer(int platformTimerId);
908 
909  // Force the interactor to handle the Start() event loop, ignoring any
910  // overrides. (Overrides are registered by observing StartEvent on the
911  // interactor.)
913 
917  virtual void StartEventLoop() {}
918 
919  bool UseTDx; // 3DConnexion device.
920 
921  // when recognizing gestures VTK will take multitouch events
922  // if it receives them and convert them to gestures
925  int PointersDown[VTKI_MAX_POINTERS];
927  int StartingEventPositions[VTKI_MAX_POINTERS][2];
929 
930 private:
932  void operator=(const vtkRenderWindowInteractor&) = delete;
933 };
934 
935 #endif
vtkRenderWindowInteractor::RepeatCount
int RepeatCount
Definition: vtkRenderWindowInteractor.h:852
vtkRenderWindowInteractor::SetRenderWindow
void SetRenderWindow(vtkRenderWindow *aren)
Set/Get the rendering window being controlled by this object.
vtkRenderWindowInteractor::New
static vtkRenderWindowInteractor * New()
vtkCommand
superclass for callback/observer methods
Definition: vtkCommand.h:378
vtkRenderWindowInteractor::StartPanEvent
virtual void StartPanEvent()
vtkRenderWindowInteractor::MouseWheelForwardEvent
virtual void MouseWheelForwardEvent()
vtkRenderWindowInteractor::InternalCreateTimer
virtual int InternalCreateTimer(int timerId, int timerType, unsigned long duration)
Internal methods for creating and destroying timers that must be implemented by subclasses.
vtkInteractorEventRecorder
record and play VTK events passing through a vtkRenderWindowInteractor
Definition: vtkInteractorEventRecorder.h:48
VTK_INT_MAX
#define VTK_INT_MAX
Definition: vtkType.h:155
vtkRenderWindowInteractor::ExitEvent
virtual void ExitEvent()
vtkRenderWindowInteractor::RecognizeGestures
bool RecognizeGestures
Definition: vtkRenderWindowInteractor.h:923
vtkRenderWindowInteractor::CreateTimer
virtual int CreateTimer(int timerType)
This class provides two groups of methods for manipulating timers.
vtkRenderWindowInteractor::HandleEventLoop
int HandleEventLoop
Definition: vtkRenderWindowInteractor.h:912
vtkRenderWindowInteractor::TimerEventType
int TimerEventType
Definition: vtkRenderWindowInteractor.h:859
vtkRenderWindowInteractor::StartEventLoop
virtual void StartEventLoop()
Run the event loop (does not return until TerminateApp is called).
Definition: vtkRenderWindowInteractor.h:917
vtkInteractorEventRecorder::AltKey
@ AltKey
Definition: vtkInteractorEventRecorder.h:151
vtkRenderWindowInteractor::MiddleButtonPressEvent
virtual void MiddleButtonPressEvent()
vtkRenderWindowInteractor::AltKey
int AltKey
Definition: vtkRenderWindowInteractor.h:842
vtkRenderWindowInteractor::NumberOfFlyFrames
int NumberOfFlyFrames
Definition: vtkRenderWindowInteractor.h:870
vtkRenderWindowInteractor::MouseWheelBackwardEvent
virtual void MouseWheelBackwardEvent()
vtkRenderWindowInteractor::~vtkRenderWindowInteractor
~vtkRenderWindowInteractor() override
vtkRenderWindowInteractor::ControlKey
int ControlKey
Definition: vtkRenderWindowInteractor.h:843
vtkRenderWindowInteractor::ShiftKey
int ShiftKey
Definition: vtkRenderWindowInteractor.h:844
vtkRenderWindowInteractor::UseTDx
bool UseTDx
Definition: vtkRenderWindowInteractor.h:919
vtkRenderWindowInteractor::RotateEvent
virtual void RotateEvent()
vtkRenderWindowInteractor::InternalDestroyTimer
virtual int InternalDestroyTimer(int platformTimerId)
vtkRenderWindowInteractor::GetObserverMediator
vtkObserverMediator * GetObserverMediator()
Return the object used to mediate between vtkInteractorObservers contending for resources.
vtkRenderWindowInteractor::EnableRender
bool EnableRender
Definition: vtkRenderWindowInteractor.h:834
vtkRenderWindowInteractor::SetRotation
void SetRotation(double val)
Set/get the rotation for the gesture in degrees, update LastRotation.
vtkRenderWindowInteractor::ReleaseFocus
void ReleaseFocus()
Definition: vtkRenderWindowInteractor.h:886
vtkRenderWindowInteractor::FlyTo
void FlyTo(vtkRenderer *ren, double *x)
Definition: vtkRenderWindowInteractor.h:421
vtkRenderWindowInteractor::EndPickCallback
virtual void EndPickCallback()
vtkRenderWindowInteractor::TimerEventPlatformId
int TimerEventPlatformId
Definition: vtkRenderWindowInteractor.h:861
vtkObject::Modified
virtual void Modified()
Update the modification time for this object.
vtkRenderWindowInteractor::SetScale
void SetScale(double val)
Set/get the scale for the gesture, updates LastScale.
vtkRenderWindowInteractor::PointersDownCount
int PointersDownCount
Definition: vtkRenderWindowInteractor.h:924
vtkObject
abstract base class for most VTK objects
Definition: vtkObject.h:63
vtkRenderWindowInteractor::UpdateSize
virtual void UpdateSize(int x, int y)
Event loop notification member for window size change.
vtkRenderWindowInteractor::RenderWindow
vtkRenderWindow * RenderWindow
Definition: vtkRenderWindowInteractor.h:816
vtkRenderWindowInteractor::SetEventPosition
virtual void SetEventPosition(int x, int y)
Definition: vtkRenderWindowInteractor.h:455
vtkRenderWindowInteractor::PanEvent
virtual void PanEvent()
vtkObject::InternalGrabFocus
void InternalGrabFocus(vtkCommand *mouseEvents, vtkCommand *keypressEvents=nullptr)
These methods allow a command to exclusively grab all events.
vtkRenderWindowInteractor::LeaveEvent
virtual void LeaveEvent()
vtkRenderWindowInteractor::SetEventInformation
void SetEventInformation(int x, int y, int ctrl=0, int shift=0, char keycode=0, int repeatcount=0, const char *keysym=nullptr)
Definition: vtkRenderWindowInteractor.h:638
vtkRenderWindowInteractor::UnRegister
void UnRegister(vtkObjectBase *o) override
This Method detects loops of RenderWindow-Interactor, so objects are freed properly.
vtkCommand.h
vtkRenderWindowInteractor::PickingManager
vtkPickingManager * PickingManager
Definition: vtkRenderWindowInteractor.h:822
vtkAbstractPicker
define API for picking subclasses
Definition: vtkAbstractPicker.h:69
vtkAssemblyPath
a list of nodes that form an assembly path
Definition: vtkAssemblyPath.h:42
vtkRenderWindowInteractor::SetPickingManager
virtual void SetPickingManager(vtkPickingManager *)
Set the picking manager.
vtkRenderWindowInteractor::KeyPressEvent
virtual void KeyPressEvent()
vtkInteractorObserver
an abstract superclass for classes observing events invoked by vtkRenderWindowInteractor
Definition: vtkInteractorObserver.h:66
vtkRenderWindowInteractor::TapEvent
virtual void TapEvent()
vtkRenderWindowInteractor::PointerIndex
int PointerIndex
Definition: vtkRenderWindowInteractor.h:865
vtkRenderWindowInteractor::FindPokedRenderer
virtual vtkRenderer * FindPokedRenderer(int, int)
When an event occurs, we must determine which Renderer the event occurred within, since one RenderWin...
vtkRenderWindowInteractor::GetLastEventPositions
virtual int * GetLastEventPositions(int pointerIndex)
Definition: vtkRenderWindowInteractor.h:485
vtkRenderWindowInteractor::IsPointerIndexSet
bool IsPointerIndexSet(int i)
vtkRenderWindowInteractor::Disable
virtual void Disable()
Definition: vtkRenderWindowInteractor.h:149
vtkObject::InternalReleaseFocus
void InternalReleaseFocus()
vtkRenderWindowInteractor::Dolly
double Dolly
Definition: vtkRenderWindowInteractor.h:871
vtkRenderWindowInteractor::GetPointerIndexForContact
int GetPointerIndexForContact(size_t contactID)
vtkRenderWindowInteractor::Initialized
int Initialized
Definition: vtkRenderWindowInteractor.h:832
vtkInteractorEventRecorder::ControlKey
@ ControlKey
Definition: vtkInteractorEventRecorder.h:150
vtkRenderWindowInteractor::GetEventPositions
virtual int * GetEventPositions(int pointerIndex)
Definition: vtkRenderWindowInteractor.h:477
vtkRenderWindowInteractor::CreateOneShotTimer
int CreateOneShotTimer(unsigned long duration)
Create a one shot timer, with the specified duration (in milliseconds).
vtkRenderWindowInteractor::RightButtonReleaseEvent
virtual void RightButtonReleaseEvent()
vtkRenderWindowInteractor::HardwareWindow
vtkHardwareWindow * HardwareWindow
Definition: vtkRenderWindowInteractor.h:817
vtkRenderWindowInteractor::Picker
vtkAbstractPicker * Picker
Definition: vtkRenderWindowInteractor.h:821
vtkRenderWindowInteractor::SetKeyEventInformation
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.
Definition: vtkRenderWindowInteractor.h:667
vtkRenderWindowInteractor::RightButtonPressEvent
virtual void RightButtonPressEvent()
vtkObjectBase::GetClassName
const char * GetClassName() const
Return the class name as a string.
vtkRenderWindowInteractor::GetMousePosition
virtual void GetMousePosition(int *x, int *y)
Get the current position of the mouse.
Definition: vtkRenderWindowInteractor.h:393
vtkRenderWindowInteractor::CharEvent
virtual void CharEvent()
vtkRenderWindowInteractor::GetCurrentTimerId
int GetCurrentTimerId()
vtkRenderWindowInteractor::KeySym
char * KeySym
Definition: vtkRenderWindowInteractor.h:853
vtkRenderWindowInteractor::FlyToImage
void FlyToImage(vtkRenderer *ren, double *x)
Definition: vtkRenderWindowInteractor.h:423
vtkRenderWindowInteractor::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkRenderWindowInteractor::TimerMap
vtkTimerIdMap * TimerMap
Definition: vtkRenderWindowInteractor.h:895
vtkObjectBase
abstract base class for most VTK objects
Definition: vtkObjectBase.h:64
vtkRenderWindowInteractor::EndPanEvent
virtual void EndPanEvent()
vtkInteractorEventRecorder::ShiftKey
@ ShiftKey
Definition: vtkInteractorEventRecorder.h:149
vtkRenderWindowInteractor::ObserverMediator
vtkObserverMediator * ObserverMediator
Widget mediators are used to resolve contention for cursors and other resources.
Definition: vtkRenderWindowInteractor.h:891
vtkRenderWindowInteractor::SwipeEvent
virtual void SwipeEvent()
vtkRenderWindowInteractor::ConfigureEvent
virtual void ConfigureEvent()
vtkRenderWindowInteractor::SetInteractorStyle
virtual void SetInteractorStyle(vtkInteractorObserver *)
External switching between joystick/trackball/new? modes.
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:34
vtkRenderWindowInteractor::FourthButtonReleaseEvent
virtual void FourthButtonReleaseEvent()
vtkRenderWindowInteractor::SetEventPosition
virtual void SetEventPosition(int pos[2])
Definition: vtkRenderWindowInteractor.h:469
vtkRenderWindowInteractor::DestroyTimer
int DestroyTimer(int timerId)
Destroy the timer specified by timerId.
vtkRenderWindowInteractor::ResetTimer
int ResetTimer(int timerId)
Reset the specified timer.
vtkRenderWindowInteractor::IsOneShotTimer
int IsOneShotTimer(int timerId)
Query whether the specified timerId is a one shot timer.
vtkRenderWindowInteractor::GetTimerDuration
unsigned long GetTimerDuration(int timerId)
Get the duration (in milliseconds) for the specified timerId.
vtkRenderWindowInteractor::EndPinchEvent
virtual void EndPinchEvent()
vtkRenderWindowInteractor::LongTapEvent
virtual void LongTapEvent()
vtkRenderWindowInteractor::GetPointerIndexForExistingContact
int GetPointerIndexForExistingContact(size_t contactID)
vtkRenderWindowInteractor::CreateDefaultPickingManager
virtual vtkPickingManager * CreateDefaultPickingManager()
Create default pickingManager.
vtkRenderWindowInteractor::StillUpdateRate
double StillUpdateRate
Definition: vtkRenderWindowInteractor.h:839
vtkRenderWindowInteractor::InteractorStyle
vtkInteractorObserver * InteractorStyle
Definition: vtkRenderWindowInteractor.h:818
vtkRenderWindowInteractor::ReInitialize
void ReInitialize()
Definition: vtkRenderWindowInteractor.h:101
VTK_FLOAT_MAX
#define VTK_FLOAT_MAX
Definition: vtkType.h:163
vtkRenderWindowInteractor::LeftButtonReleaseEvent
virtual void LeftButtonReleaseEvent()
vtkRenderWindowInteractor::CreateDefaultPicker
virtual vtkAbstractPropPicker * CreateDefaultPicker()
Create default picker.
vtkRenderWindowInteractor::SetEventPosition
virtual void SetEventPosition(int x, int y, int pointerIndex)
Definition: vtkRenderWindowInteractor.h:493
vtkRenderWindowInteractor::Render
virtual void Render()
Render the scene.
vtkRenderWindowInteractor::SetEventPositionFlipY
virtual void SetEventPositionFlipY(int pos[2])
Definition: vtkRenderWindowInteractor.h:474
vtkRenderWindowInteractor::DestroyTimer
virtual int DestroyTimer()
vtkRenderWindowInteractor
platform-independent render window interaction including picking and frame rate control.
Definition: vtkRenderWindowInteractor.h:83
vtkRenderWindowInteractor::EndRotateEvent
virtual void EndRotateEvent()
vtkRenderWindowInteractor::FifthButtonPressEvent
virtual void FifthButtonPressEvent()
vtkRenderWindowInteractor::MiddleButtonReleaseEvent
virtual void MiddleButtonReleaseEvent()
vtkRenderWindowInteractor::SetHardwareWindow
void SetHardwareWindow(vtkHardwareWindow *aren)
Set/Get the hardware window being controlled by this object.
vtkRenderWindowInteractor::ExitCallback
virtual void ExitCallback()
These methods correspond to the Exit, User and Pick callbacks.
vtkAbstractPropPicker
abstract API for pickers that can pick an instance of vtkProp
Definition: vtkAbstractPropPicker.h:80
vtkRenderWindowInteractor::LastRotation
double LastRotation
Definition: vtkRenderWindowInteractor.h:847
vtkRenderWindowInteractor::ActorMode
int ActorMode
Definition: vtkRenderWindowInteractor.h:837
vtkObject.h
vtkRenderWindowInteractor::UserCallback
virtual void UserCallback()
vtkRenderWindowInteractor::RecognizeGesture
virtual void RecognizeGesture(vtkCommand::EventIds)
vtkRenderWindowInteractor::GrabFocus
void GrabFocus(vtkCommand *mouseEvents, vtkCommand *keypressEvents=nullptr)
Definition: vtkRenderWindowInteractor.h:882
vtkRenderWindowInteractor::LightFollowCamera
vtkTypeBool LightFollowCamera
Definition: vtkRenderWindowInteractor.h:836
vtkRenderWindowInteractor::KeyCode
char KeyCode
Definition: vtkRenderWindowInteractor.h:845
vtkRenderWindowInteractor::Enabled
int Enabled
Definition: vtkRenderWindowInteractor.h:833
vtkRenderWindowInteractor::TimerEventDuration
int TimerEventDuration
Definition: vtkRenderWindowInteractor.h:860
vtkRenderWindowInteractor::TerminateApp
virtual void TerminateApp(void)
This function is called on 'q','e' keypress if exitmethod is not specified and should be overridden b...
Definition: vtkRenderWindowInteractor.h:301
vtkRenderWindowInteractor::LastScale
double LastScale
Definition: vtkRenderWindowInteractor.h:849
vtkRenderWindowInteractor::DesiredUpdateRate
double DesiredUpdateRate
Definition: vtkRenderWindowInteractor.h:838
vtkRenderWindowInteractor::Enable
virtual void Enable()
Enable/Disable interactions.
Definition: vtkRenderWindowInteractor.h:144
vtkRenderWindowInteractor::EnterEvent
virtual void EnterEvent()
vtkRenderWindowInteractor::KeyReleaseEvent
virtual void KeyReleaseEvent()
vtkRenderWindowInteractor::SetEventInformationFlipY
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.
Definition: vtkRenderWindowInteractor.h:650
vtkCommand::EventIds
EventIds
Definition: vtkCommand.h:445
vtkRenderWindowInteractor::vtkRenderWindowInteractor
vtkRenderWindowInteractor()
vtkRenderer
abstract specification for renderers
Definition: vtkRenderer.h:68
vtkRenderWindowInteractor::StartRotateEvent
virtual void StartRotateEvent()
vtkRenderWindowInteractor::Start
virtual void Start()
Start the event loop.
vtkRenderWindowInteractor::FlyToImage
void FlyToImage(vtkRenderer *ren, double x, double y)
vtkRenderWindowInteractor::SetEventPosition
virtual void SetEventPosition(int pos[2], int pointerIndex)
Definition: vtkRenderWindowInteractor.h:519
vtkRenderWindowInteractor::Style
int Style
Definition: vtkRenderWindowInteractor.h:835
vtkRenderWindowInteractor::SetEventPositionFlipY
virtual void SetEventPositionFlipY(int x, int y)
Definition: vtkRenderWindowInteractor.h:470
vtkRenderWindowInteractor::SetPicker
virtual void SetPicker(vtkAbstractPicker *)
Set/Get the object used to perform pick operations.
VTKI_MAX_POINTERS
#define VTKI_MAX_POINTERS
Definition: vtkRenderWindowInteractor.h:69
vtkRenderWindowInteractor::Initialize
virtual void Initialize()
Prepare for handling events and set the Enabled flag to true.
vtkRenderWindowInteractor::FlyTo
void FlyTo(vtkRenderer *ren, double x, double y, double z)
Given a position x, move the current camera's focal point to x.
vtkRenderWindowInteractor::SetTranslation
void SetTranslation(double val[2])
Set/get the translation for pan/swipe gestures, update LastTranslation.
vtkRenderWindowInteractor::SetEventPositionFlipY
virtual void SetEventPositionFlipY(int x, int y, int pointerIndex)
Definition: vtkRenderWindowInteractor.h:523
vtkRenderWindowInteractor::ProcessEvents
virtual void ProcessEvents()
Run the event loop and return.
Definition: vtkRenderWindowInteractor.h:127
vtkRenderWindowInteractor::CreateRepeatingTimer
int CreateRepeatingTimer(unsigned long duration)
Create a repeating timer, with the specified duration (in milliseconds).
vtkRenderWindowInteractor::Scale
double Scale
Definition: vtkRenderWindowInteractor.h:848
vtkRenderWindowInteractor::LeftButtonPressEvent
virtual void LeftButtonPressEvent()
vtkRenderWindowInteractor::ExposeEvent
virtual void ExposeEvent()
vtkRenderWindowInteractor::ShowCursor
void ShowCursor()
vtkRenderWindowInteractor::MouseMoveEvent
virtual void MouseMoveEvent()
Fire various events.
vtkRenderWindowInteractor::ClearPointerIndex
void ClearPointerIndex(int i)
vtkRenderWindow
create a window for renderers to draw into
Definition: vtkRenderWindow.h:94
vtkObserverMediator
manage contention for cursors and other resources
Definition: vtkObserverMediator.h:42
vtkRenderWindowInteractor::SetEventPositionFlipY
virtual void SetEventPositionFlipY(int pos[2], int pointerIndex)
Definition: vtkRenderWindowInteractor.h:527
vtkRenderWindowInteractor::ClearContact
void ClearContact(size_t contactID)
Most multitouch systems use persistent contact/pointer ids to track events/motion during multitouch e...
vtkRenderWindowInteractor::PinchEvent
virtual void PinchEvent()
vtkRenderWindowInteractor::FourthButtonPressEvent
virtual void FourthButtonPressEvent()
vtkRenderWindowInteractor::HideCursor
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...
vtkRenderWindowInteractor::StartPinchEvent
virtual void StartPinchEvent()
Fire various gesture based events.
vtkInteractorObserver::Enabled
int Enabled
Definition: vtkInteractorObserver.h:237
vtkHardwareWindow
create a window for renderers to draw into
Definition: vtkHardwareWindow.h:36
vtkRenderWindowInteractor::CurrentGesture
vtkCommand::EventIds CurrentGesture
Definition: vtkRenderWindowInteractor.h:928
vtkRenderWindowInteractor::FifthButtonReleaseEvent
virtual void FifthButtonReleaseEvent()
vtkRenderWindowInteractor::TimerEventId
int TimerEventId
Definition: vtkRenderWindowInteractor.h:858
vtkRenderWindowInteractor::StartPickCallback
virtual void StartPickCallback()
vtkRenderWindowInteractor::GetVTKTimerId
virtual int GetVTKTimerId(int platformTimerId)
Get the VTK timer ID that corresponds to the supplied platform ID.
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkRenderWindowInteractor::Rotation
double Rotation
Definition: vtkRenderWindowInteractor.h:846
vtkRenderWindowInteractor::TimerDuration
unsigned long TimerDuration
Definition: vtkRenderWindowInteractor.h:896
vtkRenderWindowInteractor::SetEventInformationFlipY
void SetEventInformationFlipY(int x, int y, int ctrl=0, int shift=0, char keycode=0, int repeatcount=0, const char *keysym=nullptr)
Definition: vtkRenderWindowInteractor.h:656
vtkRenderWindowInteractor::Done
bool Done
Definition: vtkRenderWindowInteractor.h:824
vtkPickingManager
Class defines API to manage the picking process.
Definition: vtkPickingManager.h:83
vtkRenderWindowInteractor::SetEventInformation
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.
Definition: vtkRenderWindowInteractor.h:623