Medical Imaging Interaction Toolkit
2016.11.0
Medical Imaging Interaction Toolkit
|
Interaction with mitk::PlanarFigure objects via control-points. More...
#include <mitkPlanarFigureInteractor.h>
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 |
DataNode * | GetDataNode () 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) |
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... | |
Protected Member Functions inherited from mitk::InteractionEventHandler | |
InteractionEventHandler () | |
virtual | ~InteractionEventHandler () |
PropertyList::Pointer | GetAttributes () const |
std::string | MapToEventVariant (InteractionEvent *interactionEvent) |
Interaction with mitk::PlanarFigure objects via control-points.
Definition at line 60 of file mitkPlanarFigureInteractor.h.
|
protected |
Definition at line 34 of file mitkPlanarFigureInteractor.cpp.
|
protectedvirtual |
Definition at line 39 of file mitkPlanarFigureInteractor.cpp.
|
protected |
Definition at line 367 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlanarFigure::EvaluateFeatures(), mitk::SliceNavigationController::GetCurrentPlaneGeometry(), mitk::BaseData::GetGeometry(), mitk::BaseRenderer::GetRenderingManager(), mitk::InteractionEvent::GetSender(), mitk::BaseRenderer::GetSliceNavigationController(), mitk::PlanarFigure::PlaceFigure(), mitk::RenderingManager::RequestUpdateAll(), and mitk::PlanarFigure::SetPlaneGeometry().
|
protected |
Definition at line 256 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlanarFigure::AddControlPoint(), mitk::PlanarFigure::EvaluateFeatures(), mitk::PlanarFigure::GetControlPointForPolylinePoint(), mitk::BaseRenderer::GetCurrentWorldPlaneGeometry(), mitk::BaseData::GetGeometry(), mitk::PlanarFigure::GetMaximumNumberOfControlPoints(), mitk::PlanarFigure::GetNumberOfControlPoints(), mitk::PlanarFigure::GetPlaneGeometry(), mitk::PlanarFigure::GetPreviewControlPoint(), mitk::BaseRenderer::GetRenderingManager(), mitk::InteractionEvent::GetSender(), mitk::PlanarFigure::IsPreviewControlPointVisible(), mitk::RenderingManager::RequestUpdateAll(), mitk::PlanarFigure::ResetPreviewContolPoint(), and mitk::PlanarFigure::SelectControlPoint().
|
protected |
Definition at line 523 of file mitkPlanarFigureInteractor.cpp.
References mitk::BaseRenderer::GetCurrentWorldPlaneGeometry(), mitk::BaseData::GetGeometry(), mitk::InteractionEvent::GetSender(), and IsPositionInsideMarker().
|
protected |
Definition at line 209 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlanarFigure::GetMaximumNumberOfControlPoints(), and mitk::PlanarFigure::GetNumberOfControlPoints().
|
protected |
Definition at line 488 of file mitkPlanarFigureInteractor.cpp.
References mitk::BaseRenderer::GetCurrentWorldPlaneGeometry(), mitk::BaseData::GetGeometry(), mitk::PlanarFigure::GetPlaneGeometry(), and mitk::InteractionEvent::GetSender().
|
protected |
Definition at line 223 of file mitkPlanarFigureInteractor.cpp.
|
protected |
Definition at line 231 of file mitkPlanarFigureInteractor.cpp.
|
protected |
Definition at line 215 of file mitkPlanarFigureInteractor.cpp.
|
protected |
Definition at line 662 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlaneGeometry::Distance(), mitk::BaseGeometry::GetExtentInMM(), mitk::BaseData::GetGeometry(), and mitk::InteractionPositionEvent::GetPositionInWorld().
|
protected |
Definition at line 77 of file mitkPlanarFigureInteractor.cpp.
References mitk::BaseData::GetPropertyList(), and mitk::PlanarFigure::IsPlaced().
|
protected |
Definition at line 203 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlanarFigure::GetMinimumNumberOfControlPoints(), and mitk::PlanarFigure::GetNumberOfControlPoints().
|
protected |
Definition at line 599 of file mitkPlanarFigureInteractor.cpp.
|
protected |
Definition at line 651 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlanarFigure::ResetOnPointSelectNeeded().
|
protected |
Definition at line 554 of file mitkPlanarFigureInteractor.cpp.
Pointer mitk::PlanarFigureInteractor::Clone | ( | ) | const |
|
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.
|
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.
|
protected |
Definition at line 187 of file mitkPlanarFigureInteractor.cpp.
References mitk::BaseRenderer::GetDataStorage(), mitk::BaseRenderer::GetRenderingManager(), mitk::InteractionEvent::GetSender(), and mitk::RenderingManager::RequestUpdateAll().
|
protected |
Definition at line 239 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlanarFigure::DeselectControlPoint().
|
protected |
Definition at line 172 of file mitkPlanarFigureInteractor.cpp.
References mitk::BaseRenderer::GetRenderingManager(), mitk::InteractionEvent::GetSender(), mitk::RenderingManager::RequestUpdateAll(), and mitk::PlanarFigure::ResetPreviewContolPoint().
|
protected |
Definition at line 153 of file mitkPlanarFigureInteractor.cpp.
References mitk::BaseRenderer::GetRenderingManager(), mitk::InteractionEvent::GetSender(), and mitk::RenderingManager::RequestUpdateAll().
|
overrideprotectedvirtual |
Implements filter scheme for events. Standard implementation accepts events from 2d and 3d windows, and rejects events if DataNode is not visible.
Overwrite this function to adapt for your own needs, for example to filter out events from 3d windows like this:
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.
|
protected |
Definition at line 134 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlanarFigure::DeselectControlPoint(), mitk::PlanarFigure::EvaluateFeatures(), mitk::BaseRenderer::GetRenderingManager(), mitk::InteractionEvent::GetSender(), mitk::BoolProperty::New(), mitk::PlanarFigure::RemoveLastControlPoint(), mitk::RenderingManager::RequestUpdateAll(), and mitk::BaseData::SetProperty().
|
protected |
Definition at line 474 of file mitkPlanarFigureInteractor.cpp.
|
protected |
Definition at line 479 of file mitkPlanarFigureInteractor.cpp.
References mitk::BaseRenderer::GetRenderingManager(), mitk::InteractionEvent::GetSender(), mitk::RenderingManager::RequestUpdateAll(), and mitk::PlanarFigure::ResetPreviewContolPoint().
|
protected |
Used when clicking to determine if a point is too close to the previous point.
Definition at line 862 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlaneGeometry::Distance(), mitk::PlanarFigure::GetControlPoint(), mitk::BaseRenderer::GetCurrentWorldPlaneGeometry(), mitk::BaseData::GetGeometry(), mitk::PlanarFigure::GetNumberOfControlPoints(), mitk::PlanarFigure::GetSelectedControlPoint(), mitk::InteractionEvent::GetSender(), mitk::BaseRenderer::GetTimeStep(), mitk::PlaneGeometry::Map(), and mitk::BaseRenderer::WorldToDisplay().
|
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.
|
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().
|
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().
|
protected |
Definition at line 852 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlanarFigure::GetFeatureName(), mitk::PlanarFigure::GetFeatureUnit(), mitk::PlanarFigure::GetNumberOfFeatures(), mitk::PlanarFigure::GetQuantity(), and MITK_INFO.
mitk::PlanarFigureInteractor::mitkClassMacro | ( | PlanarFigureInteractor | , |
DataInteractor | |||
) |
|
protected |
Definition at line 87 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlanarFigure::EvaluateFeatures(), mitk::BaseData::GetGeometry(), mitk::PlanarFigure::GetPlaneGeometry(), mitk::BaseRenderer::GetRenderingManager(), mitk::InteractionEvent::GetSender(), mitk::RenderingManager::RequestUpdateAll(), and mitk::PlanarFigure::SetCurrentControlPoint().
|
static |
|
protected |
Definition at line 197 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlanarFigure::ResetOnPointSelect().
|
protected |
Definition at line 616 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlanarFigure::EvaluateFeatures(), mitk::BaseRenderer::GetRenderingManager(), mitk::PlanarFigure::GetSelectedControlPoint(), mitk::InteractionEvent::GetSender(), mitk::InternalEvent::New(), mitk::PlanarFigure::RemoveControlPoint(), and mitk::RenderingManager::RequestUpdateAll().
|
protected |
Definition at line 635 of file mitkPlanarFigureInteractor.cpp.
|
protected |
Definition at line 562 of file mitkPlanarFigureInteractor.cpp.
|
protected |
Definition at line 568 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlanarFigure::DeselectControlPoint(), mitk::BaseRenderer::GetCurrentWorldPlaneGeometry(), mitk::BaseData::GetGeometry(), mitk::InteractionEvent::GetSender(), IsPositionInsideMarker(), and mitk::PlanarFigure::SelectControlPoint().
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.
|
protected |
Definition at line 444 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlanarFigure::DeselectControlPoint(), mitk::BaseRenderer::DisplayToPlane(), mitk::InteractionPositionEvent::GetPointerPositionOnScreen(), mitk::BaseRenderer::GetRenderingManager(), mitk::InteractionEvent::GetSender(), mitk::RenderingManager::RequestUpdateAll(), and mitk::PlanarFigure::SetPreviewControlPoint().
|
protected |
Definition at line 421 of file mitkPlanarFigureInteractor.cpp.
References mitk::BaseRenderer::GetRenderingManager(), mitk::InteractionEvent::GetSender(), and mitk::RenderingManager::RequestUpdateAll().
|
protected |
Definition at line 716 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlaneGeometry::Distance(), mitk::BaseGeometry::GetExtentInMM(), mitk::PlaneGeometry::Map(), and mitk::BaseRenderer::WorldToDisplay().
|
protected |
Definition at line 699 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlaneGeometry::Distance(), mitk::InteractionPositionEvent::GetPositionInWorld(), and mitk::PlaneGeometry::Map().