Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitkVtkEventProvider.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef mitkVtkEventProvider_h
14 #define mitkVtkEventProvider_h
15 
16 #include <mitkRenderWindow.h>
17 #include <MitkCoreExports.h>
18 
19 #include <vtkInteractorObserver.h>
20 
21 namespace mitk
22 {
32  class MITKCORE_EXPORT vtkEventProvider : public vtkInteractorObserver
33  {
34  public:
35  static vtkEventProvider *New();
36  vtkTypeMacro(vtkEventProvider, vtkInteractorObserver);
37 
46  void SetEnabled(int enabled) override;
47 
55  void SetInteractor(vtkRenderWindowInteractor *iren) override;
56 
61  virtual void SetMitkRenderWindow(mitk::RenderWindow *renWin);
62 
68 
69  protected:
71  ~vtkEventProvider() override;
72 
79  static void ProcessEvents(vtkObject *object, unsigned long event, void *clientdata, void *calldata);
80 
82 
87  void AddInteractionEvent(unsigned long ievent);
88 
93  void RemoveInteractionEvent(unsigned long ievent);
94 
95  typedef std::vector<unsigned long> InteractionEventsVectorType;
97 
98  private:
99  vtkEventProvider(const vtkEventProvider &); // Not implemented.
100  void operator=(const vtkEventProvider &); // Not implemented.
101  };
102 }
103 #endif
#define MITKCORE_EXPORT
mitkRenderWindow integrates the MITK rendering mechanism into VTK and is NOT QT dependent
Integrates into the VTK event mechanism to generate MITK-specific events.
vtkTypeMacro(vtkEventProvider, vtkInteractorObserver)
void SetInteractor(vtkRenderWindowInteractor *iren) override
Set the VTK render window interactor.
InteractionEventsVectorType m_InteractionEventsVector
static vtkEventProvider * New()
mitk::RenderWindow * GetRenderWindow()
Return the associated MITK RenderWindow.
void AddInteractionEvent(unsigned long ievent)
Add a VTK event type to the list of observed interaction events.
void SetEnabled(int enabled) override
Enable or disable listening for VTK events.
virtual void SetMitkRenderWindow(mitk::RenderWindow *renWin)
Set the MITK RenderWindow associated with this event provider.
std::vector< unsigned long > InteractionEventsVectorType
~vtkEventProvider() override
static void ProcessEvents(vtkObject *object, unsigned long event, void *clientdata, void *calldata)
Callback for the VTK observer/command pattern.
mitk::RenderWindow * m_RenderWindow
void RemoveInteractionEvent(unsigned long ievent)
Remove a VTK event type from the list of observed interaction events.
Find image slices visible on a given plane.