Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitk::BoundingShapeInteractor Class Reference

Interactor for manipulating bounding shapes (GeometryData). More...

#include <mitkBoundingShapeInteractor.h>

Inheritance diagram for mitk::BoundingShapeInteractor:
Collaboration diagram for mitk::BoundingShapeInteractor:

Public Member Functions

 mitkClassMacro (BoundingShapeInteractor, DataInteractor)
 
Pointer Clone () const
 
void SetDataNode (DataNode *dataNode) override
 Set the data node this interactor operates on. More...
 
- Public Member Functions inherited from mitk::DataInteractor
 mitkClassMacro (DataInteractor, EventStateMachine)
 
Pointer Clone () const
 
DataNode * GetDataNode () const
 Get the DataNode associated with this interactor. More...
 
int GetLayer () const
 Get the rendering layer of the associated DataNode. More...
 
ProcessEventMode GetMode () const
 Get the current event processing mode from the state machine's current state. More...
 
- Public Member Functions inherited from mitk::EventStateMachine
 mitkClassMacro (EventStateMachine, InteractionEventHandler)
 
bool LoadStateMachine (const std::string &filename, const us::Module *module=nullptr)
 Load a state machine pattern from an XML resource file. More...
 
bool HandleEvent (InteractionEvent *event, DataNode *dataNode)
 Process an incoming interaction event. More...
 
void EnableUndo (bool enable)
 Enable or disable the undo mechanism for this state machine. More...
 
void EnableInteraction (bool enable)
 Enable or disable the state machine. More...
 
- Public Member Functions inherited from mitk::InteractionEventHandler
 mitkClassMacroItkParent (InteractionEventHandler, itk::Object)
 
bool SetEventConfig (const std::string &filename, const us::Module *module=nullptr)
 Loads a configuration from an XML resource. More...
 
bool SetEventConfig (const EventConfig &config)
 Loads a configuration from an EventConfig object. More...
 
EventConfig GetEventConfig () const
 Returns the current configuration. More...
 
bool AddEventConfig (const std::string &filename, const us::Module *module=nullptr)
 This method extends the configuration. More...
 
bool AddEventConfig (const EventConfig &config)
 This method extends the configuration. The configuration from the EventConfig object is loaded and only the ones conflicting are replaced by the new one. This way several configurations can be combined. More...
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from mitk::DataInteractor
static Pointer New ()
 

Protected Member Functions

 BoundingShapeInteractor ()
 
 ~BoundingShapeInteractor () override
 
void ConnectActionsAndFunctions () override
 
void DataNodeChanged () override
 Called when a DataNode has been set/changed. More...
 
void HandlePositionChanged (const InteractionEvent *interactionEvent, Point3D &center, std::array< bool, 6 > &handleVisible)
 Updates the handle positions for the renderer of the given event and reports which handles are visible there. More...
 
virtual bool CheckOverObject (const InteractionEvent *)
 Checks if the mouse pointer is over the object. More...
 
virtual bool CheckOverHandles (const InteractionEvent *interactionEvent)
 Checks if the mouse pointer is over one of the assigned handles. More...
 
virtual void SelectObject (StateMachineAction *, InteractionEvent *)
 Called if the mouse pointer is over the object indicated by a color change. More...
 
virtual void DeselectObject (StateMachineAction *, InteractionEvent *)
 Called if the mouse pointer leaves the area of the object. More...
 
virtual void SelectHandle (StateMachineAction *, InteractionEvent *)
 Called if the mouse pointer is over one of the handles indicated by a color change. More...
 
virtual void TranslateObject (StateMachineAction *, InteractionEvent *)
 Performs a translation of the object relative to the mouse movement. More...
 
virtual void ScaleObject (StateMachineAction *, InteractionEvent *)
 Performs a object shape change by influencing the scaling of the initial bounding box. More...
 
virtual void InitInteraction (StateMachineAction *, InteractionEvent *interactionEvent)
 Initializes the movement, stores starting position. More...
 
virtual void DeselectHandles (StateMachineAction *, InteractionEvent *interactionEvent)
 Deselects all Handles at the end of interaction. More...
 
