Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
QmitkBoundingObjectWidget Class Reference

Widget for creating, managing, and selecting bounding objects. More...

#include <QmitkBoundingObjectWidget.h>

Inheritance diagram for QmitkBoundingObjectWidget:
Collaboration diagram for QmitkBoundingObjectWidget:

Signals

void BoundingObjectsChanged ()
 Emitted when bounding objects are added, removed, or modified. More...
 

Public Member Functions

 QmitkBoundingObjectWidget (QWidget *parent=nullptr, Qt::WindowFlags f={})
 Construct the bounding object widget. More...
 
 ~QmitkBoundingObjectWidget () override
 Destructor. More...
 
void SetDataStorage (mitk::DataStorage *dataStorage)
 Set the data storage used to store bounding object nodes. More...
 
mitk::DataStorage * GetDataStorage ()
 Get the currently assigned data storage. More...
 
mitk::BoundingObject::Pointer GetSelectedBoundingObject ()
 Get the currently selected bounding object. More...
 
mitk::DataNode::Pointer GetSelectedBoundingObjectNode ()
 Get the data node of the currently selected bounding object. More...
 
mitk::DataNode::Pointer GetAllBoundingObjects ()
 Get a data node containing a BoundingObjectGroup with all bounding objects. More...
 
void setEnabled (bool flag)
 Enable or disable the widget and toggle bounding object visibility. More...
 
void OnBoundingObjectModified (const itk::EventObject &e)
 ITK observer callback for bounding object modification events. More...
 
void RemoveAllItems ()
 Remove all bounding object items from the list and reset the counter. More...
 

Protected Types

enum  BoundingObjectType { CUBOID , CONE , ELLIPSOID , CYLINDER }
 
typedef std::map< QTreeWidgetItem *, mitk::DataNode * > ItemNodeMapType
 

Protected Slots

void CreateBoundingObject (int type)
 
void OnDelButtonClicked ()
 
void SelectionChanged ()
 
void OnItemDoubleClicked (QTreeWidgetItem *item, int col)
 
void OnItemDataChanged (QTreeWidgetItem *item, int col)
 

Protected Member Functions

void AddItem (mitk::DataNode *node)
 
void RemoveItem ()
 

Protected Attributes

mitk::DataStorage * m_DataStorage
 
QTreeWidget * m_TreeWidget
 
QComboBox * m_addComboBox
 
QPushButton * m_DelButton
 
QPushButton * m_SaveButton
 
QPushButton * m_LoadButton
 
QTreeWidgetItem * m_lastSelectedItem
 
unsigned long m_lastAffineObserver
 
ItemNodeMapType m_ItemNodeMap
 
unsigned int m_BoundingObjectCounter
 

Detailed Description

Widget for creating, managing, and selecting bounding objects.

Provides a tree view listing bounding objects (cuboid, cone, ellipsoid, cylinder) with controls to add, remove, rename, and toggle visibility and inversion. Selected bounding objects receive an AffineBaseDataInteractor3D for interactive 3D manipulation. A union BoundingObjectGroup of all objects can be retrieved.

Precondition
A mitk::DataStorage must be set via SetDataStorage() before creating objects.
See also
mitk::BoundingObject, mitk::BoundingObjectGroup

Definition at line 39 of file QmitkBoundingObjectWidget.h.

Member Typedef Documentation

◆ ItemNodeMapType

typedef std::map<QTreeWidgetItem *, mitk::DataNode *> QmitkBoundingObjectWidget::ItemNodeMapType
protected

Definition at line 127 of file QmitkBoundingObjectWidget.h.

Member Enumeration Documentation

◆ BoundingObjectType

Enumerator
CUBOID 
CONE 
ELLIPSOID 
CYLINDER 

Definition at line 132 of file QmitkBoundingObjectWidget.h.

Constructor & Destructor Documentation

◆ QmitkBoundingObjectWidget()

QmitkBoundingObjectWidget::QmitkBoundingObjectWidget ( QWidget *  parent = nullptr,
Qt::WindowFlags  f = {} 
)

Construct the bounding object widget.

Parameters
[in]parentThe parent widget.
[in]fWindow flags.

◆ ~QmitkBoundingObjectWidget()

QmitkBoundingObjectWidget::~QmitkBoundingObjectWidget ( )
override

Destructor.

Member Function Documentation

◆ AddItem()

void QmitkBoundingObjectWidget::AddItem ( mitk::DataNode *  node)
protected

◆ BoundingObjectsChanged

void QmitkBoundingObjectWidget::BoundingObjectsChanged ( )
signal

Emitted when bounding objects are added, removed, or modified.

◆ CreateBoundingObject

void QmitkBoundingObjectWidget::CreateBoundingObject ( int  type)
protectedslot

