Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit

Abstract base class for segmentation tools. More...

#include <mitkSegTool2D.h>

Inheritance diagram for mitk::SegTool2D:
Collaboration diagram for mitk::SegTool2D:

Classes

struct  SliceInformation
 

Public Member Functions

 mitkClassMacro (SegTool2D, Tool)
 
void SetShowMarkerNodes (bool show)
 Sets whether contour marker nodes should be visible in the DataStorage. More...
 
void SetEnable3DInterpolation (bool)
 Enables or disables the 3D interpolation after writing back the 2D segmentation result, and defaults to true. More...
 
void Activated () override
 Called when the tool gets activated. More...
 
void Deactivated () override
 Called when the tool gets deactivated. More...
 
virtual void SetIsTimePointChangeAware (bool _arg)
 
virtual bool GetIsTimePointChangeAware ()
 
virtual void IsTimePointChangeAwareOn ()
 
virtual void IsTimePointChangeAwareOff ()
 
DataNode * GetWorkingDataNode () const
 Returns the segmentation node that should be modified by the tool. More...
 
MultiLabelSegmentation * GetWorkingData () const
 Returns the working data (multi-label segmentation image). More...
 
DataNode * GetReferenceDataNode () const
 Returns the reference data node. More...
 
Image * GetReferenceData () const
 Returns the reference image data. More...
 
- Public Member Functions inherited from mitk::Tool
 mitkClassMacro (Tool, EventStateMachine)
 
virtual us::ModuleResource GetCursorIconResource () const
 Returns the cursor icon of the tool wrapped by a usModuleResource. More...
 
virtual us::ModuleResource GetIconResource () const
 Returns the tool button icon of the tool wrapped by a usModuleResource. More...
 
virtual const char * GetName () const =0
 Returns the name of this tool. Make it short! More...
 
virtual mitk::Label::AlgorithmType GetAlgorithmType () const
 Returns the intrinsic algorithm type of this tool, used to stamp label provenance. More...
 
virtual const char * GetGroup () const
 Name of a group. More...
 
virtual bool IsEligibleForAutoInit () const
 Returns whether this tool is eligible for auto-initialization by ToolManager. More...
 
virtual void InitializeStateMachine ()
 Initializes the state machine for this tool based on the interaction type. More...
 
virtual itk::Object::Pointer GetGUI (const std::string &toolkitPrefix, const std::string &toolkitPostfix)
 Interface for GUI creation. More...
 
virtual NodePredicateBase::ConstPointer GetReferenceDataPreference () const
 Returns a predicate describing valid reference data for this tool. More...
 
virtual NodePredicateBase::ConstPointer GetWorkingDataPreference () const
 Returns a predicate describing valid working data for this tool. More...
 
virtual bool CanHandle (const BaseData *referenceData, const BaseData *workingData) const
 Checks if a tool can handle the given reference data and optional working data. More...
 
virtual bool ConfirmBeforeDeactivation ()
 Method call to invoke a dialog box just before exiting. 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...
 
- Public Member Functions inherited from mitk::InteractionEventObserver
 InteractionEventObserver ()
 
virtual ~InteractionEventObserver ()
 
void Disable ()
 Disable this observer so it no longer receives notifications. More...
 
void Enable ()
 Enable this observer so it receives notifications. More...
 
bool IsEnabled () const
 Check whether this observer is currently enabled. More...
 

Static Public Member Functions

static bool DetermineAffectedImageSlice (const Image *image, const PlaneGeometry *plane, int &affectedDimension, int &affectedSlice)
 Calculates for a given Image and PlaneGeometry, which slice of the image (in index coordinates) is meant by the plane. More...
 
static void UpdateAllSurfaceInterpolations (const MultiLabelSegmentation *workingImage, TimeStepType timeStep, const PlaneGeometry *plane, bool detectIntersection)
 Updates the surface interpolations by extracting contours from the given slice. More...
 
static Image::Pointer GetAffectedImageSliceAs2DImage (const InteractionPositionEvent *positionEvent, const Image *image, unsigned int component=0)
 Extract the slice of an image that the user just scribbles on. The given component denotes the vector component of an vector image. More...
 
static Image::Pointer GetAffectedImageSliceAs2DImage (const PlaneGeometry *planeGeometry, const Image *image, TimeStepType timeStep, unsigned int component=0)
 Extract the slice of an image cut by given plane. The given component denotes the vector component of a vector image. More...
 