virtual void RestoreNodeProperties ()
 Restore default properties of bounding box and handles. More...
 
bool InitMembers (InteractionEvent *interactionEvent)
 Initializes member variables. More...
 
- Protected Member Functions inherited from mitk::DataInteractor
 DataInteractor ()
 
 ~DataInteractor () override
 
void ConnectActionsAndFunctions () override
 Overwrite this function to connect actions from StateMachine description with functions. More...
 
virtual void NotifyStart ()
 Sends StartInteraction event via the mitk::DataNode. More...
 
virtual void NotifyResultReady ()
 NotifyResultReady Sends ResultReady event via the mitk::DataNode. More...
 
- Protected Member Functions inherited from mitk::EventStateMachine
 EventStateMachine ()
 
 ~EventStateMachine () override
 
void AddActionFunction (const std::string &action, const ActionFunctionDelegate &delegate)
 
void AddConditionFunction (const std::string &condition, const ConditionFunctionDelegate &delegate)
 
StateMachineState * GetCurrentState () const
 
void ResetToStartState ()
 ResetToStartState Reset state machine to it initial starting state. More...
 
virtual bool CheckCondition (const StateMachineCondition &condition, const InteractionEvent *interactionEvent)
 
virtual void ExecuteAction (StateMachineAction *action, InteractionEvent *interactionEvent)
 
virtual bool FilterEvents (InteractionEvent *interactionEvent, DataNode *dataNode)
 
void SetMouseCursor (const char *xpm[], int hotspotX, int hotspotY)
 Sets the specified mouse cursor. More...
 
void ResetMouseCursor ()
 Resets the mouse cursor to its original state. More...
 
StateMachineTransition * GetExecutableTransition (InteractionEvent *event)
 Returns the executable transition for the given event. More...
 
- Protected Member Functions inherited from mitk::InteractionEventHandler
 InteractionEventHandler ()
 
 ~InteractionEventHandler () override
 
PropertyList::Pointer GetAttributes () const
 
std::string MapToEventVariant (InteractionEvent *interactionEvent)
 
virtual void ConfigurationChanged ()
 

Additional Inherited Members

- Public Types inherited from mitk::EventStateMachine
typedef itk::SmartPointer< StateMachineState > StateMachineStateType
 
- Static Public Attributes inherited from mitk::DataInteractor
static const std::string IntDeactivateMe
 Internal signal name to request deactivation of this interactor. More...
 
static const std::string IntLeaveWidget
 Internal signal name indicating the pointer left the widget area. More...
 
static const std::string IntEnterWidget
 Internal signal name indicating the pointer entered the widget area. More...
 
- Protected Types inherited from mitk::EventStateMachine
typedef MessageAbstractDelegate2< StateMachineAction *, InteractionEvent *, void > ActionFunctionDelegate
 
typedef MessageAbstractDelegate1< const InteractionEvent *, bool > ConditionFunctionDelegate
 
- Protected Attributes inherited from mitk::EventStateMachine
bool m_IsActive
 
UndoController * m_UndoController
 
bool m_UndoEnabled
 

Detailed Description

Interactor for manipulating bounding shapes (GeometryData).

Provides interactive translation and scaling of a bounding box through mouse-based handle manipulation. Inherits from DataInteractor, providing state machine and configurable input support.

The interactor manages 6 face handles that can be dragged to resize the bounding box, and supports translating the entire box by dragging the body. Visual feedback is provided through color changes on hover and selection.

See also
BoundingShapeCropper, BoundingShapeVtkMapper2D, BoundingShapeVtkMapper3D, DataInteractor

Definition at line 50 of file mitkBoundingShapeInteractor.h.

Constructor & Destructor Documentation

◆ BoundingShapeInteractor()

mitk::BoundingShapeInteractor::BoundingShapeInteractor ( )
protected

◆ ~BoundingShapeInteractor()

mitk::BoundingShapeInteractor::~BoundingShapeInteractor ( )
overrideprotected

Member Function Documentation

◆ CheckOverHandles()

virtual bool mitk::BoundingShapeInteractor::CheckOverHandles ( const InteractionEvent *  interactionEvent)
protectedvirtual

