Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
QmitkStdMultiWidget.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 QmitkStdMultiWidget_h
14 #define QmitkStdMultiWidget_h
15 
16 // qt widgets module
17 #include <MitkQtWidgetsExports.h>
19 
25 {
26  Q_OBJECT
27 
28 public:
30  QWidget *parent = nullptr,
31  Qt::WindowFlags f = {},
32  const QString &name = "stdmulti");
33 
35 
36  virtual void InitializeMultiWidget() override;
37 
38  virtual QmitkRenderWindow* GetRenderWindow(const QString& widgetName) const override;
39  virtual QmitkRenderWindow* GetRenderWindow(const mitk::AnatomicalPlane& orientation) const override;
40 
51  void InitializeViews(const mitk::TimeGeometry* geometry, bool resetCamera) override;
52 
57  void SetInteractionReferenceGeometry(const mitk::TimeGeometry* referenceGeometry) override;
58 
64  bool HasCoupledRenderWindows() const override;
65 
66  virtual void SetSelectedPosition(const mitk::Point3D& newPosition, const QString& widgetName) override;
67  virtual const mitk::Point3D GetSelectedPosition(const QString& widgetName) const override;
68 
69  virtual void SetCrosshairVisibility(bool) override;
70  virtual bool GetCrosshairVisibility() const override;
71  void SetCrosshairGap(unsigned int gapSize) override;
72 
81  void SetCrosshair3DVisibility(bool visible);
82 
83  virtual void ResetCrosshair() override;
84 
85  virtual void SetWidgetPlaneMode(int mode) override;
86 
87 
90 
96  QmitkRenderWindow* GetRenderWindow(unsigned int number) const;
101 
107  mitk::DataNode::Pointer GetWidgetPlane(unsigned int number) const;
108  mitk::DataNode::Pointer GetWidgetPlane1() const;
109  mitk::DataNode::Pointer GetWidgetPlane2() const;
110  mitk::DataNode::Pointer GetWidgetPlane3() const;
111 
120  void SetDecorationColor(unsigned int widgetNumber, mitk::Color color);
126  mitk::Color GetDecorationColor(unsigned int widgetNumber);
127 
128 public Q_SLOTS:
129 
130  // mouse events
131  virtual void mousePressEvent(QMouseEvent*) override;
132  virtual void moveEvent(QMoveEvent* e) override;
133  virtual void wheelEvent(QWheelEvent* e) override;
134 
135  void Fit();
136 
138 
140 
141  void SetWidgetPlaneVisibility(const char *widgetName, bool visible, mitk::BaseRenderer *renderer = nullptr);
142 
143  void SetWidgetPlanesVisibility(bool visible, mitk::BaseRenderer *renderer = nullptr);
144 
145 Q_SIGNALS:
146 
150 
151  void WheelMoved(QWheelEvent *);
152  void Moved();
153 
154 private:
155 
156  virtual void SetLayoutImpl() override;
157  virtual void SetInteractionSchemeImpl() override { }
158 
159  void CreateRenderWindowWidgets();
160 
164  mitk::DataNode::Pointer m_PlaneNode1;
165  mitk::DataNode::Pointer m_PlaneNode2;
166  mitk::DataNode::Pointer m_PlaneNode3;
167 
172  mitk::DataNode::Pointer m_ParentNodeForGeometryPlanes;
173 
180  mitk::Color m_DecorationColorWidget4;
181 
182 };
183 
184 #endif
#define MITKQTWIDGETS_EXPORT
Abstract base widget for displaying multiple render windows at once.
MITK implementation of the QVTKWidget.
The 'QmitkStdMultiWidget' is a 'QmitkAbstractMultiWidget' that is used to display multiple render win...
virtual QmitkRenderWindow * GetRenderWindow(const QString &widgetName) const override
Returns the render window with the given widget name.
void SetCrosshairGap(unsigned int gapSize) override
Sets the gap size of the crosshair.
QmitkRenderWindow * GetRenderWindow(unsigned int number) const
Convenience method to get a render window widget.
void SetWidgetPlanesVisibility(bool visible, mitk::BaseRenderer *renderer=nullptr)
QmitkStdMultiWidget(QWidget *parent=nullptr, Qt::WindowFlags f={}, const QString &name="stdmulti")
void SetDecorationColor(unsigned int widgetNumber, mitk::Color color)
SetDecorationColor Set the color of the decoration of the 4 widgets.
mitk::Color GetDecorationColor(unsigned int widgetNumber)
GetDecorationColorForWidget Get the color for annotation, crosshair and rectangle.
QmitkRenderWindow * GetRenderWindow1() const
virtual QmitkRenderWindow * GetRenderWindow(const mitk::AnatomicalPlane &orientation) const override
Returns the render window that shows the given anatomical orientation.
virtual void SetCrosshairVisibility(bool) override
Sets the crosshair visibility.
mitk::DataNode::Pointer GetWidgetPlane2() const
void EnsureDisplayContainsPoint(mitk::BaseRenderer *renderer, const mitk::Point3D &p)
mitk::DataNode::Pointer GetWidgetPlane1() const
void RemovePlanesFromDataStorage()
void InitializeViews(const mitk::TimeGeometry *geometry, bool resetCamera) override
Initialize all render windows of the StdMultiWidget to the given geometry. Overridem from 'QmitkAbstr...
void NotifyCrosshair3DVisibilityChanged(bool visible)
~QmitkStdMultiWidget() override
virtual void mousePressEvent(QMouseEvent *) override
virtual void InitializeMultiWidget() override
Initialize the multi widget. Must be implemented by subclasses.
virtual bool GetCrosshairVisibility() const override
Returns whether the crosshair is currently visible.
void NotifyCrosshairRotationModeChanged(int mode)
void NotifyCrosshairVisibilityChanged(bool visible)
virtual const mitk::Point3D GetSelectedPosition(const QString &widgetName) const override
Returns the selected position in the specified render window.
void SetWidgetPlaneVisibility(const char *widgetName, bool visible, mitk::BaseRenderer *renderer=nullptr)
QmitkRenderWindow * GetRenderWindow2() const
void SetInteractionReferenceGeometry(const mitk::TimeGeometry *referenceGeometry) override
Not implemented in this class. Overridem from 'QmitkAbstractMultiWidget'.
QmitkRenderWindow * GetRenderWindow4() const
virtual void wheelEvent(QWheelEvent *e) override
mitk::DataNode::Pointer GetWidgetPlane3() const
virtual void SetSelectedPosition(const mitk::Point3D &newPosition, const QString &widgetName) override
Sets the selected position in the specified render window.
bool HasCoupledRenderWindows() const override
Returns true if the render windows are coupled; false if not.
void WheelMoved(QWheelEvent *)
void AddPlanesToDataStorage()
void SetCrosshair3DVisibility(bool visible)
Set the crosshair visibility in the 3D render window only.
void AddDisplayPlaneSubTree()
virtual void moveEvent(QMoveEvent *e) override
virtual void SetWidgetPlaneMode(int mode) override
Sets the widget plane mode (e.g., rotation, swivel).
QmitkRenderWindow * GetRenderWindow3() const
virtual void ResetCrosshair() override
Resets the crosshair to the default position.
mitk::DataNode::Pointer GetWidgetPlane(unsigned int number) const
Convenience method to get a widget plane.
Organizes the rendering process.
itk::RGBPixel< float > Color
Standard RGB color typedef using float components.
AnatomicalPlane
Enumeration of standard anatomical image planes.