static Image::Pointer GetAffectedImageSliceAs2DImageByTimePoint (const PlaneGeometry *planeGeometry, const Image *image, TimePointType timePoint, unsigned int component=0)
 Extract the slice of an image cut by the given plane at a specified time point. More...
 
static void WriteBackSegmentationResult (const DataNode *workingNode, const PlaneGeometry *planeGeometry, const Image *segmentationResult, TimeStepType timeStep, const std::string &toolName)
 Writes the provided segmentation result slice into the data of the passed workingNode. More...
 
static void WriteSliceToVolume (Image *workingImage, const PlaneGeometry *planeGeometry, const Image *slice, TimeStepType timeStep)
 Writes a provided slice into the passed working image. More...
 

Protected Member Functions

 SegTool2D ()
 
 SegTool2D (const char *, const us::Module *interactorModule=nullptr)
 
 ~SegTool2D () override
 
virtual void OnTimePointChanged ()
 
bool FilterEvents (InteractionEvent *interactionEvent, DataNode *dataNode) override
 Filters events that cannot be handled by 2D segmentation tools. More...
 
Image::Pointer GetAffectedWorkingSlice (const InteractionPositionEvent *) const
 Extract the slice of the currently selected working image that the user just scribbles on. More...
 
Image::Pointer GetAffectedReferenceSlice (const InteractionPositionEvent *) const
 Extract the slice of the currently selected reference image that the user just scribbles on. More...
 
Image::Pointer GetAffectedReferenceSlice (const PlaneGeometry *planeGeometry, TimeStepType timeStep) const
 
void WriteBackSegmentationResult (const InteractionPositionEvent *, const Image *segmentationResult)
 
void WriteBackSegmentationResult (const PlaneGeometry *planeGeometry, const Image *segmentationResult, TimeStepType timeStep)
 
void WriteBackSegmentationResults (const std::vector< SliceInformation > &sliceList, bool writeSliceToVolume=true)
 
virtual MultiLabelSegmentation::LabelValueVectorType GetAffectedLabelValues () const
 Returns the label value(s) whose pixels this tool's writeback actually modifies, so the provenance stamp at the writeback choke point lands on the right label. The default is the active label; tools that write a label other than the active one (e.g. erase/close operate on the clicked label) override this. An empty result records no tool use. More...
 
int AddContourmarker (const PlaneGeometry *planeGeometry, unsigned int sliceIndex)
 Adds a new node called Contourmarker to the datastorage which holds a mitk::PlanarFigure. By selecting this node the slicestack will be reoriented according to the passed PlanarFigure's Geometry. More...
 
void DisableContourMarkers ()
 
void InteractiveSegmentationBugMessage (const std::string &message) const
 
virtual TimePointType GetLastTimePointTriggered ()
 
void PushCursor ()
 Pushes the current tool cursor onto the cursor stack. More...
 
void PushCursor (us::ModuleResource cursorResource)
 Pushes a custom cursor onto the cursor stack. More...
 
void PopCursor (bool popFirstCursor=false)
 Pops the most recently pushed cursor from the stack. More...
 
void PopAllCursors ()
 Pops all cursors from the stack, restoring the default cursor. More...
 
- Protected Member Functions inherited from mitk::Tool
virtual void SetToolManager (ToolManager *)
 
ToolManager * GetToolManager () const
 
mitk::DataStorage * GetDataStorage () const
 
void ConnectActionsAndFunctions () override
 
 Tool (const char *, const us::Module *interactorModule=nullptr)
 
 ~Tool () override
 
void Notify (InteractionEvent *interactionEvent, bool isHandled) override
 Called by the Dispatcher to notify this observer about an InteractionEvent. More...
 
bool FilterEvents (InteractionEvent *, DataNode *) override
 
- 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)
 
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 ()
 

Static Protected Member Functions

static void UpdateSurfaceInterpolation (const std::vector< SliceInformation > &sliceInfos, const Image *workingImage, bool detectIntersection, mitk::Label::PixelType activeLabelValue, bool silent=false)
 Updates the surface interpolation by extracting contours from given slices. More...
 
static void WriteBackSegmentationResults (const DataNode *workingNode, const std::vector< SliceInformation > &sliceList, bool writeSliceToVolume=true, bool allowUndo=true, const std::string &toolName="")
 Writes all provided source slices into the data of the passed workingNode. The function does the following: 1) for every passed slice write it to workingNode (and generate and undo/redo step); 2) update the surface interpolation and 3) mark the node as modified. More...
 
static void WriteSliceToVolume (Image *workingImage, const SliceInformation &sliceInfo)
 
