Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
mitk::PlanarFigureInteractor Class Reference

Interaction with mitk::PlanarFigure objects via control-points. More...

#include <mitkPlanarFigureInteractor.h>

Inheritance diagram for mitk::PlanarFigureInteractor:
Collaboration diagram for mitk::PlanarFigureInteractor:

Public Member Functions

 mitkClassMacro (PlanarFigureInteractor, DataInteractor)
 
Pointer Clone () const
 
void SetPrecision (ScalarType precision)
 Sets the amount of precision. More...
 
void SetMinimumPointDistance (ScalarType minimumDistance)
 Sets the minimal distance between two control points. More...
 
- Public Member Functions inherited from mitk::DataInteractor
virtual std::vector< std::string > GetClassHierarchy () const override
 
virtual const char * GetClassName () const
 
Pointer Clone () const
 
DataNodeGetDataNode () const
 
virtual void SetDataNode (DataNode *dataNode)
 
int GetLayer () const
 
ProcessEventMode GetMode () const
 
- Public Member Functions inherited from mitk::EventStateMachine
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...
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from mitk::DataInteractor
static const char * GetStaticNameOfClass ()
 
static Pointer New ()
 
- 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 Member Functions

 PlanarFigureInteractor ()
 
virtual ~PlanarFigureInteractor ()
 
virtual void ConnectActionsAndFunctions () override
 Overwrite this function to connect actions from StateMachine description with functions. More...
 
bool CheckFigurePlaced (const InteractionEvent *interactionEvent)
 
bool CheckFigureHovering (const InteractionEvent *interactionEvent)
 
bool CheckControlPointHovering (const InteractionEvent *interactionEvent)
 
bool CheckSelection (const InteractionEvent *interactionEvent)
 
bool CheckPointValidity (const InteractionEvent *interactionEvent)
 
bool CheckFigureFinished (const InteractionEvent *interactionEvent)
 
bool CheckResetOnPointSelect (const InteractionEvent *interactionEvent)
 
bool CheckFigureOnRenderingGeometry (const InteractionEvent *interactionEvent)
 
bool CheckMinimalFigureFinished (const InteractionEvent *interactionEvent)
 
bool CheckFigureIsExtendable (const InteractionEvent *interactionEvent)
 
bool CheckFigureIsDeletable (const InteractionEvent *interactionEvent)
 
bool CheckFigureIsEditable (const InteractionEvent *interactionEvent)
 
void FinalizeFigure (StateMachineAction *, InteractionEvent *interactionEvent)
 
void MoveCurrentPoint (StateMachineAction *, InteractionEvent *interactionEvent)
 
void DeselectPoint (StateMachineAction *, InteractionEvent *interactionEvent)
 
void AddPoint (StateMachineAction *, InteractionEvent *interactionEvent)
 
void AddInitialPoint (StateMachineAction *, InteractionEvent *interactionEvent)
 
void StartHovering (StateMachineAction *, InteractionEvent *interactionEvent)
 
void EndHovering (StateMachineAction *, InteractionEvent *interactionEvent)
 
void DeleteFigure (StateMachineAction *, InteractionEvent *interactionEvent)
 
void PerformPointResetOnSelect (StateMachineAction *, InteractionEvent *interactionEvent)
 
void SetPreviewPointPosition (StateMachineAction *, InteractionEvent *interactionEvent)
 
void HidePreviewPoint (StateMachineAction *, InteractionEvent *interactionEvent)
 
void HideControlPoints (StateMachineAction *, InteractionEvent *interactionEvent)
 
void RemoveSelectedPoint (StateMachineAction *, InteractionEvent *interactionEvent)
 
void RequestContextMenu (StateMachineAction *, InteractionEvent *interactionEvent)
 
void SelectFigure (StateMachineAction *, InteractionEvent *interactionEvent)
 
void SelectPoint (StateMachineAction *, InteractionEvent *interactionEvent)
 
void EndInteraction (StateMachineAction *, InteractionEvent *interactionEvent)
 