◆ GetAllBoundingObjects()

mitk::DataNode::Pointer QmitkBoundingObjectWidget::GetAllBoundingObjects ( )

Get a data node containing a BoundingObjectGroup with all bounding objects.

Creates a union BoundingObjectGroup from all nodes in the data storage that have the "bounding object" property set to true.

Returns
Data node containing the group, or nullptr if no bounding objects exist.

◆ GetDataStorage()

mitk::DataStorage* QmitkBoundingObjectWidget::GetDataStorage ( )

Get the currently assigned data storage.

Returns
Pointer to the data storage, or nullptr if not set.

◆ GetSelectedBoundingObject()

mitk::BoundingObject::Pointer QmitkBoundingObjectWidget::GetSelectedBoundingObject ( )

Get the currently selected bounding object.

Returns
Smart pointer to the selected mitk::BoundingObject, or nullptr if none is selected.

◆ GetSelectedBoundingObjectNode()

mitk::DataNode::Pointer QmitkBoundingObjectWidget::GetSelectedBoundingObjectNode ( )

Get the data node of the currently selected bounding object.

Returns
Smart pointer to the selected mitk::DataNode, or nullptr if none is selected.

◆ OnBoundingObjectModified()

void QmitkBoundingObjectWidget::OnBoundingObjectModified ( const itk::EventObject &  e)

ITK observer callback for bounding object modification events.

Parameters
[in]eThe ITK event object (AffineInteractionEvent).

◆ OnDelButtonClicked

void QmitkBoundingObjectWidget::OnDelButtonClicked ( )
protectedslot

◆ OnItemDataChanged

void QmitkBoundingObjectWidget::OnItemDataChanged ( QTreeWidgetItem *  item,
int  col 
)
protectedslot

◆ OnItemDoubleClicked

void QmitkBoundingObjectWidget::OnItemDoubleClicked ( QTreeWidgetItem *  item,
int  col 
)
protectedslot

◆ RemoveAllItems()

void QmitkBoundingObjectWidget::RemoveAllItems ( )

Remove all bounding object items from the list and reset the counter.

◆ RemoveItem()

void QmitkBoundingObjectWidget::RemoveItem ( )
protected

◆ SelectionChanged

void QmitkBoundingObjectWidget::SelectionChanged ( )
protectedslot

◆ SetDataStorage()

void QmitkBoundingObjectWidget::SetDataStorage ( mitk::DataStorage *  dataStorage)

Set the data storage used to store bounding object nodes.

Parameters
[in]dataStoragePointer to the data storage instance.

◆ setEnabled()

void QmitkBoundingObjectWidget::setEnabled ( bool  flag)

Enable or disable the widget and toggle bounding object visibility.

Parameters
[in]flagTrue to enable, false to disable.

Member Data Documentation

◆ m_addComboBox

QComboBox* QmitkBoundingObjectWidget::m_addComboBox
protected

Definition at line 120 of file QmitkBoundingObjectWidget.h.

◆ m_BoundingObjectCounter

unsigned int QmitkBoundingObjectWidget::m_BoundingObjectCounter
protected

Definition at line 130 of file QmitkBoundingObjectWidget.h.

◆ m_DataStorage

mitk::DataStorage* QmitkBoundingObjectWidget::m_DataStorage
protected

Definition at line 118 of file QmitkBoundingObjectWidget.h.

◆ m_DelButton

QPushButton* QmitkBoundingObjectWidget::m_DelButton
protected

Definition at line 121 of file QmitkBoundingObjectWidget.h.

◆ m_ItemNodeMap

ItemNodeMapType QmitkBoundingObjectWidget::m_ItemNodeMap
protected

Definition at line 128 of file QmitkBoundingObjectWidget.h.

◆ m_lastAffineObserver

unsigned long QmitkBoundingObjectWidget::m_lastAffineObserver
protected

Definition at line 125 of file QmitkBoundingObjectWidget.h.

◆ m_lastSelectedItem

QTreeWidgetItem* QmitkBoundingObjectWidget::m_lastSelectedItem
protected

Definition at line 124 of file QmitkBoundingObjectWidget.h.

◆ m_LoadButton

QPushButton* QmitkBoundingObjectWidget::m_LoadButton
protected

Definition at line 123 of file QmitkBoundingObjectWidget.h.

◆ m_SaveButton

QPushButton* QmitkBoundingObjectWidget::m_SaveButton
protected

Definition at line 122 of file QmitkBoundingObjectWidget.h.

◆ m_TreeWidget

QTreeWidget* QmitkBoundingObjectWidget::m_TreeWidget
protected

Definition at line 119 of file QmitkBoundingObjectWidget.h.


The documentation for this class was generated from the following file: