Add interactive matplotlib selector to PolygonPixelRegion
#406
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As next part of the work on interactive regions #391 this PR adds an
as_mpl_selector
widget to thePolygonPixelRegion
class to allow moving and resizing through thedraw_box
functionality added toPolygonSelector
in matplotlib/matplotlib#21830, as well as reshaping by direct manipulation of the vertices. Thedraw_box
handles are working analogously to the selector methods for Rectangle and Ellipse PixelRegions.Rotation is not yet included, but can be added once the mpl PR or a follow-up supports this. A
centroid
method is already included to provide a robust and rotation-invariant reference point.The connected
PolygonSelector
isinstantiated in a rather pedestrian manner, using several private methods, which should perhaps be replaced by a public method on the matplotlib side.using the newverts.setter
method for updating the vertices; tiny remaining quirk is the bounding box not being displayed after creation, but only after the first event inside.