bool FilterEvents (InteractionEvent *interactionEvent, DataNode *) override
 
bool IsMousePositionAcceptableAsNewControlPoint (const mitk::InteractionPositionEvent *positionEvent, const PlanarFigure *)
 Used when clicking to determine if a point is too close to the previous point. More...
 
bool TransformPositionEventToPoint2D (const InteractionPositionEvent *positionEvent, const PlaneGeometry *planarFigureGeometry, Point2D &point2D)
 
bool TransformObjectToDisplay (const mitk::Point2D &point2D, mitk::Point2D &displayPoint, const mitk::PlaneGeometry *objectGeometry, const mitk::PlaneGeometry *rendererGeometry, const mitk::BaseRenderer *renderer) const
 
bool IsPointNearLine (const mitk::Point2D &point, const mitk::Point2D &startPoint, const mitk::Point2D &endPoint, mitk::Point2D &projectedPoint) const
 Returns true if the first specified point is in proximity of the line defined the other two point; false otherwise. More...
 
int IsPositionOverFigure (const InteractionPositionEvent *positionEvent, PlanarFigure *planarFigure, const PlaneGeometry *planarFigureGeometry, const PlaneGeometry *rendererGeometry, Point2D &pointProjectedOntoLine) const
 Returns true if the point contained in the passed event (in display coordinates) is over the planar figure (with a pre-defined tolerance range); false otherwise. More...
 
int IsPositionInsideMarker (const InteractionPositionEvent *positionEvent, const PlanarFigure *planarFigure, const PlaneGeometry *planarFigureGeometry, const PlaneGeometry *rendererGeometry, const BaseRenderer *renderer) const
 Returns the index of the marker (control point) over which the point contained in the passed event (in display coordinates) currently is; -1 if the point is not over a marker. More...
 
void LogPrintPlanarFigureQuantities (const PlanarFigure *planarFigure)
 
virtual void ConfigurationChanged () override
 
- Protected Member Functions inherited from mitk::DataInteractor
 DataInteractor ()
 
virtual ~DataInteractor ()
 
virtual void DataNodeChanged ()
 Is called when a DataNode is initially set or changed To be implemented by sub-classes for initialization code which require a DataNode. 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 ()
 
virtual ~EventStateMachine ()
 
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 ()
 
virtual ~InteractionEventHandler ()
 
PropertyList::Pointer GetAttributes () const
 
std::string MapToEventVariant (InteractionEvent *interactionEvent)
 

Additional Inherited Members

- Public Types inherited from mitk::DataInteractor
typedef DataInteractor Self
 
typedef EventStateMachine Superclass
 
typedef itk::SmartPointer< SelfPointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
- 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 Attributes inherited from mitk::DataInteractor
static const std::string IntDeactivateMe
 
static const std::string IntLeaveWidget
 
static const std::string IntEnterWidget
 
- 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
 
UndoControllerm_UndoController
 
bool m_UndoEnabled
 

Detailed Description

Interaction with mitk::PlanarFigure objects via control-points.

Definition at line 60 of file mitkPlanarFigureInteractor.h.

Constructor & Destructor Documentation

mitk::PlanarFigureInteractor::PlanarFigureInteractor ( )
protected

Definition at line 34 of file mitkPlanarFigureInteractor.cpp.

mitk::PlanarFigureInteractor::~PlanarFigureInteractor ( )
protectedvirtual

Definition at line 39 of file mitkPlanarFigureInteractor.cpp.

Member Function Documentation

bool mitk::PlanarFigureInteractor::CheckControlPointHovering ( const InteractionEvent interactionEvent)
protected
bool mitk::PlanarFigureInteractor::CheckFigureFinished ( const InteractionEvent interactionEvent)
protected
bool mitk::PlanarFigureInteractor::CheckFigureHovering ( const InteractionEvent interactionEvent)
protected
bool mitk::PlanarFigureInteractor::CheckFigureIsDeletable ( const InteractionEvent interactionEvent)
protected

