Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit

Paintbrush tool for InteractiveSegmentation. More...

#include <mitkPaintbrushTool.h>

Inheritance diagram for mitk::PaintbrushTool:
Collaboration diagram for mitk::PaintbrushTool:

Public Member Functions

 mitkClassMacro (PaintbrushTool, FeedbackContourTool)
 
void SetSize (int value)
 
- Public Member Functions inherited from mitk::FeedbackContourTool
 mitkClassMacro (FeedbackContourTool, SegTool2D)
 
- Public Member Functions inherited from mitk::SegTool2D
 mitkClassMacro (SegTool2D, Tool)
 
void SetShowMarkerNodes (bool)
 
void SetEnable3DInterpolation (bool)
 Enables or disables the 3D interpolation after writing back the 2D segmentation result, and defaults to true. More...
 
- Public Member Functions inherited from mitk::Tool
 mitkClassMacro (Tool, EventStateMachine)
 
virtual const char ** GetXPM () const =0
 Returns an icon in the XPM format. More...
 
virtual std::string GetIconPath () const
 Returns the path of an icon. More...
 
virtual us::ModuleResource GetCursorIconResource () const
 Returns the path of a cursor icon. 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 const char * GetGroup () const
 Name of a group. More...
 
virtual void InitializeStateMachine ()
 
virtual itk::Object::Pointer GetGUI (const std::string &toolkitPrefix, const std::string &toolkitPostfix)
 Interface for GUI creation. More...
 
virtual NodePredicateBase::ConstPointer GetReferenceDataPreference () const
 
virtual NodePredicateBase::ConstPointer GetWorkingDataPreference () const
 
DataNode::Pointer CreateEmptySegmentationNode (const Image *original, const std::string &organName, const mitk::Color &color)
 
DataNode::Pointer CreateSegmentationNode (Image *image, const std::string &organName, const mitk::Color &color)
 
virtual bool CanHandle (BaseData *referenceData) const
 
- Public Member Functions inherited from mitk::EventStateMachine
virtual std::vector< std::string > GetClassHierarchy () const override
 
virtual const char * GetClassName () const
 
bool LoadStateMachine (const std::string &filename, const us::Module *module=nullptr)
 Loads XML resource. More...
 
bool HandleEvent (InteractionEvent *event, DataNode *dataNode)
 
void EnableUndo (bool enable)
 Enables or disabled Undo. More...
 
void EnableInteraction (bool enable)
 Enables/disables the state machine. In un-enabled state it won't react to any events. More...
 
- Public Member Functions inherited from mitk::InteractionEventHandler
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 ()
 
void Enable ()
 
bool IsEnabled () const
 

Public Attributes

Message1< int > SizeChanged
 
- 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 Member Functions

 PaintbrushTool (int paintingPixelValue=1)
 
 ~PaintbrushTool () override
 
void ConnectActionsAndFunctions () override
 
void Activated () override
 Called when the tool gets activated. More...
 
void Deactivated () override
 Called when the tool gets deactivated. More...
 
virtual void OnMousePressed (StateMachineAction *, InteractionEvent *)
 
virtual void OnMouseMoved (StateMachineAction *, InteractionEvent *)
 
virtual void OnPrimaryButtonPressedMoved (StateMachineAction *, InteractionEvent *)
 
virtual void MouseMoved (mitk::InteractionEvent *interactionEvent, bool leftMouseButtonPressed)
 
virtual void OnMouseReleased (StateMachineAction *, InteractionEvent *)
 
virtual void OnInvertLogic (StateMachineAction *, InteractionEvent *)
 
void UpdateContour (const InteractionPositionEvent *)
 
mitk::Point2D upperLeft (mitk::Point2D p)
 
void CheckIfCurrentSliceHasChanged (const InteractionPositionEvent *event)
 
void OnToolManagerWorkingDataModified ()
 
- Protected Member Functions inherited from mitk::FeedbackContourTool
 FeedbackContourTool ()
 
 FeedbackContourTool (const char *)
 
 ~FeedbackContourTool () override
 
ContourModelGetFeedbackContour ()
 
void SetFeedbackContour (ContourModel::Pointer)
 
void SetFeedbackContourVisible (bool)
 
void SetFeedbackContourColor (float r, float g, float b)
 Provide values from 0.0 (black) to 1.0 (full color) More...
 