Checks if the mouse pointer is over one of the assigned handles.

◆ CheckOverObject()

virtual bool mitk::BoundingShapeInteractor::CheckOverObject ( const InteractionEvent *  )
protectedvirtual

Checks if the mouse pointer is over the object.

◆ Clone()

Pointer mitk::BoundingShapeInteractor::Clone ( ) const

◆ ConnectActionsAndFunctions()

void mitk::BoundingShapeInteractor::ConnectActionsAndFunctions ( )
overrideprotectedvirtual

Here actions strings from the loaded state machine pattern are mapped to functions of the DataInteractor. These functions are called when an action from the state machine pattern is executed.

Reimplemented from mitk::EventStateMachine.

◆ DataNodeChanged()

void mitk::BoundingShapeInteractor::DataNodeChanged ( )
overrideprotectedvirtual

Called when a DataNode has been set/changed.

Reimplemented from mitk::DataInteractor.

◆ DeselectHandles()

virtual void mitk::BoundingShapeInteractor::DeselectHandles ( StateMachineAction *  ,
InteractionEvent *  interactionEvent 
)
protectedvirtual

Deselects all Handles at the end of interaction.

◆ DeselectObject()

virtual void mitk::BoundingShapeInteractor::DeselectObject ( StateMachineAction *  ,
InteractionEvent *   
)
protectedvirtual

Called if the mouse pointer leaves the area of the object.

◆ HandlePositionChanged()

void mitk::BoundingShapeInteractor::HandlePositionChanged ( const InteractionEvent *  interactionEvent,
Point3D &  center,
std::array< bool, 6 > &  handleVisible 
)
protected

Updates the handle positions for the renderer of the given event and reports which handles are visible there.

In a 2D render window a handle is placed where its box face crosses the current slice and is visible only when that intersection exists; in the 3D render window handles sit at the face centers and are always visible. handleVisible is filled accordingly.

◆ InitInteraction()

virtual void mitk::BoundingShapeInteractor::InitInteraction ( StateMachineAction *  ,
InteractionEvent *  interactionEvent 
)
protectedvirtual

Initializes the movement, stores starting position.

◆ InitMembers()

bool mitk::BoundingShapeInteractor::InitMembers ( InteractionEvent *  interactionEvent)
protected

Initializes member variables.

◆ mitkClassMacro()

mitk::BoundingShapeInteractor::mitkClassMacro ( BoundingShapeInteractor  ,
DataInteractor   
)

◆ New()

static Pointer mitk::BoundingShapeInteractor::New ( )
static

◆ RestoreNodeProperties()

virtual void mitk::BoundingShapeInteractor::RestoreNodeProperties ( )
protectedvirtual

Restore default properties of bounding box and handles.

◆ ScaleObject()

virtual void mitk::BoundingShapeInteractor::ScaleObject ( StateMachineAction *  ,
InteractionEvent *   
)
protectedvirtual

Performs a object shape change by influencing the scaling of the initial bounding box.

◆ SelectHandle()

virtual void mitk::BoundingShapeInteractor::SelectHandle ( StateMachineAction *  ,
InteractionEvent *   
)
protectedvirtual

Called if the mouse pointer is over one of the handles indicated by a color change.

◆ SelectObject()

virtual void mitk::BoundingShapeInteractor::SelectObject ( StateMachineAction *  ,
InteractionEvent *   
)
protectedvirtual

Called if the mouse pointer is over the object indicated by a color change.

◆ SetDataNode()

void mitk::BoundingShapeInteractor::SetDataNode ( DataNode *  dataNode)
overridevirtual

Set the data node this interactor operates on.

Initializes default bounding shape properties on the node and sets up the interaction geometry.

Parameters
[in]dataNodeThe data node containing GeometryData to interact with.

Reimplemented from mitk::DataInteractor.

◆ TranslateObject()

virtual void mitk::BoundingShapeInteractor::TranslateObject ( StateMachineAction *  ,
InteractionEvent *   
)
protectedvirtual

Performs a translation of the object relative to the mouse movement.


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