Definition at line 223 of file mitkPlanarFigureInteractor.cpp.

bool mitk::PlanarFigureInteractor::CheckFigureIsEditable ( const InteractionEvent interactionEvent)
protected

Definition at line 231 of file mitkPlanarFigureInteractor.cpp.

bool mitk::PlanarFigureInteractor::CheckFigureIsExtendable ( const InteractionEvent interactionEvent)
protected

Definition at line 215 of file mitkPlanarFigureInteractor.cpp.

bool mitk::PlanarFigureInteractor::CheckFigureOnRenderingGeometry ( const InteractionEvent interactionEvent)
protected
bool mitk::PlanarFigureInteractor::CheckFigurePlaced ( const InteractionEvent interactionEvent)
protected
bool mitk::PlanarFigureInteractor::CheckMinimalFigureFinished ( const InteractionEvent interactionEvent)
protected
bool mitk::PlanarFigureInteractor::CheckPointValidity ( const InteractionEvent interactionEvent)
protected

Definition at line 599 of file mitkPlanarFigureInteractor.cpp.

bool mitk::PlanarFigureInteractor::CheckResetOnPointSelect ( const InteractionEvent interactionEvent)
protected
bool mitk::PlanarFigureInteractor::CheckSelection ( const InteractionEvent interactionEvent)
protected

Definition at line 554 of file mitkPlanarFigureInteractor.cpp.

Pointer mitk::PlanarFigureInteractor::Clone ( ) const
void mitk::PlanarFigureInteractor::ConfigurationChanged ( )
overrideprotectedvirtual

Is called whenever a new config object ist set. Overwrite this method e.g. to initialize EventHandler with parameters in configuration file.

Reimplemented from mitk::InteractionEventHandler.

Definition at line 933 of file mitkPlanarFigureInteractor.cpp.

void mitk::PlanarFigureInteractor::ConnectActionsAndFunctions ( )
overrideprotectedvirtual

Overwrite this function to connect actions from StateMachine description with functions.

Following example shows how to connect the 'addpoint' action from the StateMachine XML description using the CONNECT_FUNCTION macro with the AddPoint() function in the TestInteractor.

Reimplemented from mitk::DataInteractor.

Definition at line 43 of file mitkPlanarFigureInteractor.cpp.

References CONNECT_CONDITION, and CONNECT_FUNCTION.

void mitk::PlanarFigureInteractor::DeselectPoint ( StateMachineAction ,
InteractionEvent interactionEvent 
)
protected
void mitk::PlanarFigureInteractor::EndInteraction ( StateMachineAction ,
InteractionEvent interactionEvent 
)
protected
bool mitk::PlanarFigureInteractor::FilterEvents ( InteractionEvent interactionEvent,
mitk::DataNode dataNode 
)
overrideprotectedvirtual

Implements filter scheme for events. Standard implementation accepts events from 2d and 3d windows, and rejects events if DataNode is not visible.

Returns
true if event is accepted, else false

Overwrite this function to adapt for your own needs, for example to filter out events from 3d windows like this:

bool mitk::EventStateMachine::FilterEvents(InteractionEvent* interactionEvent, DataNode*dataNode)
{
return interactionEvent->GetSender()->GetMapperID() == BaseRenderer::Standard2D; // only 2D mappers
}

or to enforce that the interactor only reacts when the corresponding DataNode is selected in the DataManager view..

Reimplemented from mitk::EventStateMachine.

Definition at line 162 of file mitkPlanarFigureInteractor.cpp.

References mitk::BaseRenderer::GetMapperID(), mitk::InteractionEvent::GetSender(), and mitk::BaseRenderer::Standard3D.

void mitk::PlanarFigureInteractor::HideControlPoints ( StateMachineAction ,
InteractionEvent interactionEvent 
)
protected

Definition at line 474 of file mitkPlanarFigureInteractor.cpp.