void SetFeedbackContourColorDefault ()
 
ContourModel::Pointer ProjectContourTo2DSlice (Image *slice, ContourModel *contourIn3D, bool correctionForIpSegmentation=false, bool constrainToInside=true)
 Projects a contour onto an image point by point. Converts from world to index coordinates. More...
 
ContourModel::Pointer BackProjectContourFrom2DSlice (const BaseGeometry *sliceGeometry, ContourModel *contourIn2D, bool correctionForIpSegmentation=false)
 Projects a slice index coordinates of a contour back into world coordinates. More...
 
void FillContourInSlice (ContourModel *projectedContour, Image *sliceImage, int paintingPixelValue=1)
 Fill a contour in a 2D slice with a specified pixel value. More...
 
void FillContourInSlice (ContourModel *projectedContour, unsigned int timeStep, Image *sliceImage, int paintingPixelValue=1)
 Fill a contour in a 2D slice with a specified pixel value at a given time step. More...
 
- Protected Member Functions inherited from mitk::SegTool2D
 SegTool2D ()
 
 SegTool2D (const char *, const us::Module *interactorModule=nullptr)
 
 ~SegTool2D () override
 
bool FilterEvents (InteractionEvent *interactionEvent, DataNode *dataNode) override
 Filters events that cannot be handle by 2D segmentation tools. More...
 
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 a dwi-image. More...
 
Image::Pointer GetAffectedImageSliceAs2DImage (const PlaneGeometry *planeGeometry, const Image *image, unsigned int timeStep, unsigned int component=0)
 Extract the slice of an image cut by given plane. The given component denotes the vector component of a dwi-image. More...
 
Image::Pointer GetAffectedWorkingSlice (const InteractionPositionEvent *)
 Extract the slice of the currently selected working image that the user just scribbles on. More...
 
Image::Pointer GetAffectedReferenceSlice (const InteractionPositionEvent *)
 Extract the slice of the currently selected reference image that the user just scribbles on. More...
 
void WriteBackSegmentationResult (const InteractionPositionEvent *, Image *)
 
void WriteBackSegmentationResult (const PlaneGeometry *planeGeometry, Image *, unsigned int timeStep)
 
void WriteBackSegmentationResult (const std::vector< SliceInformation > &sliceList, bool writeSliceToVolume=true)
 
void WritePreviewOnWorkingImage (Image *targetSlice, Image *sourceSlice, Image *workingImage, int paintingPixelValue, int timestep)
 
void WriteSliceToVolume (const SliceInformation &sliceInfo)
 
int AddContourmarker ()
 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 PlanarFigure's Geometry. More...
 
void InteractiveSegmentationBugMessage (const std::string &message)
 
- Protected Member Functions inherited from mitk::Tool
virtual void SetToolManager (ToolManager *)
 
void ConnectActionsAndFunctions () override
 
 Tool ()
 
 Tool (const char *, const us::Module *interactorModule=nullptr)
 
 ~Tool () override
 
void Notify (InteractionEvent *interactionEvent, bool isHandled) override
 
bool FilterEvents (InteractionEvent *, DataNode *) override
 
- Protected Member Functions inherited from mitk::EventStateMachine
 EventStateMachine ()
 
 ~EventStateMachine () override
 
void AddActionFunction (const std::string &action, TActionFunctor *functor)
 
void AddActionFunction (const std::string &action, const ActionFunctionDelegate &delegate)
 
void AddConditionFunction (const std::string &condition, const ConditionFunctionDelegate &delegate)
 
StateMachineStateGetCurrentState () 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 (if modified by the SlicesCoordinator) to its original state. More...
 
