VTK  9.1.0
vtkAndroidRenderWindowInteractor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkAndroidRenderWindowInteractor.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 =========================================================================*/
36 #ifndef vtkAndroidRenderWindowInteractor_h
37 #define vtkAndroidRenderWindowInteractor_h
38 
40 #include "vtkRenderingUIModule.h" // For export macro
41 
42 struct AInputEvent;
43 
44 class VTKRENDERINGUI_EXPORT vtkAndroidRenderWindowInteractor : public vtkRenderWindowInteractor
45 {
46 public:
51 
53  void PrintSelf(ostream& os, vtkIndent indent) override;
54 
58  void Initialize() override;
59 
61 
70  void Enable() override;
71  void Disable() override;
73 
79  void TerminateApp(void) override;
80 
82 
88  static void SetClassExitMethod(void (*f)(void*), void* arg);
89  static void SetClassExitMethodArgDelete(void (*f)(void*));
91 
96  void ExitCallback() override;
97 
98  virtual void SetAndroidApplication(struct android_app* app) { this->AndroidApplication = app; }
99 
103  void HandleKeyEvent(bool down, int nChar, int metaState, int nRepCnt);
104 
109  int actionType, int actionId, int numPtrs, int* xPtr, int* yPtr, int* idPtr, int metaState);
110 
114  const char* GetKeySym(int keyCode);
115 
116  void HandleCommand(int32_t cmd);
117  int32_t HandleInput(AInputEvent* event);
118 
120 
123  vtkSetMacro(OwnWindow, bool);
124  vtkGetMacro(OwnWindow, bool);
126 
127 protected:
130 
133 
134  struct android_app* AndroidApplication;
135  const char** KeyCodeToKeySymTable;
136 
137  bool Done; // is the event loop done running
138 
140 
145  static void (*ClassExitMethod)(void*);
146  static void (*ClassExitMethodArgDelete)(void*);
147  static void* ClassExitMethodArg;
149 
151 
155  int InternalCreateTimer(int timerId, int timerType, unsigned long duration) override;
156  int InternalDestroyTimer(int platformTimerId) override;
158 
164  void StartEventLoop() override;
165 
167 
168 private:
170  void operator=(const vtkAndroidRenderWindowInteractor&) = delete;
171 };
172 
173 #endif
vtkAndroidRenderWindowInteractor::InternalDestroyTimer
int InternalDestroyTimer(int platformTimerId) override
Win32-specific internal timer methods.
vtkAndroidRenderWindowInteractor::Enable
void Enable() override
Enable/Disable interactions.
vtkAndroidRenderWindowInteractor::ExitCallback
void ExitCallback() override
These methods correspond to the Exit, User and Pick callbacks.
vtkAndroidRenderWindowInteractor::StartedMessageLoop
int StartedMessageLoop
Definition: vtkAndroidRenderWindowInteractor.h:132
vtkAndroidRenderWindowInteractor::~vtkAndroidRenderWindowInteractor
~vtkAndroidRenderWindowInteractor() override
vtkAndroidRenderWindowInteractor::KeyCodeToKeySymTable
const char ** KeyCodeToKeySymTable
Definition: vtkAndroidRenderWindowInteractor.h:135
vtkAndroidRenderWindowInteractor::OwnWindow
vtkTypeBool OwnWindow
Definition: vtkAndroidRenderWindowInteractor.h:166
vtkAndroidRenderWindowInteractor::vtkAndroidRenderWindowInteractor
vtkAndroidRenderWindowInteractor()
vtkAndroidRenderWindowInteractor::AndroidApplication
struct android_app * AndroidApplication
Definition: vtkAndroidRenderWindowInteractor.h:134
vtkAndroidRenderWindowInteractor::HandleMotionEvent
void HandleMotionEvent(int actionType, int actionId, int numPtrs, int *xPtr, int *yPtr, int *idPtr, int metaState)
Handle motion events.
vtkAndroidRenderWindowInteractor::InternalCreateTimer
int InternalCreateTimer(int timerId, int timerType, unsigned long duration) override
Win32-specific internal timer methods.
vtkAndroidRenderWindowInteractor::SetAndroidApplication
virtual void SetAndroidApplication(struct android_app *app)
Definition: vtkAndroidRenderWindowInteractor.h:98
vtkAndroidRenderWindowInteractor::MouseInWindow
int MouseInWindow
Definition: vtkAndroidRenderWindowInteractor.h:131
vtkAndroidRenderWindowInteractor::SetClassExitMethod
static void SetClassExitMethod(void(*f)(void *), void *arg)
Methods to set the default exit method for the class.
vtkAndroidRenderWindowInteractor::SetClassExitMethodArgDelete
static void SetClassExitMethodArgDelete(void(*f)(void *))
Methods to set the default exit method for the class.
vtkAndroidRenderWindowInteractor::Done
bool Done
Definition: vtkAndroidRenderWindowInteractor.h:137
vtkAndroidRenderWindowInteractor::Disable
void Disable() override
Enable/Disable interactions.
vtkAndroidRenderWindowInteractor::StartEventLoop
void StartEventLoop() override
This will start up the event loop and never return.
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:113
vtkAndroidRenderWindowInteractor::HandleCommand
void HandleCommand(int32_t cmd)
vtkRenderWindowInteractor
platform-independent render window interaction including picking and frame rate control.
Definition: vtkRenderWindowInteractor.h:192
vtkAndroidRenderWindowInteractor::GetKeySym
const char * GetKeySym(int keyCode)
used for converting keyCodes on Android
vtkAndroidRenderWindowInteractor::HandleInput
int32_t HandleInput(AInputEvent *event)
vtkAndroidRenderWindowInteractor::HandleKeyEvent
void HandleKeyEvent(bool down, int nChar, int metaState, int nRepCnt)
Handle key up/down events.
vtkAndroidRenderWindowInteractor::Initialize
void Initialize() override
Initialize the event handler.
vtkRenderWindowInteractor.h
vtkAndroidRenderWindowInteractor::New
static vtkAndroidRenderWindowInteractor * New()
Construct object so that light follows camera motion.
vtkAndroidRenderWindowInteractor::TerminateApp
void TerminateApp(void) override
Android specific application terminate, calls ClassExitMethod then calls PostQuitMessage(0) to termin...
vtkAndroidRenderWindowInteractor::ClassExitMethodArg
static void * ClassExitMethodArg
Class variables so an exit method can be defined for this class (used to set different exit methods f...
Definition: vtkAndroidRenderWindowInteractor.h:147
vtkAndroidRenderWindowInteractor::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkTypeBool
int vtkTypeBool
Definition: vtkABI.h:69
vtkAndroidRenderWindowInteractor
implements Win32 specific functions required by vtkRenderWindowInteractor.
Definition: vtkAndroidRenderWindowInteractor.h:45