static bool IsPositionEventInsideImageRegion (InteractionPositionEvent *positionEvent, const BaseData *data)
 

Protected Attributes

BaseRenderer * m_LastEventSender
 
unsigned int m_LastEventSlice
 
- Protected Attributes inherited from mitk::Tool
std::string m_EventConfig
 Let subclasses change their event configuration. More...
 
- Protected Attributes inherited from mitk::EventStateMachine
bool m_IsActive
 
UndoController * m_UndoController
 
bool m_UndoEnabled
 

Additional Inherited Members

- Public Types inherited from mitk::Tool
typedef mitk::Label::PixelType DefaultSegmentationDataType
 
- Public Types inherited from mitk::EventStateMachine
typedef itk::SmartPointer< StateMachineState > StateMachineStateType
 
- Public Attributes inherited from mitk::Tool
Message GUIProcessEventsMessage
 To let GUI process new events (e.g. qApp->processEvents() ) More...
 
Message1< std::string > ErrorMessage
 To send error messages (to be shown by some GUI) More...
 
Message1< bool > CurrentlyBusy
 To send whether the tool is busy (to be shown by some GUI) More...
 
Message1< std::string > GeneralMessage
 To send general messages (to be shown by some GUI) More...
 
- Protected Types inherited from mitk::EventStateMachine
typedef MessageAbstractDelegate2< StateMachineAction *, InteractionEvent *, void > ActionFunctionDelegate
 
typedef MessageAbstractDelegate1< const InteractionEvent *, bool > ConditionFunctionDelegate
 

Detailed Description

Abstract base class for segmentation tools.

See also
Tool

Implements 2D segmentation specific helper methods, that might be of use to all kind of 2D segmentation tools. At the moment these are:

  • Determination of the slice where the user paints upon (DetermineAffectedImageSlice)
  • Projection of a 3D contour onto a 2D plane/slice

SegTool2D tries to structure the interaction a bit. If you pass "PressMoveRelease" as the interaction type of your derived tool, you might implement the methods OnMousePressed, OnMouseMoved, and OnMouseReleased. Yes, your guess about when they are called is correct.

Warning
Only to be instantiated by mitk::ToolManager.

$Author$

Definition at line 56 of file mitkSegTool2D.h.

Constructor & Destructor Documentation

◆ SegTool2D() [1/2]

mitk::SegTool2D::SegTool2D ( )
protected

◆ SegTool2D() [2/2]

mitk::SegTool2D::SegTool2D ( const char *  ,
const us::Module *  interactorModule = nullptr 
)
protected

◆ ~SegTool2D()

mitk::SegTool2D::~SegTool2D ( )
overrideprotected

Member Function Documentation

◆ Activated()

void mitk::SegTool2D::Activated ( )
overridevirtual

Called when the tool gets activated.

Derived tools should call their parents implementation at the beginning of the overriding function.

Reimplemented from mitk::Tool.

◆ AddContourmarker()

int mitk::SegTool2D::AddContourmarker ( const PlaneGeometry *  planeGeometry,
unsigned int  sliceIndex 
)
protected

Adds a new node called Contourmarker to the datastorage which holds a mitk::PlanarFigure. By selecting this node the slicestack will be reoriented according to the passed PlanarFigure's Geometry.

◆ Deactivated()

void mitk::SegTool2D::Deactivated ( )
overridevirtual

Called when the tool gets deactivated.

Derived tools should call their parents implementation at the end of the overriding function.

Reimplemented from mitk::Tool.

◆ DetermineAffectedImageSlice()

static bool mitk::SegTool2D::DetermineAffectedImageSlice ( const Image *  image,
const PlaneGeometry *  plane,
int &  affectedDimension,
int &  affectedSlice 
)
static

Calculates for a given Image and PlaneGeometry, which slice of the image (in index coordinates) is meant by the plane.

Returns
false, if no slice direction seems right (e.g. rotated planes)
Parameters
image
plane
affectedDimensionThe image dimension, which is constant for all points in the plane, e.g. Axial --> 2
affectedSliceThe index of the image slice

◆ DisableContourMarkers()

void mitk::SegTool2D::DisableContourMarkers ( )
protected

◆ FilterEvents()

bool mitk::SegTool2D::FilterEvents ( InteractionEvent *  interactionEvent,
DataNode *  dataNode 
)
overrideprotectedvirtual

Filters events that cannot be handled by 2D segmentation tools.

Currently an event is discarded if it was not sent by a 2D renderwindow and if it is not of type InteractionPositionEvent