StateMachineTransitionGetExecutableTransition (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 ()
 

Protected Attributes

int m_PaintingPixelValue
 
ContourModel::Pointer m_MasterContour
 
int m_LastContourSize
 
Image::Pointer m_WorkingSlice
 
PlaneGeometry::ConstPointer m_CurrentPlane
 
DataNode::Pointer m_WorkingNode
 
mitk::Point3D m_LastPosition
 
- Protected Attributes inherited from mitk::FeedbackContourTool
ContourModel::Pointer m_FeedbackContour
 
DataNode::Pointer m_FeedbackContourNode
 
bool m_FeedbackContourVisible
 
- Protected Attributes inherited from mitk::SegTool2D
BaseRendererm_LastEventSender
 
unsigned int m_LastEventSlice
 
- Protected Attributes inherited from mitk::Tool
std::string m_EventConfig
 Let subclasses change their event configuration. More...
 
ToolManagerm_ToolManager
 
- Protected Attributes inherited from mitk::EventStateMachine
bool m_IsActive
 
UndoControllerm_UndoController
 
bool m_UndoEnabled
 

Static Protected Attributes

static int m_Size
 

Additional Inherited Members

- Public Types inherited from mitk::Tool
typedef mitk::Label::PixelType DefaultSegmentationDataType
 
- Public Types inherited from mitk::EventStateMachine
typedef EventStateMachine Self
 
typedef InteractionEventHandler Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef std::map< std::string, TActionFunctor * > ActionFunctionsMapType
 
typedef itk::SmartPointer< StateMachineStateStateMachineStateType
 
- Public Types inherited from mitk::InteractionEventHandler
typedef InteractionEventHandler Self
 
typedef itk::Object Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
- Static Public Member Functions inherited from mitk::SegTool2D
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 corrdinates) is meant by the plane. More...
 
static void UpdateSurfaceInterpolation (const Image *slice, const Image *workingImage, const PlaneGeometry *plane, bool detectIntersection)
 Updates the surface interpolation by extracting the contour form the given slice. More...
 
- Static Public Member Functions inherited from mitk::EventStateMachine
static const char * GetStaticNameOfClass ()
 
- Static Public Member Functions inherited from mitk::InteractionEventHandler
static const char * GetStaticNameOfClass ()
 
- Protected Types inherited from mitk::EventStateMachine
typedef MessageAbstractDelegate2< StateMachineAction *, InteractionEvent *, void > ActionFunctionDelegate
 
typedef MessageAbstractDelegate1< const InteractionEvent *, bool > ConditionFunctionDelegate
 

Detailed Description

Paintbrush tool for InteractiveSegmentation.

See also
FeedbackContourTool
ExtractImageFilter
OverwriteSliceImageFilter

Simple paintbrush drawing tool. Right now there are only circular pens of varying size.

Warning
Only to be instantiated by mitk::ToolManager.
Author
maleike

Definition at line 44 of file mitkPaintbrushTool.h.

Constructor & Destructor Documentation

◆ PaintbrushTool()

mitk::PaintbrushTool::PaintbrushTool ( int  paintingPixelValue = 1)
protected

◆ ~PaintbrushTool()

mitk::PaintbrushTool::~PaintbrushTool ( )
overrideprotected

Definition at line 42 of file mitkPaintbrushTool.cpp.

Member Function Documentation

◆ Activated()

void mitk::PaintbrushTool::Activated ( )
overrideprotectedvirtual

Called when the tool gets activated.

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

Reimplemented from mitk::FeedbackContourTool.

Definition at line 55 of file mitkPaintbrushTool.cpp.

References m_Size, mitk::Tool::m_ToolManager, OnToolManagerWorkingDataModified(), mitk::Message1< T, A >::Send(), mitk::FeedbackContourTool::SetFeedbackContourVisible(), SizeChanged, and mitk::ToolManager::WorkingDataChanged.

◆ CheckIfCurrentSliceHasChanged()

◆ ConnectActionsAndFunctions()

void mitk::PaintbrushTool::ConnectActionsAndFunctions ( )
overrideprotectedvirtual

Is called after loading a statemachine. Overwrite this function in specific interactor implementations. Connect actions and functions using the CONNECT_FUNCTION macro within this function.

Reimplemented from mitk::EventStateMachine.

Definition at line 46 of file mitkPaintbrushTool.cpp.

References CONNECT_FUNCTION, OnInvertLogic(), OnMouseMoved(), OnMousePressed(), OnMouseReleased(), and OnPrimaryButtonPressedMoved().

◆ Deactivated()

void mitk::PaintbrushTool::Deactivated ( )
overrideprotectedvirtual

Called when the tool gets deactivated.

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

Reimplemented from mitk::FeedbackContourTool.

Definition at line 65 of file mitkPaintbrushTool.cpp.

