Allows you to specify which handles are used by this handles provider.
More...
#include <luciad/edit/geometries/PolylineRingHandlesProvider.h>
|
virtual | ~IHandleFactory ()=default |
|
virtual std::shared_ptr< IEditHandle > | createInsertPointHandle (const std::shared_ptr< Observable< std::shared_ptr< PolylineRing > > > &polylineRing, size_t insertIndex, const std::shared_ptr< IPointEditAction > &editAction, const std::shared_ptr< FeatureEditContext > &context)=0 |
| Creates a handle that allows you to insert a new point in a PolylineRing. More...
|
|
virtual std::shared_ptr< IEditHandle > | createMovePointHandle (const std::shared_ptr< Observable< std::shared_ptr< PolylineRing > > > &polylineRing, size_t pointIndex, const std::shared_ptr< IPointEditAction > &editAction, const std::shared_ptr< FeatureEditContext > &context)=0 |
| Creates a handle that allows you to move a point of the PolylineRing. More...
|
|
virtual std::shared_ptr< IEditHandle > | createRemovePointHandle (const std::shared_ptr< Observable< std::shared_ptr< PolylineRing > > > &polylineRing, size_t pointIndex, const std::shared_ptr< IPointEditAction > &editAction, const std::shared_ptr< FeatureEditContext > &context)=0 |
| Creates a handle that allows you to remove a point of the PolylineRing. More...
|
|
virtual bool | isInsertPointHandleValid (const std::shared_ptr< IEditHandle > &insertPointHandle, const std::shared_ptr< Observable< std::shared_ptr< PolylineRing > > > &polylineRing, size_t insertIndex, const std::shared_ptr< FeatureEditContext > &context)=0 |
| Returns true if the given handle is still valid, or false if it should be removed. More...
|
|
virtual bool | isMovePointHandleValid (const std::shared_ptr< IEditHandle > &movePointHandle, const std::shared_ptr< Observable< std::shared_ptr< PolylineRing > > > &polylineRing, size_t pointIndex, const std::shared_ptr< FeatureEditContext > &context)=0 |
| Returns true if the given handle is still valid, or false if it should be removed. More...
|
|
virtual bool | isRemovePointHandleValid (const std::shared_ptr< IEditHandle > &removePointHandle, const std::shared_ptr< Observable< std::shared_ptr< PolylineRing > > > &polylineRing, size_t pointIndex, const std::shared_ptr< FeatureEditContext > &context)=0 |
| Returns true if the given handle is still valid, or false if it should be removed. More...
|
|
Allows you to specify which handles are used by this handles provider.
It allows you to
- replace handles with other handle implementations
- (dynamically) disable or re-enable specific handles
Additional handles can not be added using this factory. The way to do this is to wrap the IEditHandles
provided by PolylineRingHandlesProvider
, and to insert additional handles in the IEditHandles::getList
method.
◆ ~IHandleFactory()
virtual luciad::PolylineRingHandlesProvider::IHandleFactory::~IHandleFactory |
( |
| ) |
|
|
virtualdefault |
◆ createInsertPointHandle()
virtual std::shared_ptr< IEditHandle > luciad::PolylineRingHandlesProvider::IHandleFactory::createInsertPointHandle |
( |
const std::shared_ptr< Observable< std::shared_ptr< PolylineRing > > > & |
polylineRing, |
|
|
size_t |
insertIndex, |
|
|
const std::shared_ptr< IPointEditAction > & |
editAction, |
|
|
const std::shared_ptr< FeatureEditContext > & |
context |
|
) |
| |
|
pure virtual |
Creates a handle that allows you to insert a new point in a PolylineRing.
While the handle is not already present, this method is called whenever the edited geometry changes.
- Parameters
-
polylineRing | the Geometry that is being edited |
insertIndex | the index at which to insert a point in the Polyline. After the point is inserted, the new point will have this index. Values are within [1, pointCount] . |
editAction | the edit action that inserts the point. If a constraint was configured on the handles provider, this action applies that constraint when it is executed, providing a PolylineChange parameter with one inserted point index . |
context | the context |
- Returns
- a new handle, or
nullptr
if no handle should be used
◆ createMovePointHandle()
Creates a handle that allows you to move a point of the PolylineRing.
While the handle is not already present, this method is called whenever the edited geometry changes.
- Parameters
-
polylineRing | the Geometry that is being edited |
pointIndex | the index of the point to move |
editAction | the move-point edit action, to be used by the handle. If a constraint was configured on the handles provider, this action applies that constraint when it is executed, providing a PolylineChange parameter with one moved point index . |
context | the context |
- Returns
- a new handle, or
nullptr
if no handle should be used
◆ createRemovePointHandle()
virtual std::shared_ptr< IEditHandle > luciad::PolylineRingHandlesProvider::IHandleFactory::createRemovePointHandle |
( |
const std::shared_ptr< Observable< std::shared_ptr< PolylineRing > > > & |
polylineRing, |
|
|
size_t |
pointIndex, |
|
|
const std::shared_ptr< IPointEditAction > & |
editAction, |
|
|
const std::shared_ptr< FeatureEditContext > & |
context |
|
) |
| |
|
pure virtual |
Creates a handle that allows you to remove a point of the PolylineRing.
While the handle is not already present, this method is called whenever the edited geometry changes.
- Parameters
-
polylineRing | the Geometry that is being edited |
pointIndex | the index of the point to remove |
editAction | the remove-point edit action, to be used by the handle. If a constraint was configured on the handles provider, this action applies that constraint when it is executed, providing a PolylineChange parameter with one removed point index . |
context | the context |
- Returns
- a new handle, or
nullptr
if no handle should be used
◆ isInsertPointHandleValid()
virtual bool luciad::PolylineRingHandlesProvider::IHandleFactory::isInsertPointHandleValid |
( |
const std::shared_ptr< IEditHandle > & |
insertPointHandle, |
|
|
const std::shared_ptr< Observable< std::shared_ptr< PolylineRing > > > & |
polylineRing, |
|
|
size_t |
insertIndex, |
|
|
const std::shared_ptr< FeatureEditContext > & |
context |
|
) |
| |
|
pure virtual |
Returns true if the given handle is still valid, or false if it should be removed.
This method is called whenever the edited geometry changes and allows the factory to dynamically disable or re-create specific edit handles. When this method returns false, the handle is removed and createInsertPointHandle
is called, in case the handle should immediately be re-created. If the handle should remain absent, make sure to also return nullptr
in that method.
- Parameters
-
insertPointHandle | the handle |
polylineRing | the Geometry that is being edited |
insertIndex | the insertion index |
context | the context |
- Returns
- true if the given handle is still valid, or false if it should be removed.
◆ isMovePointHandleValid()
virtual bool luciad::PolylineRingHandlesProvider::IHandleFactory::isMovePointHandleValid |
( |
const std::shared_ptr< IEditHandle > & |
movePointHandle, |
|
|
const std::shared_ptr< Observable< std::shared_ptr< PolylineRing > > > & |
polylineRing, |
|
|
size_t |
pointIndex, |
|
|
const std::shared_ptr< FeatureEditContext > & |
context |
|
) |
| |
|
pure virtual |
Returns true if the given handle is still valid, or false if it should be removed.
This method is called whenever the edited geometry changes and allows the factory to dynamically disable or re-create specific edit handles. When this method returns false, the handle is removed and createMovePointHandle
is called, in case the handle should immediately be re-created. If the handle should remain absent, make sure to also return nullptr
in that method.
- Parameters
-
movePointHandle | the handle |
polylineRing | the Geometry that is being edited |
pointIndex | the index of the point |
context | the context |
- Returns
- true if the given handle is still valid, or false if it should be removed.
◆ isRemovePointHandleValid()
virtual bool luciad::PolylineRingHandlesProvider::IHandleFactory::isRemovePointHandleValid |
( |
const std::shared_ptr< IEditHandle > & |
removePointHandle, |
|
|
const std::shared_ptr< Observable< std::shared_ptr< PolylineRing > > > & |
polylineRing, |
|
|
size_t |
pointIndex, |
|
|
const std::shared_ptr< FeatureEditContext > & |
context |
|
) |
| |
|
pure virtual |
Returns true if the given handle is still valid, or false if it should be removed.
This method is called whenever the edited geometry changes and allows the factory to dynamically disable or re-create specific edit handles. When this method returns false, the handle is removed and createRemovePointHandle
is called, in case the handle should immediately be re-created. If the handle should remain absent, make sure to also return nullptr
in that method.
- Parameters
-
removePointHandle | the handle |
polylineRing | the Geometry that is being edited |
pointIndex | the index of the point |
context | the context |
- Returns
- true if the given handle is still valid, or false if it should be removed.