Reimplemented from mitk::EventStateMachine.

◆ GetAffectedImageSliceAs2DImage() [1/2]

static Image::Pointer mitk::SegTool2D::GetAffectedImageSliceAs2DImage ( const InteractionPositionEvent *  positionEvent,
const Image *  image,
unsigned int  component = 0 
)
static

Extract the slice of an image that the user just scribbles on. The given component denotes the vector component of an vector image.

Parameters
positionEventEvent that specifies the plane that should be used to slice
imageImage that should be sliced
componentThe component to be extracted of a given multi-component image. -1 is the default parameter to denote an invalid component.
Returns
'nullptr' if SegTool2D is either unable to determine which slice was affected, or if there was some problem getting the image data at that position.

◆ GetAffectedImageSliceAs2DImage() [2/2]

static Image::Pointer mitk::SegTool2D::GetAffectedImageSliceAs2DImage ( const PlaneGeometry *  planeGeometry,
const Image *  image,
TimeStepType  timeStep,
unsigned int  component = 0 
)
static

Extract the slice of an image cut by given plane. The given component denotes the vector component of a vector image.

Parameters
planeGeometryGeometry defining the slice that should be cut out.
imageImage that should be sliced
timeStepTimeStep of the image that should be sliced
componentThe component to be extracted of a given multi-component image. -1 is the default parameter to denote an invalid component.
Returns
'nullptr' if SegTool2D is either unable to determine which slice was affected, or if there was some problem getting the image data at that position.

◆ GetAffectedImageSliceAs2DImageByTimePoint()

static Image::Pointer mitk::SegTool2D::GetAffectedImageSliceAs2DImageByTimePoint ( const PlaneGeometry *  planeGeometry,
const Image *  image,
TimePointType  timePoint,
unsigned int  component = 0 
)
static

Extract the slice of an image cut by the given plane at a specified time point.

Parameters
[in]planeGeometryGeometry defining the slice that should be cut out.
[in]imageImage that should be sliced.
[in]timePointTime point of the image that should be sliced.
[in]componentThe component to extract of a given multi-component image.
Returns
The extracted 2D slice, or nullptr on failure.

◆ GetAffectedLabelValues()

virtual MultiLabelSegmentation::LabelValueVectorType mitk::SegTool2D::GetAffectedLabelValues ( ) const
protectedvirtual

Returns the label value(s) whose pixels this tool's writeback actually modifies, so the provenance stamp at the writeback choke point lands on the right label. The default is the active label; tools that write a label other than the active one (e.g. erase/close operate on the clicked label) override this. An empty result records no tool use.

Reimplemented in mitk::FillRegionBaseTool.

◆ GetAffectedReferenceSlice() [1/2]

Image::Pointer mitk::SegTool2D::GetAffectedReferenceSlice ( const InteractionPositionEvent *  ) const
protected

Extract the slice of the currently selected reference image that the user just scribbles on.

Returns
nullptr if SegTool2D is either unable to determine which slice was affected, or if there was some problem getting the image data at that position, or just no reference image is selected.

◆ GetAffectedReferenceSlice() [2/2]

Image::Pointer mitk::SegTool2D::GetAffectedReferenceSlice ( const PlaneGeometry *  planeGeometry,
TimeStepType  timeStep 
) const
protected

Overload version that gets the reference slice passed on the passed plane geometry and timestep.

◆ GetAffectedWorkingSlice()

Image::Pointer mitk::SegTool2D::GetAffectedWorkingSlice ( const InteractionPositionEvent *  ) const
protected

Extract the slice of the currently selected working image that the user just scribbles on.

Returns
nullptr if SegTool2D is either unable to determine which slice was affected, or if there was some problem getting the image data at that position, or just no working image is selected.

◆ GetIsTimePointChangeAware()

virtual bool mitk::SegTool2D::GetIsTimePointChangeAware ( )
virtual

◆ GetLastTimePointTriggered()

virtual TimePointType mitk::SegTool2D::GetLastTimePointTriggered ( )
protectedvirtual

◆ GetReferenceData()

Image* mitk::SegTool2D::GetReferenceData ( ) const

Returns the reference image data.

◆ GetReferenceDataNode()

DataNode* mitk::SegTool2D::GetReferenceDataNode ( ) const

Returns the reference data node.

◆ GetWorkingData()

MultiLabelSegmentation* mitk::SegTool2D::GetWorkingData ( ) const

Returns the working data (multi-label segmentation image).

◆ GetWorkingDataNode()

