VTK  9.3.1
vtkIOSRenderWindowInteractor.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
17 #ifndef vtkIOSRenderWindowInteractor_h
18 #define vtkIOSRenderWindowInteractor_h
19 
21 #include "vtkRenderingUIModule.h" // For export macro
22 
23 VTK_ABI_NAMESPACE_BEGIN
24 class VTKRENDERINGUI_EXPORT vtkIOSRenderWindowInteractor : public vtkRenderWindowInteractor
25 {
26 public:
31 
33  void PrintSelf(ostream& os, vtkIndent indent) override;
34 
38  void Initialize() override;
39 
41 
50  void Enable() override;
51  void Disable() override;
53 
59  void TerminateApp() override;
60 
62 
68  static void SetClassExitMethod(void (*f)(void*), void* arg);
69  static void SetClassExitMethodArgDelete(void (*f)(void*));
71 
76  void ExitCallback() override;
77 
78  // int GetButtonDown();
79  // void SetButtonDown(int button);
80 
81 protected:
83  ~vtkIOSRenderWindowInteractor() override;
84 
89  void SetTimerDictionary(void* dictionary); // Really an NSMutableDictionary*
90  void* GetTimerDictionary();
91 
93 
98  static void (*ClassExitMethod)(void*);
99  static void (*ClassExitMethodArgDelete)(void*);
100  static void* ClassExitMethodArg;
102 
104 
108  int InternalCreateTimer(int timerId, int timerType, unsigned long duration) override;
109  int InternalDestroyTimer(int platformTimerId) override;
111 
117  void StartEventLoop() override;
118 
120 
124  void SetIOSManager(void* manager);
125  void* GetIOSManager();
127 
128 private:
130  void operator=(const vtkIOSRenderWindowInteractor&) = delete;
131 
132  // Important: this class cannot contain Objective-C instance
133  // variables for 2 reasons:
134  // 1) C++ files include this header
135  // 2) because of garbage collection
136  // Instead, use the IOSManager dictionary to keep a collection
137  // of what would otherwise be Objective-C instance variables.
138  void* IOSManager; // Really an NSMutableDictionary*
139 };
140 
141 VTK_ABI_NAMESPACE_END
142 #endif
virtual void Enable()
Enable/Disable interactions.
virtual int InternalDestroyTimer(int platformTimerId)
Internal methods for creating and destroying timers that must be implemented by subclasses.
virtual int InternalCreateTimer(int timerId, int timerType, unsigned long duration)
Internal methods for creating and destroying timers that must be implemented by subclasses.
implements IOS specific functions required by vtkRenderWindowInteractor.
virtual void Initialize()
Prepare for handling events and set the Enabled flag to true.
static vtkRenderWindowInteractor * New()
platform-independent render window interaction including picking and frame rate control.
a simple class to control print indentation
Definition: vtkIndent.h:28
virtual void ExitCallback()
These methods correspond to the Exit, User and Pick callbacks.
virtual void StartEventLoop()
Run the event loop (does not return until TerminateApp is called).
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void TerminateApp()
This function is called on 'q','e' keypress if exitmethod is not specified and should be overridden b...
static void * ClassExitMethodArg
Class variables so an exit method can be defined for this class (used to set different exit methods f...