Medical Imaging Interaction Toolkit
2018.4.99-389bf124
Medical Imaging Interaction Toolkit
|
Paintbrush tool for InteractiveSegmentation. More...
#include <mitkPaintbrushTool.h>
Public Member Functions | |
mitkClassMacro (PaintbrushTool, FeedbackContourTool) | |
void | SetSize (int value) |
![]() | |
mitkClassMacro (FeedbackContourTool, 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... | |
![]() | |
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 |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
InteractionEventObserver () | |
virtual | ~InteractionEventObserver () |
void | Disable () |
void | Enable () |
bool | IsEnabled () const |
Public Attributes | |
Message1< int > | SizeChanged |
![]() | |
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 () |
![]() | |
FeedbackContourTool () | |
FeedbackContourTool (const char *) | |
~FeedbackContourTool () override | |
ContourModel * | GetFeedbackContour () |
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... | |
![]() | |
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) |
![]() | |
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 |
![]() | |
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) |
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 (if modified by the SlicesCoordinator) to its original state. More... | |
StateMachineTransition * | GetExecutableTransition (InteractionEvent *event) |
Returns the executable transition for the given event. More... | |
![]() | |
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 |
![]() | |
ContourModel::Pointer | m_FeedbackContour |
DataNode::Pointer | m_FeedbackContourNode |
bool | m_FeedbackContourVisible |
![]() | |
BaseRenderer * | m_LastEventSender |
unsigned int | m_LastEventSlice |
![]() | |
std::string | m_EventConfig |
Let subclasses change their event configuration. More... | |
ToolManager * | m_ToolManager |
![]() | |
bool | m_IsActive |
UndoController * | m_UndoController |
bool | m_UndoEnabled |
Static Protected Attributes | |
static int | m_Size |
Additional Inherited Members | |
![]() | |
typedef mitk::Label::PixelType | DefaultSegmentationDataType |
![]() | |
typedef EventStateMachine | Self |
typedef InteractionEventHandler | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
typedef std::map< std::string, TActionFunctor * > | ActionFunctionsMapType |
typedef itk::SmartPointer< StateMachineState > | StateMachineStateType |
![]() | |
typedef InteractionEventHandler | Self |
typedef itk::Object | Superclass |
typedef itk::SmartPointer< Self > | Pointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
![]() | |
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 const char * | GetStaticNameOfClass () |
![]() | |
static const char * | GetStaticNameOfClass () |
![]() | |
typedef MessageAbstractDelegate2< StateMachineAction *, InteractionEvent *, void > | ActionFunctionDelegate |
typedef MessageAbstractDelegate1< const InteractionEvent *, bool > | ConditionFunctionDelegate |
Paintbrush tool for InteractiveSegmentation.
Simple paintbrush drawing tool. Right now there are only circular pens of varying size.
Definition at line 44 of file mitkPaintbrushTool.h.
|
protected |
Definition at line 28 of file mitkPaintbrushTool.cpp.
References m_CurrentPlane, m_MasterContour, m_WorkingNode, mitk::BoolProperty::New(), mitk::LevelWindowProperty::New(), mitk::ContourModel::New(), and mitk::DataNode::New().
|
overrideprotected |
Definition at line 42 of file mitkPaintbrushTool.cpp.
|
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.
|
protected |
Checks if the current slice has changed
Definition at line 525 of file mitkPaintbrushTool.cpp.
References mitk::DataStorage::Add(), mitk::Equal(), mitk::DataStorage::Exists(), mitk::SegTool2D::GetAffectedImageSliceAs2DImage(), mitk::BaseRenderer::GetCurrentWorldPlaneGeometry(), mitk::ToolManager::GetDataStorage(), mitk::BaseGeometry::GetIndexToWorldTransform(), mitk::BaseRenderer::GetInstance(), mitk::RenderingManager::GetInstance(), mitk::BaseRenderer::GetRenderWindowByName(), mitk::InteractionEvent::GetSender(), mitk::ToolManager::GetWorkingData(), image, m_CurrentPlane, mitk::Tool::m_ToolManager, m_WorkingNode, m_WorkingSlice, mitk::MatrixEqualElementWise(), mitk::BoolProperty::New(), mitk::FloatProperty::New(), mitk::StringProperty::New(), mitk::LevelWindowProperty::New(), mitk::DataNode::New(), mitk::DataStorage::Remove(), and mitk::RenderingManager::RequestUpdateAll().
Referenced by MouseMoved().
|
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().
|
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.
mitk::PaintbrushTool::mitkClassMacro | ( | PaintbrushTool | , |
FeedbackContourTool | |||
) |
|
protectedvirtual |
Insert the point to the feedback contour,finish to build the contour and at the same time the painting function
Definition at line 324 of file mitkPaintbrushTool.cpp.
References mitk::FeedbackContourTool::BackProjectContourFrom2DSlice(), CheckIfCurrentSliceHasChanged(), mitk::eps, mitk::ContourModelUtils::FillContourInSlice(), mitk::LabelSetImage::GetActiveLabel(), mitk::FeedbackContourTool::GetFeedbackContour(), mitk::RenderingManager::GetInstance(), mitk::ToolManager::GetWorkingData(), image, mitk::FeedbackContourTool::m_FeedbackContourNode, m_LastContourSize, m_LastPosition, m_MasterContour, m_PaintingPixelValue, m_Size, mitk::Tool::m_ToolManager, m_WorkingNode, m_WorkingSlice, mitk::ContourModel::New(), mitk::RenderingManager::RequestUpdate(), and UpdateContour().
Referenced by OnMouseMoved(), OnMousePressed(), and OnPrimaryButtonPressedMoved().
|
protectedvirtual |
Called when the CTRL key is pressed. Will change the painting pixel value from 0 to 1 or from 1 to 0.
Definition at line 509 of file mitkPaintbrushTool.cpp.
References mitk::RenderingManager::GetInstance(), m_PaintingPixelValue, mitk::RenderingManager::RequestUpdateAll(), mitk::FeedbackContourTool::SetFeedbackContourColor(), and mitk::FeedbackContourTool::SetFeedbackContourColorDefault().
Referenced by ConnectActionsAndFunctions().
|
protectedvirtual |
Definition at line 311 of file mitkPaintbrushTool.cpp.
References MouseMoved().
Referenced by ConnectActionsAndFunctions().
|
protectedvirtual |
Just show the contour, get one point as the central point and add surrounding points to the contour.
Definition at line 279 of file mitkPaintbrushTool.cpp.
References mitk::DataStorage::Exists(), mitk::ToolManager::GetDataStorage(), mitk::BaseRenderer::GetSlice(), m_CurrentPlane, mitk::SegTool2D::m_LastEventSender, mitk::SegTool2D::m_LastEventSlice, m_LastPosition, m_MasterContour, mitk::Tool::m_ToolManager, m_WorkingNode, m_WorkingSlice, MouseMoved(), mitk::BoolProperty::New(), mitk::LevelWindowProperty::New(), mitk::DataNode::New(), and mitk::DataStorage::Remove().
Referenced by ConnectActionsAndFunctions().
|
protectedvirtual |
Definition at line 491 of file mitkPaintbrushTool.cpp.
References mitk::RenderingManager::GetInstance(), m_WorkingNode, m_WorkingSlice, mitk::RenderingManager::RequestUpdate(), and mitk::SegTool2D::WriteBackSegmentationResult().
Referenced by ConnectActionsAndFunctions().
|
protectedvirtual |
Definition at line 316 of file mitkPaintbrushTool.cpp.
References MouseMoved().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 589 of file mitkPaintbrushTool.cpp.
References m_WorkingSlice.
Referenced by Activated(), and Deactivated().
void mitk::PaintbrushTool::SetSize | ( | int | value | ) |
Definition at line 78 of file mitkPaintbrushTool.cpp.
References m_Size.
|
protected |
Definition at line 90 of file mitkPaintbrushTool.cpp.
References m_MasterContour, m_Size, mitk::ContourModel::New(), and upperLeft().
Referenced by MouseMoved().
|
protected |
Little helper function. Returns the upper left corner of the given pixel.
Definition at line 83 of file mitkPaintbrushTool.cpp.
Referenced by UpdateContour().
|
protected |
Definition at line 96 of file mitkPaintbrushTool.h.
Referenced by CheckIfCurrentSliceHasChanged(), Deactivated(), OnMousePressed(), and PaintbrushTool().
|
protected |
Definition at line 93 of file mitkPaintbrushTool.h.
Referenced by MouseMoved().
|
protected |
Definition at line 98 of file mitkPaintbrushTool.h.
Referenced by MouseMoved(), and OnMousePressed().
|
protected |
Definition at line 91 of file mitkPaintbrushTool.h.
Referenced by MouseMoved(), OnMousePressed(), PaintbrushTool(), and UpdateContour().
|
protected |
Definition at line 88 of file mitkPaintbrushTool.h.
Referenced by MouseMoved(), and OnInvertLogic().
|
staticprotected |
Definition at line 89 of file mitkPaintbrushTool.h.
Referenced by Activated(), MouseMoved(), SetSize(), and UpdateContour().
|
protected |
Definition at line 97 of file mitkPaintbrushTool.h.
Referenced by CheckIfCurrentSliceHasChanged(), Deactivated(), MouseMoved(), OnMousePressed(), OnMouseReleased(), and PaintbrushTool().
|
protected |
Definition at line 95 of file mitkPaintbrushTool.h.
Referenced by CheckIfCurrentSliceHasChanged(), Deactivated(), MouseMoved(), OnMousePressed(), OnMouseReleased(), and OnToolManagerWorkingDataModified().
Message1<int> mitk::PaintbrushTool::SizeChanged |
Definition at line 48 of file mitkPaintbrushTool.h.
Referenced by Activated().