DataNode* mitk::SegTool2D::GetWorkingDataNode ( ) const

Returns the segmentation node that should be modified by the tool.

Returns
Pointer to the working data node, or nullptr if none is set.

◆ InteractiveSegmentationBugMessage()

void mitk::SegTool2D::InteractiveSegmentationBugMessage ( const std::string &  message) const
protected

◆ IsPositionEventInsideImageRegion()

static bool mitk::SegTool2D::IsPositionEventInsideImageRegion ( InteractionPositionEvent *  positionEvent,
const BaseData *  data 
)
staticprotected

Helper function to check if a position events points to a point inside the boundingbox of a passed data instance.

◆ IsTimePointChangeAwareOff()

virtual void mitk::SegTool2D::IsTimePointChangeAwareOff ( )
virtual

◆ IsTimePointChangeAwareOn()

virtual void mitk::SegTool2D::IsTimePointChangeAwareOn ( )
virtual

◆ mitkClassMacro()

mitk::SegTool2D::mitkClassMacro ( SegTool2D  ,
Tool   
)

◆ OnTimePointChanged()

virtual void mitk::SegTool2D::OnTimePointChanged ( )
protectedvirtual

This function can be reimplemented by derived classes to react on changes of the current time point. Default implementation does nothing.

Reimplemented in mitk::LiveWireTool2D.

◆ PopAllCursors()

void mitk::SegTool2D::PopAllCursors ( )
protected

Pops all cursors from the stack, restoring the default cursor.

◆ PopCursor()

void mitk::SegTool2D::PopCursor ( bool  popFirstCursor = false)
protected

Pops the most recently pushed cursor from the stack.

Parameters
[in]popFirstCursorIf true, also pops the first/initial cursor.

◆ PushCursor() [1/2]

void mitk::SegTool2D::PushCursor ( )
protected

Pushes the current tool cursor onto the cursor stack.

◆ PushCursor() [2/2]

void mitk::SegTool2D::PushCursor ( us::ModuleResource  cursorResource)
protected

Pushes a custom cursor onto the cursor stack.

Parameters
[in]cursorResourceThe cursor icon to push.

◆ SetEnable3DInterpolation()

void mitk::SegTool2D::SetEnable3DInterpolation ( bool  )

Enables or disables the 3D interpolation after writing back the 2D segmentation result, and defaults to true.

◆ SetIsTimePointChangeAware()

virtual void mitk::SegTool2D::SetIsTimePointChangeAware ( bool  _arg)
virtual

◆ SetShowMarkerNodes()

void mitk::SegTool2D::SetShowMarkerNodes ( bool  show)

Sets whether contour marker nodes should be visible in the DataStorage.

Parameters
[in]showIf true, marker nodes are shown; otherwise hidden.

◆ UpdateAllSurfaceInterpolations()

static void mitk::SegTool2D::UpdateAllSurfaceInterpolations ( const MultiLabelSegmentation *  workingImage,
TimeStepType  timeStep,
const PlaneGeometry *  plane,
bool  detectIntersection 
)
static

Updates the surface interpolations by extracting contours from the given slice.

Updates contour information for all labels that have surface contour data stored for the given plane at the given time step.

Parameters
[in]workingImageThe segmentation image.
[in]timeStepThe time step for which the surface interpolation should be updated.
[in]planeThe plane in which the slice lies.
[in]detectIntersectionIf true, the slice is eroded before contour extraction. If the slice is empty after the erosion, it is most likely an intersecting contour and will not be added to the SurfaceInterpolationController.

◆ UpdateSurfaceInterpolation()

static void mitk::SegTool2D::UpdateSurfaceInterpolation ( const std::vector< SliceInformation > &  sliceInfos,
const Image *  workingImage,
bool  detectIntersection,
mitk::Label::PixelType  activeLabelValue,
bool  silent = false 
)
staticprotected

Updates the surface interpolation by extracting contours from given slices.

Parameters
[in]sliceInfosVector of slice information instances from which contours are extracted.
[in]workingImageThe segmentation image.
[in]detectIntersectionIf true, the slice is eroded before contour extraction. If the slice is empty after erosion, it is likely an intersecting contour and will not be added to the SurfaceInterpolationController.
[in]activeLabelValueThe label value of the active label.
[in]silentIf true, suppresses the modification event of the SurfaceInterpolationController.

◆ WriteBackSegmentationResult() [1/3]

