Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitkInteractionSchemeSwitcher.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 mitkInteractionSchemeSwitcher_h
14 #define mitkInteractionSchemeSwitcher_h
15 
16 #include <MitkCoreExports.h>
17 
19 
20 #include <itkObject.h>
21 
22 namespace mitk
23 {
24 #ifdef __GNUC__
25 #pragma GCC visibility push(default)
26 #endif
30  itkEventMacroDeclaration(InteractionSchemeChangedEvent, itk::AnyEvent);
31 #ifdef __GNUC__
32 #pragma GCC visibility pop
33 #endif
34 
35  /***********************************************************************
36  *
37  * \brief Class that offers a convenient way to switch between different
38  * interaction schemes.
39  *
40  * This class offers the possibility to switch between the different
41  * interaction schemes that are available:
42  *
43  * - MITKStandard : The original MITK interaction scheme
44  * - MITKRotationUncoupled : A modified MITK interaction scheme with rotation
45  * - MITKRotationCoupled : A modified MTIK interaction scheme with coupled rotation
46  * - MITKSwivel : A modified MITK interaction scheme with plane swiveling
47  *
48  * - PACS : An alternative interaction scheme that behaves more like a
49  * PACS workstation
50  * - left mouse button : behavior depends on current PACS scheme
51  * Always enabled:
52  * - middle mouse button : fast scrolling
53  * - right mouse button : level-window
54  * - ctrl + right button : zooming
55  * - shift+ right button : panning
56  *
57  * There are 6 different PACS schemes.
58  * Each scheme defines the interaction that is performed on a left
59  * mouse button click:
60  * - PACSBase : No interaction on a left mouse button click
61  - This scheme serves as a base for other PACS schemes and defines the right
62  and middle mouse button clicks, which are available in every PACS scheme.
63  * - PACSStandard : Sets the cross position for the MPR
64  * - PACSLevelWindow : Sets the level window
65  * - PACSPan : Moves the slice
66  * - PACSScroll : Scrolls through the slices stepwise
67  * - PACSZoom : Zooms into / out of the slice
68  *
69  * When the interaction scheme is changed, this class sets the corresponding
70  * interaction .xml-files for a given interaction event handler.
71  *
72  ***********************************************************************/
73 
74  class MITKCORE_EXPORT InteractionSchemeSwitcher : public itk::Object
75  {
76  public:
78  itkFactorylessNewMacro(Self);
79 
80  // enum of the different interaction schemes that are available
82  {
83  MITKStandard = 0,
92  PACSZoom
93  };
94 
110  void SetInteractionScheme(mitk::InteractionEventHandler* interactionEventHandler, InteractionScheme interactionScheme);
111 
112  protected:
113 
116 
117  };
118 } // namespace mitk
119 
120 #endif
#define MITKCORE_EXPORT
Base class for all objects that handle mitk::InteractionEvents.
void SetInteractionScheme(mitk::InteractionEventHandler *interactionEventHandler, InteractionScheme interactionScheme)
Set the current interaction scheme of the given interaction event handler.
mitkClassMacroItkParent(InteractionSchemeSwitcher, itk::Object)
Find image slices visible on a given plane.
itkEventMacroDeclaration(BoundingShapeInteractionEvent, itk::AnyEvent)