bool mitk::PlanarFigureInteractor::IsPointNearLine ( const mitk::Point2D point,
const mitk::Point2D startPoint,
const mitk::Point2D endPoint,
mitk::Point2D projectedPoint 
) const
protected

Returns true if the first specified point is in proximity of the line defined the other two point; false otherwise.

Proximity is defined as the rectangle around the line with pre-defined distance from the line.

Definition at line 740 of file mitkPlanarFigureInteractor.cpp.

int mitk::PlanarFigureInteractor::IsPositionInsideMarker ( const InteractionPositionEvent positionEvent,
const PlanarFigure planarFigure,
const PlaneGeometry planarFigureGeometry,
const PlaneGeometry rendererGeometry,
const BaseRenderer renderer 
) const
protected

Returns the index of the marker (control point) over which the point contained in the passed event (in display coordinates) currently is; -1 if the point is not over a marker.

Definition at line 823 of file mitkPlanarFigureInteractor.cpp.

References mitk::PlanarFigure::GetControlPoint(), mitk::PlanarFigure::GetNumberOfControlPoints(), and mitk::InteractionPositionEvent::GetPointerPositionOnScreen().

Referenced by CheckControlPointHovering(), and SelectPoint().

int mitk::PlanarFigureInteractor::IsPositionOverFigure ( const InteractionPositionEvent positionEvent,
PlanarFigure planarFigure,
const PlaneGeometry planarFigureGeometry,
const PlaneGeometry rendererGeometry,
Point2D pointProjectedOntoLine 
) const
protected

Returns true if the point contained in the passed event (in display coordinates) is over the planar figure (with a pre-defined tolerance range); false otherwise.

Definition at line 771 of file mitkPlanarFigureInteractor.cpp.

References mitk::InteractionPositionEvent::GetPointerPositionOnScreen(), mitk::PlanarFigure::GetPolyLine(), mitk::PlanarFigure::GetPolyLinesSize(), mitk::InteractionEvent::GetSender(), and mitk::PlanarFigure::IsClosed().

void mitk::PlanarFigureInteractor::LogPrintPlanarFigureQuantities ( const PlanarFigure planarFigure)
protected
mitk::PlanarFigureInteractor::mitkClassMacro ( PlanarFigureInteractor  ,
DataInteractor   
)
static Pointer mitk::PlanarFigureInteractor::New ( )
static
void mitk::PlanarFigureInteractor::PerformPointResetOnSelect ( StateMachineAction ,
InteractionEvent interactionEvent 
)
protected
void mitk::PlanarFigureInteractor::RequestContextMenu ( StateMachineAction ,
InteractionEvent interactionEvent 
)
protected

Definition at line 635 of file mitkPlanarFigureInteractor.cpp.

void mitk::PlanarFigureInteractor::SelectFigure ( StateMachineAction ,
InteractionEvent interactionEvent 
)
protected

Definition at line 562 of file mitkPlanarFigureInteractor.cpp.

void mitk::PlanarFigureInteractor::SetMinimumPointDistance ( ScalarType  minimumDistance)

Sets the minimal distance between two control points.

Definition at line 694 of file mitkPlanarFigureInteractor.cpp.

void mitk::PlanarFigureInteractor::SetPrecision ( mitk::ScalarType  precision)

Sets the amount of precision.

Definition at line 689 of file mitkPlanarFigureInteractor.cpp.

void mitk::PlanarFigureInteractor::StartHovering ( StateMachineAction ,
InteractionEvent interactionEvent 
)
protected
bool mitk::PlanarFigureInteractor::TransformObjectToDisplay ( const mitk::Point2D point2D,
mitk::Point2D displayPoint,
const mitk::PlaneGeometry objectGeometry,
const mitk::PlaneGeometry rendererGeometry,
const mitk::BaseRenderer renderer 
) const
protected
bool mitk::PlanarFigureInteractor::TransformPositionEventToPoint2D ( const InteractionPositionEvent positionEvent,
const PlaneGeometry planarFigureGeometry,
Point2D point2D 
)
protected

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