static void mitk::SegTool2D::WriteBackSegmentationResult ( const DataNode *  workingNode,
const PlaneGeometry *  planeGeometry,
const Image *  segmentationResult,
TimeStepType  timeStep,
const std::string &  toolName 
)
static

Writes the provided segmentation result slice into the data of the passed workingNode.

Public convenience wrapper that: (1) writes the slice to the working node and generates an undo/redo step; (2) updates the surface interpolation; and (3) marks the node as modified.

Parameters
[in]workingNodePointer to the node that contains the working image.
[in]planeGeometryIndicates where the slice should be added in the data of the working node.
[in]segmentationResultPointer to the slice image that should be written.
[in]timeStepTime step of the working node data that should be modified.
[in]toolNameName of the tool used as description in the undo operation.
Precondition
workingNode must point to a valid instance and contain an image instance as data.
planeGeometry must point to a valid instance.
segmentationResult must point to a valid instance.

◆ WriteBackSegmentationResult() [2/3]

void mitk::SegTool2D::WriteBackSegmentationResult ( const InteractionPositionEvent *  ,
const Image *  segmentationResult 
)
protected

Convenience version that can be called for a given event (which is used to deduce timepoint and plane) and a slice image. Calls non static WriteBackSegmentationResults

◆ WriteBackSegmentationResult() [3/3]

void mitk::SegTool2D::WriteBackSegmentationResult ( const PlaneGeometry *  planeGeometry,
const Image *  segmentationResult,
TimeStepType  timeStep 
)
protected

Convenience version that can be called for a given planeGeometry, slice image and time step. Calls non static WriteBackSegmentationResults

◆ WriteBackSegmentationResults() [1/2]

static void mitk::SegTool2D::WriteBackSegmentationResults ( const DataNode *  workingNode,
const std::vector< SliceInformation > &  sliceList,
bool  writeSliceToVolume = true,
bool  allowUndo = true,
const std::string &  toolName = "" 
)
staticprotected

Writes all provided source slices into the data of the passed workingNode. The function does the following: 1) for every passed slice write it to workingNode (and generate and undo/redo step); 2) update the surface interpolation and 3) mark the node as modified.

Parameters
workingNodePointer to the node that contains the working image.
sliceListVector of all slices that should be written into the workingNode. If the list is empty, the function call does nothing.
writeSliceToVolumeIf set to false the write operation (WriteSliceToVolume will be skipped) and only the surface interpolation will be updated.
allowUndoIndicates if undo/redo operations should be registered for the write operation
toolNameName of the tool that should be used as description in the undo operation.
Precondition
workingNode must point to a valid instance and contain an image instance as data.

◆ WriteBackSegmentationResults() [2/2]

void mitk::SegTool2D::WriteBackSegmentationResults ( const std::vector< SliceInformation > &  sliceList,
bool  writeSliceToVolume = true 
)
protected

Overloaded version that calls the static version and also adds the contour markers.

Remarks
If the sliceList is empty, this function does nothing.

◆ WriteSliceToVolume() [1/2]

static void mitk::SegTool2D::WriteSliceToVolume ( Image *  workingImage,
const PlaneGeometry *  planeGeometry,
const Image *  slice,
TimeStepType  timeStep 
)
static

Writes a provided slice into the passed working image.

The content of working image that is covered by the slice will be completely overwritten.

Parameters
[in,out]workingImagePointer to the image that is the target of the write operation.
[in]planeGeometryGeometry that indicates the plane that should be overwritten by the slice.
[in]sliceImage containing the slice that should be written into working image.
[in]timeStepTime step of the working image that should be overwritten.
Precondition
workingImage, planeGeometry and slice must point to valid instances.

◆ WriteSliceToVolume() [2/2]

static void mitk::SegTool2D::WriteSliceToVolume ( Image *  workingImage,
const SliceInformation &  sliceInfo 
)
staticprotected

Convenience overloaded version that can be called with a slice info. Writes a provided slice into the passed working image. The content of working image that is covered by the slice will be completely overwritten. If asked for it also generates the needed undo/redo steps.

Parameters
workingImagePointer to the image that is the target of the write operation.
sliceInfoSliceInfo instance that contains the slice image, the defining plane geometry and time step.
Precondition
workingImage must point to a valid instance.

Member Data Documentation

◆ m_LastEventSender

BaseRenderer* mitk::SegTool2D::m_LastEventSender
protected

Definition at line 317 of file mitkSegTool2D.h.

◆ m_LastEventSlice

unsigned int mitk::SegTool2D::m_LastEventSlice
protected

Definition at line 318 of file mitkSegTool2D.h.


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