VTK  9.3.20240425
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
23VTK_ABI_NAMESPACE_BEGIN
24class VTKRENDERINGUI_EXPORT vtkIOSRenderWindowInteractor : public vtkRenderWindowInteractor
25{
26public:
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
81protected:
84
89 void SetTimerDictionary(void* dictionary); // Really an NSMutableDictionary*
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);
127
128private:
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
141VTK_ABI_NAMESPACE_END
142#endif
implements IOS specific functions required by vtkRenderWindowInteractor.
static void SetClassExitMethod(void(*f)(void *), void *arg)
Methods to set the default exit method for the class.
void StartEventLoop() override
This will start up the event loop and never return.
void Initialize() override
Initialize the even handler.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static void SetClassExitMethodArgDelete(void(*f)(void *))
Methods to set the default exit method for the class.
void Enable() override
Enable/Disable interactions.
void ExitCallback() override
These methods correspond to the Exit, User and Pick callbacks.
static void * ClassExitMethodArg
Class variables so an exit method can be defined for this class (used to set different exit methods f...
int InternalCreateTimer(int timerId, int timerType, unsigned long duration) override
IOS-specific internal timer methods.
static vtkIOSRenderWindowInteractor * New()
Construct object so that light follows camera motion.
void SetTimerDictionary(void *dictionary)
Accessors for the IOS member variables.
void Disable() override
Enable/Disable interactions.
void * GetIOSManager()
Accessors for the IOS manager (Really an NSMutableDictionary*).
~vtkIOSRenderWindowInteractor() override
void SetIOSManager(void *manager)
Accessors for the IOS manager (Really an NSMutableDictionary*).
int InternalDestroyTimer(int platformTimerId) override
IOS-specific internal timer methods.
void TerminateApp() override
IOS specific application terminate, calls ClassExitMethod then calls PostQuitMessage(0) to terminate ...
a simple class to control print indentation
Definition vtkIndent.h:108
platform-independent render window interaction including picking and frame rate control.