Medical Imaging Interaction Toolkit
2018.4.99-389bf124
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... | |
![]() | |
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 |
![]() | |
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... | |
Static Public Member Functions | |
static Pointer | New () |
![]() | |
static const char * | GetStaticNameOfClass () |
static Pointer | New () |
![]() | |
static const char * | GetStaticNameOfClass () |
![]() | |
static const char * | GetStaticNameOfClass () |
Protected Member Functions | |
PlanarFigureInteractor () | |
~PlanarFigureInteractor () override | |
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) |
void | ConfigurationChanged () override |
![]() | |
DataInteractor () | |
~DataInteractor () override | |
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... | |
![]() | |
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) |
Interaction with mitk::PlanarFigure objects via control-points.
Definition at line 56 of file mitkPlanarFigureInteractor.h.
|
protected |
Definition at line 30 of file mitkPlanarFigureInteractor.cpp.
|
overrideprotected |
Definition at line 35 of file mitkPlanarFigureInteractor.cpp.
|
protected |
Definition at line 363 of file mitkPlanarFigureInteractor.cpp.
References mitk::SliceNavigationController::GetCurrentPlaneGeometry(), mitk::DataNode::GetData(), mitk::DataInteractor::GetDataNode(), mitk::RenderingManager::GetInstance(), mitk::InteractionEvent::GetSender(), mitk::BaseRenderer::GetSliceNavigationController(), mitk::RenderingManager::RequestUpdateAll(), mitk::DataNode::SetBoolProperty(), and TransformPositionEventToPoint2D().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 252 of file mitkPlanarFigureInteractor.cpp.
References mitk::BaseRenderer::GetCurrentWorldPlaneGeometry(), mitk::DataInteractor::GetDataNode(), mitk::RenderingManager::GetInstance(), mitk::InteractionEvent::GetSender(), IsPositionOverFigure(), mitk::RenderingManager::RequestUpdateAll(), and TransformPositionEventToPoint2D().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 516 of file mitkPlanarFigureInteractor.cpp.
References mitk::BaseRenderer::GetCurrentWorldPlaneGeometry(), mitk::DataNode::GetData(), mitk::DataInteractor::GetDataNode(), mitk::BaseData::GetGeometry(), mitk::InteractionEvent::GetSender(), and IsPositionInsideMarker().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 205 of file mitkPlanarFigureInteractor.cpp.
References mitk::DataNode::GetData(), mitk::DataInteractor::GetDataNode(), mitk::PlanarFigure::GetMaximumNumberOfControlPoints(), and mitk::PlanarFigure::GetNumberOfControlPoints().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 481 of file mitkPlanarFigureInteractor.cpp.
References mitk::BaseRenderer::GetCurrentWorldPlaneGeometry(), mitk::DataNode::GetData(), mitk::DataInteractor::GetDataNode(), mitk::InteractionEvent::GetSender(), and IsPositionOverFigure().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 219 of file mitkPlanarFigureInteractor.cpp.
References mitk::DataNode::GetBoolProperty(), and mitk::DataInteractor::GetDataNode().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 227 of file mitkPlanarFigureInteractor.cpp.
References mitk::DataNode::GetBoolProperty(), and mitk::DataInteractor::GetDataNode().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 211 of file mitkPlanarFigureInteractor.cpp.
References mitk::DataNode::GetBoolProperty(), and mitk::DataInteractor::GetDataNode().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 655 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlaneGeometry::Distance(), mitk::DataNode::GetData(), mitk::DataInteractor::GetDataNode(), mitk::BaseGeometry::GetExtentInMM(), and mitk::BaseData::GetGeometry().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 73 of file mitkPlanarFigureInteractor.cpp.
References mitk::DataNode::GetData(), mitk::DataInteractor::GetDataNode(), mitk::BaseData::GetPropertyList(), and mitk::PlanarFigure::IsPlaced().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 199 of file mitkPlanarFigureInteractor.cpp.
References mitk::DataNode::GetData(), mitk::DataInteractor::GetDataNode(), mitk::PlanarFigure::GetMinimumNumberOfControlPoints(), and mitk::PlanarFigure::GetNumberOfControlPoints().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 592 of file mitkPlanarFigureInteractor.cpp.
References mitk::DataNode::GetData(), mitk::DataInteractor::GetDataNode(), and IsMousePositionAcceptableAsNewControlPoint().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 644 of file mitkPlanarFigureInteractor.cpp.
References mitk::DataNode::GetBoolProperty(), mitk::DataNode::GetData(), and mitk::DataInteractor::GetDataNode().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 547 of file mitkPlanarFigureInteractor.cpp.
References mitk::DataNode::GetBoolProperty(), and mitk::DataInteractor::GetDataNode().
Referenced by ConnectActionsAndFunctions().
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 926 of file mitkPlanarFigureInteractor.cpp.
References mitk::InteractionEventHandler::GetAttributes().
|
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 39 of file mitkPlanarFigureInteractor.cpp.
References AddInitialPoint(), AddPoint(), CheckControlPointHovering(), CheckFigureFinished(), CheckFigureHovering(), CheckFigureIsDeletable(), CheckFigureIsEditable(), CheckFigureIsExtendable(), CheckFigureOnRenderingGeometry(), CheckFigurePlaced(), CheckMinimalFigureFinished(), CheckPointValidity(), CheckResetOnPointSelect(), CheckSelection(), CONNECT_CONDITION, CONNECT_FUNCTION, DeleteFigure(), DeselectPoint(), EndHovering(), EndInteraction(), FinalizeFigure(), HideControlPoints(), HidePreviewPoint(), MoveCurrentPoint(), PerformPointResetOnSelect(), RemoveSelectedPoint(), RequestContextMenu(), SelectFigure(), SelectPoint(), SetPreviewPointPosition(), and StartHovering().
|
protected |
Definition at line 183 of file mitkPlanarFigureInteractor.cpp.
References mitk::DataNode::GetData(), mitk::DataInteractor::GetDataNode(), mitk::BaseRenderer::GetDataStorage(), mitk::RenderingManager::GetInstance(), mitk::InteractionEvent::GetSender(), and mitk::RenderingManager::RequestUpdateAll().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 235 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlanarFigure::DeselectControlPoint(), mitk::DataNode::GetData(), mitk::DataInteractor::GetDataNode(), and mitk::DataNode::SetBoolProperty().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 168 of file mitkPlanarFigureInteractor.cpp.
References mitk::DataNode::GetData(), mitk::DataInteractor::GetDataNode(), mitk::RenderingManager::GetInstance(), mitk::RenderingManager::RequestUpdateAll(), mitk::PlanarFigure::ResetPreviewContolPoint(), and mitk::DataNode::SetBoolProperty().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 149 of file mitkPlanarFigureInteractor.cpp.
References mitk::DataNode::GetData(), mitk::DataInteractor::GetDataNode(), mitk::RenderingManager::GetInstance(), mitk::RenderingManager::RequestUpdateAll(), and mitk::DataNode::SetBoolProperty().
Referenced by ConnectActionsAndFunctions().
|
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 158 of file mitkPlanarFigureInteractor.cpp.
References mitk::BaseRenderer::GetMapperID(), mitk::InteractionEvent::GetSender(), and mitk::BaseRenderer::Standard3D.
|
protected |
Definition at line 130 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlanarFigure::DeselectControlPoint(), mitk::DataNode::GetData(), mitk::DataInteractor::GetDataNode(), mitk::RenderingManager::GetInstance(), mitk::BoolProperty::New(), mitk::RenderingManager::RequestUpdateAll(), and mitk::DataNode::SetBoolProperty().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 469 of file mitkPlanarFigureInteractor.cpp.
References mitk::DataInteractor::GetDataNode(), and mitk::DataNode::SetBoolProperty().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 474 of file mitkPlanarFigureInteractor.cpp.
References mitk::DataNode::GetData(), mitk::DataInteractor::GetDataNode(), mitk::RenderingManager::GetInstance(), mitk::RenderingManager::RequestUpdateAll(), and mitk::PlanarFigure::ResetPreviewContolPoint().
Referenced by ConnectActionsAndFunctions().
|
protected |
Used when clicking to determine if a point is too close to the previous point.
Definition at line 855 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(), TransformPositionEventToPoint2D(), and mitk::BaseRenderer::WorldToDisplay().
Referenced by CheckPointValidity().
|
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 733 of file mitkPlanarFigureInteractor.cpp.
Referenced by IsPositionOverFigure().
|
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 816 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlanarFigure::GetControlPoint(), mitk::PlanarFigure::GetNumberOfControlPoints(), mitk::InteractionPositionEvent::GetPointerPositionOnScreen(), and TransformObjectToDisplay().
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 764 of file mitkPlanarFigureInteractor.cpp.
References mitk::InteractionPositionEvent::GetPointerPositionOnScreen(), mitk::PlanarFigure::GetPolyLine(), mitk::PlanarFigure::GetPolyLinesSize(), mitk::InteractionEvent::GetSender(), mitk::PlanarFigure::IsClosed(), IsPointNearLine(), and TransformObjectToDisplay().
Referenced by AddPoint(), and CheckFigureHovering().
|
protected |
Definition at line 845 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 83 of file mitkPlanarFigureInteractor.cpp.
References mitk::DataNode::GetBoolProperty(), mitk::DataNode::GetData(), mitk::DataInteractor::GetDataNode(), mitk::RenderingManager::GetInstance(), mitk::RenderingManager::RequestUpdateAll(), mitk::DataNode::SetBoolProperty(), and TransformPositionEventToPoint2D().
Referenced by ConnectActionsAndFunctions().
|
static |
|
protected |
Definition at line 193 of file mitkPlanarFigureInteractor.cpp.
References mitk::DataNode::GetData(), mitk::DataInteractor::GetDataNode(), and mitk::PlanarFigure::ResetOnPointSelect().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 609 of file mitkPlanarFigureInteractor.cpp.
References mitk::DataNode::GetData(), mitk::DataInteractor::GetDataNode(), mitk::RenderingManager::GetInstance(), mitk::InteractionEvent::GetSender(), mitk::EventStateMachine::HandleEvent(), mitk::InternalEvent::New(), mitk::RenderingManager::RequestUpdateAll(), and mitk::DataNode::SetBoolProperty().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 628 of file mitkPlanarFigureInteractor.cpp.
References mitk::DataNode::GetBoolProperty(), mitk::DataNode::GetData(), and mitk::DataInteractor::GetDataNode().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 555 of file mitkPlanarFigureInteractor.cpp.
References mitk::DataNode::GetData(), and mitk::DataInteractor::GetDataNode().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 561 of file mitkPlanarFigureInteractor.cpp.
References mitk::BaseRenderer::GetCurrentWorldPlaneGeometry(), mitk::DataNode::GetData(), mitk::DataInteractor::GetDataNode(), mitk::InteractionEvent::GetSender(), and IsPositionInsideMarker().
Referenced by ConnectActionsAndFunctions().
void mitk::PlanarFigureInteractor::SetMinimumPointDistance | ( | ScalarType | minimumDistance | ) |
Sets the minimal distance between two control points.
Definition at line 687 of file mitkPlanarFigureInteractor.cpp.
void mitk::PlanarFigureInteractor::SetPrecision | ( | mitk::ScalarType | precision | ) |
Sets the amount of precision.
Definition at line 682 of file mitkPlanarFigureInteractor.cpp.
|
protected |
Definition at line 439 of file mitkPlanarFigureInteractor.cpp.
References mitk::BaseRenderer::DisplayToPlane(), mitk::DataNode::GetBoolProperty(), mitk::DataNode::GetData(), mitk::DataInteractor::GetDataNode(), mitk::RenderingManager::GetInstance(), mitk::InteractionPositionEvent::GetPointerPositionOnScreen(), mitk::InteractionEvent::GetSender(), and mitk::RenderingManager::RequestUpdateAll().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 417 of file mitkPlanarFigureInteractor.cpp.
References mitk::DataNode::GetData(), mitk::DataInteractor::GetDataNode(), mitk::RenderingManager::GetInstance(), mitk::RenderingManager::RequestUpdateAll(), and mitk::DataNode::SetBoolProperty().
Referenced by ConnectActionsAndFunctions().
|
protected |
Definition at line 709 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlaneGeometry::Distance(), mitk::BaseGeometry::GetExtentInMM(), mitk::PlaneGeometry::Map(), and mitk::BaseRenderer::WorldToDisplay().
Referenced by IsPositionInsideMarker(), and IsPositionOverFigure().
|
protected |
Definition at line 692 of file mitkPlanarFigureInteractor.cpp.
References mitk::PlaneGeometry::Distance(), mitk::InteractionPositionEvent::GetPositionInWorld(), and mitk::PlaneGeometry::Map().
Referenced by AddInitialPoint(), AddPoint(), IsMousePositionAcceptableAsNewControlPoint(), and MoveCurrentPoint().