References mitk::DataStorage::Exists(), mitk::ToolManager::GetDataStorage(), m_CurrentPlane, mitk::Tool::m_ToolManager, m_WorkingNode, m_WorkingSlice, OnToolManagerWorkingDataModified(), mitk::DataStorage::Remove(), mitk::FeedbackContourTool::SetFeedbackContourVisible(), and mitk::ToolManager::WorkingDataChanged.

◆ mitkClassMacro()

mitk::PaintbrushTool::mitkClassMacro ( PaintbrushTool  ,
FeedbackContourTool   
)

◆ MouseMoved()

◆ OnInvertLogic()

void mitk::PaintbrushTool::OnInvertLogic ( StateMachineAction ,
InteractionEvent  
)
protectedvirtual

◆ OnMouseMoved()

void mitk::PaintbrushTool::OnMouseMoved ( StateMachineAction ,
InteractionEvent interactionEvent 
)
protectedvirtual

Definition at line 311 of file mitkPaintbrushTool.cpp.

References MouseMoved().

Referenced by ConnectActionsAndFunctions().

◆ OnMousePressed()

◆ OnMouseReleased()

void mitk::PaintbrushTool::OnMouseReleased ( StateMachineAction ,
InteractionEvent interactionEvent 
)
protectedvirtual

◆ OnPrimaryButtonPressedMoved()

void mitk::PaintbrushTool::OnPrimaryButtonPressedMoved ( StateMachineAction ,
InteractionEvent interactionEvent 
)
protectedvirtual

Definition at line 316 of file mitkPaintbrushTool.cpp.

References MouseMoved().

Referenced by ConnectActionsAndFunctions().

◆ OnToolManagerWorkingDataModified()

void mitk::PaintbrushTool::OnToolManagerWorkingDataModified ( )
protected

Definition at line 589 of file mitkPaintbrushTool.cpp.

References m_WorkingSlice.

Referenced by Activated(), and Deactivated().

◆ SetSize()

void mitk::PaintbrushTool::SetSize ( int  value)

Definition at line 78 of file mitkPaintbrushTool.cpp.

References m_Size.

◆ UpdateContour()

void mitk::PaintbrushTool::UpdateContour ( const InteractionPositionEvent positionEvent)
protected

Definition at line 90 of file mitkPaintbrushTool.cpp.

References m_MasterContour, m_Size, mitk::ContourModel::New(), and upperLeft().

Referenced by MouseMoved().

◆ upperLeft()

mitk::Point2D mitk::PaintbrushTool::upperLeft ( mitk::Point2D  p)
protected

Little helper function. Returns the upper left corner of the given pixel.

Definition at line 83 of file mitkPaintbrushTool.cpp.

Referenced by UpdateContour().

Member Data Documentation

◆ m_CurrentPlane

PlaneGeometry::ConstPointer mitk::PaintbrushTool::m_CurrentPlane
protected

◆ m_LastContourSize

int mitk::PaintbrushTool::m_LastContourSize
protected

Definition at line 93 of file mitkPaintbrushTool.h.

Referenced by MouseMoved().

◆ m_LastPosition

mitk::Point3D mitk::PaintbrushTool::m_LastPosition
protected

Definition at line 98 of file mitkPaintbrushTool.h.

Referenced by MouseMoved(), and OnMousePressed().

◆ m_MasterContour

ContourModel::Pointer mitk::PaintbrushTool::m_MasterContour
protected

Definition at line 91 of file mitkPaintbrushTool.h.

Referenced by MouseMoved(), OnMousePressed(), PaintbrushTool(), and UpdateContour().

◆ m_PaintingPixelValue

int mitk::PaintbrushTool::m_PaintingPixelValue
protected

Definition at line 88 of file mitkPaintbrushTool.h.

Referenced by MouseMoved(), and OnInvertLogic().

◆ m_Size

int mitk::PaintbrushTool::m_Size
staticprotected

Definition at line 89 of file mitkPaintbrushTool.h.

Referenced by Activated(), MouseMoved(), SetSize(), and UpdateContour().

◆ m_WorkingNode

DataNode::Pointer mitk::PaintbrushTool::m_WorkingNode
protected

◆ m_WorkingSlice

Image::Pointer mitk::PaintbrushTool::m_WorkingSlice
protected

◆ SizeChanged

Message1<int> mitk::PaintbrushTool::SizeChanged

Definition at line 48 of file mitkPaintbrushTool.h.

Referenced by Activated().


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