Inkscape
Vector Graphics Editor
|
Group of selected control points. More...
#include <control-point-selection.h>
Public Types | |
using | set_type = std::unordered_set< SelectableControlPoint * > |
using | Set = set_type |
using | iterator = set_type::iterator |
using | const_iterator = set_type::const_iterator |
using | size_type = set_type::size_type |
using | value_type = SelectableControlPoint * |
using | key_type = SelectableControlPoint * |
Public Member Functions | |
ControlPointSelection (SPDesktop *d, Inkscape::CanvasItemGroup *th_group) | |
~ControlPointSelection () override | |
bool | empty () const |
size_type | size () const |
iterator | begin () |
const_iterator | begin () const |
iterator | end () |
const_iterator | end () const |
std::pair< iterator, bool > | insert (const value_type &x, bool notify=true, bool to_update=true) |
Add a control point to the selection. | |
template<class InputIterator > | |
void | insert (InputIterator first, InputIterator last) |
void | clear () |
Remove all points from the selection, making it empty. | |
void | erase (iterator pos, bool to_update=true) |
Remove a point from the selection. | |
size_type | erase (const key_type &k, bool notify=true) |
void | erase (iterator first, iterator last) |
iterator | find (const key_type &k) |
set_type const & | allPoints () const |
set_type & | allPoints () |
void | selectAll () |
Select all points that this selection can contain. | |
void | selectArea (Geom::Path const &, bool invert=false) |
Select all points inside the given rectangle (in desktop coordinates). | |
void | invertSelection () |
Unselect all selected points and select all unselected points. | |
void | spatialGrow (SelectableControlPoint *origin, int dir) |
bool | event (Inkscape::UI::Tools::ToolBase *tool, CanvasEvent const &event) override |
Handle input event. Returns true if handled. | |
void | transform (Geom::Affine const &m) |
Transform all selected control points by the given affine transformation. | |
void | align (Geom::Dim2 d, AlignTargetNode target=AlignTargetNode::MID_NODE) |
Align control points on the specified axis. | |
void | distribute (Geom::Dim2 d) |
Equdistantly distribute control points by moving them in the specified dimension. | |
Geom::OptRect | pointwiseBounds () |
Get the bounds of the selection. | |
Geom::OptRect | bounds () |
std::optional< Geom::Point > | firstSelectedPoint () const |
The first selected point is the first selection a user makes, but only if they selected exactly one point. | |
bool | transformHandlesEnabled () |
void | showTransformHandles (bool v, bool one_node) |
void | hideTransformHandles () |
void | restoreTransformHandles () |
void | toggleTransformHandlesMode () |
void | getOriginalPoints (std::vector< Inkscape::SnapCandidatePoint > &pts) |
void | getUnselectedPoints (std::vector< Inkscape::SnapCandidatePoint > &pts) |
void | setOriginalPoints () |
![]() | |
Manipulator (SPDesktop *d) | |
virtual | ~Manipulator ()=default |
Public Attributes | |
sigc::signal< void()> | signal_update |
Fires when the display needs to be updated to reflect changes. | |
sigc::signal< void(std::vector< SelectableControlPoint * >, bool)> | signal_selection_changed |
sigc::signal< void(CommitEvent)> | signal_commit |
Fires when a change that needs to be committed to XML happens. | |
std::list< SelectableControlPoint * > | _points_list |
![]() | |
SPDesktop *const | _desktop |
Private Member Functions | |
void | _pointGrabbed (SelectableControlPoint *) |
void | _pointDragged (Geom::Point &, MotionEvent const &) |
void | _pointUngrabbed () |
bool | _pointClicked (SelectableControlPoint *, ButtonReleaseEvent const &) |
void | _mouseoverChanged () |
void | _update () |
void | _updateTransformHandles (bool preserve_center) |
void | _updateBounds () |
bool | _keyboardMove (KeyPressEvent const &, Geom::Point const &) |
Moves the selected points along the supplied unit vector according to the modifier state of the supplied event. | |
bool | _keyboardRotate (KeyPressEvent const &, int) |
Rotates the selected points in the given direction according to the modifier state from the supplied event. | |
bool | _keyboardScale (KeyPressEvent const &, int) |
bool | _keyboardFlip (Geom::Dim2) |
void | _keyboardTransform (Geom::Affine const &) |
void | _commitHandlesTransform (CommitEvent ce) |
double | _rotationRadius (Geom::Point const &) |
Computes the distance to the farthest corner of the bounding box. | |
Private Attributes | |
set_type | _points |
set_type | _all_points |
std::unordered_map< SelectableControlPoint *, Geom::Point > | _original_positions |
std::unordered_map< SelectableControlPoint *, Geom::Affine > | _last_trans |
std::optional< double > | _rot_radius |
std::optional< double > | _mouseover_rot_radius |
std::optional< Geom::Point > | _first_point |
Geom::OptRect | _bounds |
TransformHandleSet * | _handles |
SelectableControlPoint * | _grabbed_point |
SelectableControlPoint * | _farthest_point |
unsigned | _dragging: 1 |
unsigned | _handles_visible: 1 |
unsigned | _one_node_handles: 1 |
Friends | |
class | SelectableControlPoint |
Group of selected control points.
Some operations can be performed on all selected points regardless of their type, therefore this class is also a Manipulator. It handles the transformations of points using the keyboard.
The exposed interface is similar to that of an STL set. Internally, a hash map is used.
Definition at line 42 of file control-point-selection.h.
using Inkscape::UI::ControlPointSelection::const_iterator = set_type::const_iterator |
Definition at line 53 of file control-point-selection.h.
using Inkscape::UI::ControlPointSelection::iterator = set_type::iterator |
Definition at line 52 of file control-point-selection.h.
Definition at line 56 of file control-point-selection.h.
Definition at line 50 of file control-point-selection.h.
using Inkscape::UI::ControlPointSelection::set_type = std::unordered_set<SelectableControlPoint*> |
Definition at line 49 of file control-point-selection.h.
using Inkscape::UI::ControlPointSelection::size_type = set_type::size_type |
Definition at line 54 of file control-point-selection.h.
Definition at line 55 of file control-point-selection.h.
Inkscape::UI::ControlPointSelection::ControlPointSelection | ( | SPDesktop * | d, |
Inkscape::CanvasItemGroup * | th_group | ||
) |
Definition at line 53 of file control-point-selection.cpp.
References _commitHandlesTransform(), _handles, _mouseoverChanged(), _updateTransformHandles(), Inkscape::UI::TransformHandleSet::signal_commit, Inkscape::UI::ControlPoint::signal_mouseover_change, Inkscape::UI::TransformHandleSet::signal_transform, signal_update, and transform().
|
override |
Definition at line 72 of file control-point-selection.cpp.
|
private |
Definition at line 682 of file control-point-selection.cpp.
References _updateBounds(), _updateTransformHandles(), and signal_commit.
Referenced by ControlPointSelection().
|
private |
Definition at line 661 of file control-point-selection.cpp.
References _handles, Inkscape::UI::COMMIT_FLIP_X, Inkscape::UI::COMMIT_FLIP_Y, empty(), Inkscape::UI::ControlPoint::mouseovered_point, Inkscape::UI::ControlPoint::position(), Inkscape::UI::TransformHandleSet::rotationCenter(), signal_commit, transform(), and Geom::X.
Referenced by event().
|
private |
Moves the selected points along the supplied unit vector according to the modifier state of the supplied event.
Definition at line 534 of file control-point-selection.cpp.
References Inkscape::UI::Manipulator::_desktop, Inkscape::UI::COMMIT_KEYBOARD_MOVE_X, Inkscape::UI::COMMIT_KEYBOARD_MOVE_Y, SPDesktop::current_rotation(), SPDesktop::current_zoom(), delta, event(), Inkscape::Preferences::get(), Inkscape::UI::Tools::gobble_key_events(), Geom::Rotate::inverse(), Inkscape::mod_alt(), Inkscape::mod_ctrl(), Inkscape::mod_shift(), num, signal_commit, transform(), and Geom::Point::x().
Referenced by event().
|
private |
Rotates the selected points in the given direction according to the modifier state from the supplied event.
event | Key event to take modifier state from |
dir | Direction of rotation (math convention: 1 = counterclockwise, -1 = clockwise) |
Definition at line 582 of file control-point-selection.cpp.
References Inkscape::UI::Manipulator::_desktop, _handles, _mouseover_rot_radius, _rot_radius, _rotationRadius(), Inkscape::UI::COMMIT_KEYBOARD_ROTATE, SPDesktop::current_zoom(), empty(), event(), Inkscape::Preferences::get(), Inkscape::Preferences::getIntLimited(), Inkscape::mod_alt(), Inkscape::UI::ControlPoint::mouseovered_point, Inkscape::UI::ControlPoint::position(), rc, Inkscape::UI::TransformHandleSet::rotationCenter(), signal_commit, and transform().
Referenced by event().
|
private |
Definition at line 627 of file control-point-selection.cpp.
References Inkscape::UI::Manipulator::_desktop, _handles, Geom::are_near(), bounds(), Inkscape::UI::COMMIT_KEYBOARD_SCALE_UNIFORM, SPDesktop::current_zoom(), empty(), event(), Inkscape::Preferences::get(), Inkscape::Preferences::getDoubleLimited(), Inkscape::mod_alt(), Inkscape::UI::ControlPoint::mouseovered_point, Inkscape::UI::ControlPoint::position(), Inkscape::UI::TransformHandleSet::rotationCenter(), scale, signal_commit, and transform().
Referenced by event().
|
private |
|
private |
Definition at line 479 of file control-point-selection.cpp.
References _mouseover_rot_radius.
Referenced by ControlPointSelection().
|
private |
Definition at line 468 of file control-point-selection.cpp.
References _handles_visible, event(), Inkscape::mod_none(), Inkscape::UI::SelectableControlPoint::selected(), and toggleTransformHandlesMode().
Referenced by Inkscape::UI::SelectableControlPoint::clicked().
|
private |
Definition at line 392 of file control-point-selection.cpp.
References _farthest_point, _grabbed_point, _handles, _last_trans, _original_positions, _points, delta, Geom::distance(), Geom::EPSILON, event(), Geom::Affine::inverse(), Geom::Affine::isSingular(), Inkscape::mod_alt_only(), Inkscape::UI::ControlPoint::move(), Inkscape::UI::ControlPoint::position(), Inkscape::UI::TransformHandleSet::rotationCenter(), Geom::Affine::setIdentity(), signal_update, Geom::X, and Geom::Y.
Referenced by Inkscape::UI::SelectableControlPoint::dragged().
|
private |
Definition at line 372 of file control-point-selection.cpp.
References _dragging, _farthest_point, _grabbed_point, _last_trans, _original_positions, _points, Geom::distance(), hideTransformHandles(), Inkscape::UI::ControlPoint::position(), and Geom::Affine::setIdentity().
Referenced by Inkscape::UI::SelectableControlPoint::grabbed().
|
private |
Definition at line 456 of file control-point-selection.cpp.
References Inkscape::UI::Manipulator::_desktop, _dragging, _farthest_point, _grabbed_point, _last_trans, _original_positions, _updateBounds(), Inkscape::UI::COMMIT_MOUSE_MOVE, SPDesktop::getSnapIndicator(), Inkscape::Display::SnapIndicator::remove_snaptarget(), restoreTransformHandles(), and signal_commit.
Referenced by Inkscape::UI::SelectableControlPoint::ungrabbed().
|
private |
Computes the distance to the farthest corner of the bounding box.
Used to determine what it means to "rotate by one pixel".
Definition at line 564 of file control-point-selection.cpp.
References bounds(), Geom::GenericRect< C >::corner(), Geom::distance(), empty(), len, and rc.
Referenced by _keyboardRotate().
|
private |
Definition at line 484 of file control-point-selection.cpp.
References _bounds, _first_point, _handles, _updateBounds(), _updateTransformHandles(), begin(), empty(), Inkscape::UI::ControlPoint::move(), Inkscape::UI::TransformHandleSet::rotationCenter(), and size().
Referenced by clear(), erase(), erase(), insert(), insert(), invertSelection(), selectAll(), and selectArea().
|
private |
Definition at line 500 of file control-point-selection.cpp.
References _bounds, _points, _rot_radius, and Geom::GenericOptRect< C >::expandTo().
Referenced by _commitHandlesTransform(), _pointUngrabbed(), _update(), and transform().
|
private |
Definition at line 514 of file control-point-selection.cpp.
References _dragging, _handles, _handles_visible, _one_node_handles, begin(), bounds(), Inkscape::UI::SelectableControlPoint::bounds(), Inkscape::UI::ControlPoint::move(), Inkscape::UI::ControlPoint::position(), Inkscape::UI::TransformHandleSet::rotationCenter(), Inkscape::UI::TransformHandleSet::setBounds(), Inkscape::UI::ControlPoint::setVisible(), Inkscape::UI::TransformHandleSet::setVisible(), and size().
Referenced by _commitHandlesTransform(), _update(), ControlPointSelection(), restoreTransformHandles(), and showTransformHandles().
void Inkscape::UI::ControlPointSelection::align | ( | Geom::Dim2 | d, |
AlignTargetNode | target = AlignTargetNode::MID_NODE |
||
) |
Align control points on the specified axis.
Definition at line 251 of file control-point-selection.cpp.
References _points, _points_list, empty(), Inkscape::UI::FIRST_NODE, Inkscape::UI::LAST_NODE, Inkscape::UI::MAX_NODE, Inkscape::UI::MID_NODE, Inkscape::UI::MIN_NODE, and Geom::GenericOptInterval< C >::unionWith().
Referenced by Inkscape::UI::MultiPathManipulator::alignNodes().
|
inline |
Definition at line 92 of file control-point-selection.h.
References _all_points.
|
inline |
Definition at line 91 of file control-point-selection.h.
References _all_points.
Referenced by Inkscape::UI::Node::dragged(), getUnselectedPoints(), Inkscape::UI::SelectableControlPoint::SelectableControlPoint(), Inkscape::UI::Tools::NodeTool::update_tip(), and Inkscape::UI::SelectableControlPoint::~SelectableControlPoint().
|
inline |
Definition at line 63 of file control-point-selection.h.
References _points.
Referenced by _update(), _updateTransformHandles(), clear(), and Inkscape::UI::MultiPathManipulator::event().
|
inline |
Definition at line 64 of file control-point-selection.h.
References _points.
Geom::OptRect Inkscape::UI::ControlPointSelection::bounds | ( | ) |
Definition at line 330 of file control-point-selection.cpp.
References _bounds, _points, bounds(), and size().
Referenced by _keyboardScale(), _rotationRadius(), _updateTransformHandles(), and bounds().
void Inkscape::UI::ControlPointSelection::clear | ( | ) |
Remove all points from the selection, making it empty.
Definition at line 134 of file control-point-selection.cpp.
References _points, _points_list, _update(), begin(), empty(), end(), and signal_selection_changed.
Referenced by Inkscape::UI::SelectableControlPoint::_takeSelection(), Inkscape::UI::CurveDragPoint::clicked(), Inkscape::UI::PathManipulator::insertNode(), Inkscape::UI::Tools::NodeTool::root_handler(), Inkscape::UI::Tools::NodeTool::select_area(), Inkscape::UI::Tools::NodeTool::select_point(), Inkscape::SelectionHelper::selectNone(), Inkscape::UI::MultiPathManipulator::shiftSelection(), ~ControlPointSelection(), and Inkscape::UI::Tools::NodeTool::~NodeTool().
void Inkscape::UI::ControlPointSelection::distribute | ( | Geom::Dim2 | d | ) |
Equdistantly distribute control points by moving them in the specified dimension.
Definition at line 292 of file control-point-selection.cpp.
References _points, empty(), num, size(), Inkscape::UI::start, and Geom::GenericOptInterval< C >::unionWith().
Referenced by Inkscape::UI::MultiPathManipulator::distributeNodes().
|
inline |
Definition at line 59 of file control-point-selection.h.
References _points.
Referenced by Inkscape::UI::PathManipulator::_deleteSegments(), _keyboardFlip(), _keyboardRotate(), _keyboardScale(), _rotationRadius(), _update(), align(), Inkscape::UI::MultiPathManipulator::alignNodes(), Inkscape::UI::MultiPathManipulator::breakNodes(), clear(), Inkscape::UI::Toolbar::NodeToolbar::coord_changed(), Inkscape::UI::MultiPathManipulator::copySelectedPath(), Inkscape::UI::MultiPathManipulator::deleteNodes(), Inkscape::UI::PathManipulator::deleteNodes(), Inkscape::UI::MultiPathManipulator::deleteSegments(), distribute(), Inkscape::UI::MultiPathManipulator::distributeNodes(), Inkscape::UI::MultiPathManipulator::duplicateNodes(), Inkscape::UI::PathManipulator::duplicateNodes(), event(), Inkscape::UI::PathManipulator::extremeNode(), Inkscape::UI::MultiPathManipulator::insertNodes(), Inkscape::UI::MultiPathManipulator::insertNodesAtExtrema(), Inkscape::UI::MultiPathManipulator::joinNodes(), Inkscape::UI::MultiPathManipulator::joinSegments(), Inkscape::UI::MultiPathManipulator::move(), Inkscape::UI::MultiPathManipulator::reverseSubpaths(), Inkscape::UI::Tools::NodeTool::root_handler(), Inkscape::UI::MultiPathManipulator::scale(), Inkscape::UI::Tools::NodeTool::select_point(), Inkscape::SelectionHelper::selectNone(), Inkscape::UI::MultiPathManipulator::selectSubpaths(), Inkscape::UI::MultiPathManipulator::setNodeType(), Inkscape::UI::MultiPathManipulator::setSegmentType(), and Inkscape::UI::PathManipulator::setSegmentType().
|
inline |
Definition at line 65 of file control-point-selection.h.
References _points.
Referenced by clear(), and Inkscape::UI::SelectableControlPoint::selected().
|
inline |
Definition at line 66 of file control-point-selection.h.
References _points.
ControlPointSelection::size_type Inkscape::UI::ControlPointSelection::erase | ( | const key_type & | k, |
bool | notify = true |
||
) |
Definition at line 112 of file control-point-selection.cpp.
References _points, erase(), and signal_selection_changed.
Definition at line 123 of file control-point-selection.cpp.
References _update(), erase(), and signal_selection_changed.
void Inkscape::UI::ControlPointSelection::erase | ( | iterator | pos, |
bool | to_update = true |
||
) |
Remove a point from the selection.
Definition at line 102 of file control-point-selection.cpp.
References _points, _points_list, _update(), and Inkscape::UI::SelectableControlPoint::updateState().
Referenced by Inkscape::UI::Node::_linearGrow(), Inkscape::UI::PathManipulator::_removeNodesFromSelection(), Inkscape::UI::CurveDragPoint::clicked(), Inkscape::UI::SelectableControlPoint::clicked(), Inkscape::UI::PathManipulator::duplicateNodes(), erase(), erase(), invertSelection(), Inkscape::UI::PathManipulator::invertSelectionInSubpaths(), Inkscape::UI::SelectableControlPoint::select(), selectArea(), spatialGrow(), and Inkscape::UI::SelectableControlPoint::~SelectableControlPoint().
|
overridevirtual |
Handle input event. Returns true if handled.
Implements Inkscape::UI::Manipulator.
Definition at line 689 of file control-point-selection.cpp.
References Inkscape::UI::Manipulator::_desktop, _keyboardFlip(), _keyboardMove(), _keyboardRotate(), _keyboardScale(), empty(), event(), Inkscape::KEY_PRESS, Inkscape::mod_any(), Inkscape::mod_shift(), toggleTransformHandlesMode(), Geom::X, Geom::Y, and SPDesktop::yaxisdir().
Referenced by _keyboardMove(), _keyboardRotate(), _keyboardScale(), _pointClicked(), _pointDragged(), event(), and Inkscape::UI::Tools::NodeTool::root_handler().
Definition at line 86 of file control-point-selection.h.
References _points.
Referenced by Inkscape::UI::SelectableControlPoint::selected().
std::optional< Geom::Point > Inkscape::UI::ControlPointSelection::firstSelectedPoint | ( | ) | const |
The first selected point is the first selection a user makes, but only if they selected exactly one point.
Selecting multiples at once does nothing.
Definition at line 339 of file control-point-selection.cpp.
References _first_point.
void Inkscape::UI::ControlPointSelection::getOriginalPoints | ( | std::vector< Inkscape::SnapCandidatePoint > & | pts | ) |
Definition at line 759 of file control-point-selection.cpp.
References _original_positions, _points, and Inkscape::SNAPSOURCE_NODE_HANDLE.
void Inkscape::UI::ControlPointSelection::getUnselectedPoints | ( | std::vector< Inkscape::SnapCandidatePoint > & | pts | ) |
Definition at line 767 of file control-point-selection.cpp.
References allPoints(), and node.
void Inkscape::UI::ControlPointSelection::hideTransformHandles | ( | ) |
Definition at line 351 of file control-point-selection.cpp.
References _handles, and Inkscape::UI::TransformHandleSet::setVisible().
Referenced by Inkscape::UI::PathManipulator::_handleGrabbed(), _pointGrabbed(), and Inkscape::UI::CurveDragPoint::grabbed().
std::pair< ControlPointSelection::iterator, bool > Inkscape::UI::ControlPointSelection::insert | ( | const value_type & | x, |
bool | notify = true , |
||
bool | to_update = true |
||
) |
Add a control point to the selection.
Definition at line 79 of file control-point-selection.cpp.
References _points, _points_list, _update(), signal_selection_changed, and Inkscape::UI::SelectableControlPoint::updateState().
Referenced by Inkscape::UI::PathManipulator::_externalChange(), Inkscape::UI::Node::_linearGrow(), Inkscape::UI::SelectableControlPoint::_takeSelection(), Inkscape::UI::CurveDragPoint::clicked(), Inkscape::UI::SelectableControlPoint::clicked(), Inkscape::UI::PathManipulator::duplicateNodes(), insert(), Inkscape::UI::PathManipulator::insertNode(), Inkscape::UI::PathManipulator::insertNodeAtExtremum(), Inkscape::UI::PathManipulator::insertNodes(), invertSelection(), Inkscape::UI::PathManipulator::invertSelectionInSubpaths(), Inkscape::UI::MultiPathManipulator::joinNodes(), Inkscape::UI::SelectableControlPoint::select(), selectAll(), selectArea(), Inkscape::UI::PathManipulator::selectSubpaths(), Inkscape::UI::MultiPathManipulator::shiftSelection(), and spatialGrow().
|
inline |
Definition at line 71 of file control-point-selection.h.
References _update(), insert(), and signal_selection_changed.
void Inkscape::UI::ControlPointSelection::invertSelection | ( | ) |
Unselect all selected points and select all unselected points.
Definition at line 183 of file control-point-selection.cpp.
References _all_points, _update(), erase(), insert(), and signal_selection_changed.
Referenced by Inkscape::SelectionHelper::invertAllInAll(), and Inkscape::UI::Tools::NodeTool::select_area().
Geom::OptRect Inkscape::UI::ControlPointSelection::pointwiseBounds | ( | ) |
Get the bounds of the selection.
Definition at line 325 of file control-point-selection.cpp.
References _bounds.
Referenced by Inkscape::UI::Toolbar::NodeToolbar::coord_changed().
void Inkscape::UI::ControlPointSelection::restoreTransformHandles | ( | ) |
Definition at line 355 of file control-point-selection.cpp.
References _updateTransformHandles().
Referenced by Inkscape::UI::PathManipulator::_handleUngrabbed(), _pointUngrabbed(), and Inkscape::UI::CurveDragPoint::ungrabbed().
void Inkscape::UI::ControlPointSelection::selectAll | ( | ) |
Select all points that this selection can contain.
Definition at line 152 of file control-point-selection.cpp.
References _all_points, _update(), insert(), and signal_selection_changed.
Referenced by Inkscape::UI::Tools::NodeTool::root_handler(), Inkscape::SelectionHelper::selectAllInAll(), Inkscape::UI::MultiPathManipulator::selectSubpaths(), and Inkscape::Selection::setState().
void Inkscape::UI::ControlPointSelection::selectArea | ( | Geom::Path const & | path, |
bool | invert = false |
||
) |
Select all points inside the given rectangle (in desktop coordinates).
Definition at line 164 of file control-point-selection.cpp.
References _all_points, _update(), erase(), insert(), invert(), signal_selection_changed, and Geom::Path::winding().
Referenced by Inkscape::UI::Tools::NodeTool::select_area().
void Inkscape::UI::ControlPointSelection::setOriginalPoints | ( | ) |
Definition at line 779 of file control-point-selection.cpp.
References _original_positions, and _points.
Referenced by Inkscape::UI::TransformHandle::grabbed(), and Inkscape::UI::TransformHandle::ungrabbed().
void Inkscape::UI::ControlPointSelection::showTransformHandles | ( | bool | v, |
bool | one_node | ||
) |
Definition at line 344 of file control-point-selection.cpp.
References _handles_visible, _one_node_handles, and _updateTransformHandles().
Referenced by Inkscape::UI::Tools::NodeTool::set().
|
inline |
Definition at line 60 of file control-point-selection.h.
References _points.
Referenced by Inkscape::UI::Node::_getTip(), _update(), _updateTransformHandles(), bounds(), Inkscape::UI::Toolbar::NodeToolbar::coord_changed(), distribute(), Inkscape::UI::MultiPathManipulator::event(), Inkscape::UI::PathManipulator::insertNodeAtExtremum(), Inkscape::UI::PathManipulator::insertNodes(), toggleTransformHandlesMode(), Inkscape::UI::Tools::NodeTool::update_tip(), Inkscape::UI::PathManipulator::weldNodes(), and Inkscape::UI::PathManipulator::weldSegments().
void Inkscape::UI::ControlPointSelection::spatialGrow | ( | SelectableControlPoint * | origin, |
int | dir | ||
) |
Definition at line 202 of file control-point-selection.cpp.
References _all_points, Geom::distance(), erase(), insert(), origin, Inkscape::UI::SelectableControlPoint::selected(), and signal_selection_changed.
Referenced by Inkscape::UI::Node::_eventHandler().
void Inkscape::UI::ControlPointSelection::toggleTransformHandlesMode | ( | ) |
Definition at line 360 of file control-point-selection.cpp.
References _handles, Inkscape::UI::TransformHandleSet::mode(), Inkscape::UI::TransformHandleSet::MODE_ROTATE_SKEW, Inkscape::UI::TransformHandleSet::MODE_SCALE, Inkscape::UI::TransformHandleSet::rotationCenter(), Inkscape::UI::TransformHandleSet::setMode(), Inkscape::UI::ControlPoint::setVisible(), and size().
Referenced by _pointClicked(), and event().
void Inkscape::UI::ControlPointSelection::transform | ( | Geom::Affine const & | m | ) |
Transform all selected control points by the given affine transformation.
Definition at line 234 of file control-point-selection.cpp.
References _mouseover_rot_radius, _points, _rot_radius, _updateBounds(), Geom::Affine::descrim(), and signal_update.
Referenced by _keyboardFlip(), _keyboardMove(), _keyboardRotate(), _keyboardScale(), ControlPointSelection(), Inkscape::UI::MultiPathManipulator::move(), and Inkscape::UI::MultiPathManipulator::scale().
|
inline |
Definition at line 109 of file control-point-selection.h.
References _handles_visible.
Referenced by Inkscape::UI::Node::_getTip().
|
friend |
Definition at line 165 of file control-point-selection.h.
|
private |
Definition at line 152 of file control-point-selection.h.
Referenced by allPoints(), allPoints(), invertSelection(), selectAll(), selectArea(), and spatialGrow().
|
private |
Definition at line 158 of file control-point-selection.h.
Referenced by _update(), _updateBounds(), bounds(), and pointwiseBounds().
|
private |
Definition at line 161 of file control-point-selection.h.
Referenced by _pointGrabbed(), _pointUngrabbed(), and _updateTransformHandles().
|
private |
Definition at line 160 of file control-point-selection.h.
Referenced by _pointDragged(), _pointGrabbed(), and _pointUngrabbed().
|
private |
Definition at line 157 of file control-point-selection.h.
Referenced by _update(), and firstSelectedPoint().
|
private |
Definition at line 160 of file control-point-selection.h.
Referenced by _pointDragged(), _pointGrabbed(), and _pointUngrabbed().
|
private |
Definition at line 159 of file control-point-selection.h.
Referenced by _keyboardFlip(), _keyboardRotate(), _keyboardScale(), _pointDragged(), _update(), _updateTransformHandles(), ControlPointSelection(), hideTransformHandles(), toggleTransformHandlesMode(), and ~ControlPointSelection().
|
private |
Definition at line 162 of file control-point-selection.h.
Referenced by _pointClicked(), _updateTransformHandles(), showTransformHandles(), and transformHandlesEnabled().
|
private |
Definition at line 154 of file control-point-selection.h.
Referenced by _pointDragged(), _pointGrabbed(), and _pointUngrabbed().
|
private |
Definition at line 156 of file control-point-selection.h.
Referenced by _keyboardRotate(), _mouseoverChanged(), and transform().
|
private |
Definition at line 163 of file control-point-selection.h.
Referenced by _updateTransformHandles(), and showTransformHandles().
|
private |
Definition at line 153 of file control-point-selection.h.
Referenced by _pointDragged(), _pointGrabbed(), _pointUngrabbed(), getOriginalPoints(), and setOriginalPoints().
|
private |
Definition at line 150 of file control-point-selection.h.
Referenced by _pointDragged(), _pointGrabbed(), _updateBounds(), align(), begin(), begin(), bounds(), clear(), distribute(), empty(), end(), end(), erase(), erase(), find(), getOriginalPoints(), insert(), setOriginalPoints(), size(), and transform().
std::list<SelectableControlPoint *> Inkscape::UI::ControlPointSelection::_points_list |
|
private |
Definition at line 155 of file control-point-selection.h.
Referenced by _keyboardRotate(), _updateBounds(), and transform().
Inkscape::UI::ControlPointSelection::signal_commit |
Fires when a change that needs to be committed to XML happens.
Definition at line 121 of file control-point-selection.h.
Referenced by _commitHandlesTransform(), _keyboardFlip(), _keyboardMove(), _keyboardRotate(), _keyboardScale(), _pointUngrabbed(), and Inkscape::UI::MultiPathManipulator::MultiPathManipulator().
sigc::signal<void (std::vector<SelectableControlPoint *>, bool)> Inkscape::UI::ControlPointSelection::signal_selection_changed |
Definition at line 120 of file control-point-selection.h.
Referenced by clear(), erase(), erase(), insert(), insert(), invertSelection(), Inkscape::UI::MultiPathManipulator::MultiPathManipulator(), Inkscape::UI::Tools::NodeTool::NodeTool(), Inkscape::UI::PathManipulator::PathManipulator(), selectAll(), selectArea(), and spatialGrow().
Inkscape::UI::ControlPointSelection::signal_update |
Fires when the display needs to be updated to reflect changes.
Definition at line 117 of file control-point-selection.h.
Referenced by Inkscape::UI::MultiPathManipulator::_commit(), _pointDragged(), ControlPointSelection(), Inkscape::UI::PathManipulator::PathManipulator(), and transform().