Inkscape
Vector Graphics Editor
Loading...
Searching...
No Matches
Inkscape::UI::PathManipulator Class Reference

Manipulator that edits a single path using nodes with handles. More...

#include <path-manipulator.h>

Inheritance diagram for Inkscape::UI::PathManipulator:
Inkscape::UI::PointManipulator Inkscape::UI::Manipulator

Public Types

using ItemType = SPPath *
 
- Public Types inherited from Inkscape::UI::PointManipulator
enum  ExtremumType { EXTR_MIN_X , EXTR_MAX_X , EXTR_MIN_Y , EXTR_MAX_Y }
 Type of extremum points to add in PathManipulator::insertNodeAtExtremum. More...
 

Public Member Functions

 PathManipulator (MultiPathManipulator &mpm, SPObject *path, Geom::Affine const &edit_trans, uint32_t outline_color, Glib::ustring lpe_key)
 
 ~PathManipulator () override
 
bool event (Inkscape::UI::Tools::ToolBase *tool, CanvasEvent const &event) override
 Handle motion events to update the position of the curve drag point.
 
bool empty ()
 Check whether the manipulator has any nodes.
 
void writeXML ()
 Store the changes to the path in XML.
 
void update (bool alert_LPE=false)
 Update the display and the outline of the path.
 
void clear ()
 Remove all nodes from the path.
 
SPObject const * item () const
 
SPObjectitem ()
 
void selectSubpaths ()
 Select all nodes in subpaths that have something selected.
 
void invertSelectionInSubpaths ()
 Invert selection in the selected subpaths.
 
void insertNodeAtExtremum (ExtremumType extremum)
 Insert a new node at the extremum of the selected segments.
 
void insertNodes ()
 Insert a new node in the middle of each selected segment.
 
void insertNode (Geom::Point)
 
void insertNode (NodeList::iterator first, double t, bool take_selection)
 
void duplicateNodes ()
 Insert new nodes exactly at the positions of selected nodes while preserving shape.
 
void copySelectedPath (Geom::PathBuilder *builder)
 Copy the selected nodes using the PathBuilder.
 
void weldNodes (NodeList::iterator preserve_pos=NodeList::iterator())
 Replace contiguous selections of nodes in each subpath with one node.
 
void weldSegments ()
 Remove nodes in the middle of selected segments.
 
void breakNodes ()
 
void breakNodes (bool new_nodes)
 Break the subpath at selected nodes.
 
void deleteNodes (NodeDeleteMode mode)
 Delete selected nodes in the path, optionally substituting deleted segments with bezier curves in a way that attempts to preserve the original shape of the curve.
 
void deleteSegments ()
 
void reverseSubpaths (bool selected_only)
 Reverse subpaths of the path.
 
void setSegmentType (SegmentType)
 Make selected segments curves / lines.
 
void scaleHandle (Node *n, int which, int dir, bool pixel)
 
void rotateHandle (Node *n, int which, int dir, bool pixel)
 
void showOutline (bool show)
 Set the visibility of outline.
 
void showHandles (bool show)
 Set the visibility of handles.
 
void showPathDirection (bool show)
 
void setLiveOutline (bool set)
 
void setLiveObjects (bool set)
 
void updateHandles ()
 
void updatePath ()
 
void setControlsTransform (Geom::Affine const &)
 
void hideDragPoint ()
 Hide the curve drag point until the next motion event.
 
MultiPathManipulatormpm ()
 
NodeList::iterator subdivideSegment (NodeList::iterator after, double t)
 Insert a node in the segment beginning with the supplied iterator, at the given time value.
 
NodeList::iterator extremeNode (NodeList::iterator origin, bool search_selected, bool search_unselected, bool closest)
 Find the node that is closest/farthest from the origin.
 
int _bsplineGetSteps () const
 
SubpathListsubpathList ()
 
- Public Member Functions inherited from Inkscape::UI::PointManipulator
 PointManipulator (SPDesktop *d, ControlPointSelection &sel)
 
- Public Member Functions inherited from Inkscape::UI::Manipulator
 Manipulator (SPDesktop *d)
 
virtual ~Manipulator ()=default
 

Static Public Member Functions

static bool is_item_type (void *item)
 

Private Types

using Subpath = NodeList
 
using SubpathPtr = std::shared_ptr< NodeList >
 

Private Member Functions

void _createControlPointsFromGeometry ()
 Create nodes and handles based on the XML of the edited path.
 
void _deleteSegments (bool delete_singles)
 Removes selected segments.
 
void _recalculateIsBSpline ()
 
bool _isBSpline () const
 
double _bsplineHandlePosition (Handle *h, bool check_other=true)
 
Geom::Point _bsplineHandleReposition (Handle *h, bool check_other=true)
 
Geom::Point _bsplineHandleReposition (Handle *h, double pos)
 
void _createGeometryFromControlPoints (bool alert_LPE=false)
 Construct the geometric representation of nodes and handles, update the outline and display.
 
unsigned _deleteStretch (NodeList::iterator first, NodeList::iterator last, NodeDeleteMode mode)
 Delete nodes between the two iterators.
 
std::string _createTypeString ()
 Construct a node type string to store in the sodipodi:nodetypes attribute.
 
void _updateOutline ()
 Update the path outline.
 
void _getGeometry ()
 Retrieve the geometry of the edited object from the object tree.
 
void _setGeometry ()
 Set the geometry of the edited object in the object tree, but do not commit to XML.
 
Glib::ustring _nodetypesKey ()
 Figure out in what attribute to store the nodetype string.
 
Inkscape::XML::Node_getXMLNode ()
 Return the XML node we are editing.
 
Geom::Affine _getTransform () const
 
void _selectionChangedM (std::vector< SelectableControlPoint * > pvec, bool selected)
 
void _selectionChanged (SelectableControlPoint *p, bool selected)
 
bool _nodeClicked (Node *, ButtonReleaseEvent const &)
 
void _handleGrabbed ()
 
bool _handleClicked (Handle *, ButtonReleaseEvent const &)
 
void _handleUngrabbed ()
 
void _externalChange (unsigned type)
 Called by the XML observer when something else than us modifies the path.
 
void _removeNodesFromSelection ()
 Removes all nodes belonging to this manipulator from the control point selection.
 
void _commit (Glib::ustring const &annotation)
 Update the XML representation and put the specified annotation on the undo stack.
 
void _commit (Glib::ustring const &annotation, gchar const *key)
 
Geom::Coord _updateDragPoint (Geom::Point const &)
 Update the position of the curve drag point such that it is over the nearest point of the path.
 
void _updateOutlineOnZoomChange ()
 This is called on zoom change to update the direction arrows.
 
double _getStrokeTolerance ()
 Compute the radius from the edge of the path where clicks should initiate a curve drag or segment selection, in window coordinates.
 
Handle_chooseHandle (Node *n, int which)
 

Private Attributes

SubpathList _subpaths
 
MultiPathManipulator_multi_path_manipulator
 
SPObject_path
 can be an SPPath or an Inkscape::LivePathEffect::Effect !!!
 
Geom::PathVector _spcurve
 
CanvasItemPtr< Inkscape::CanvasItemBpath_outline
 
CurveDragPoint_dragpoint
 
PathManipulatorObserver_observer
 
Geom::Affine _d2i_transform
 desktop-to-item transform
 
Geom::Affine _i2d_transform
 item-to-desktop transform, inverse of _d2i_transform
 
Geom::Affine _edit_transform
 additional transform to apply to editing controls
 
bool _show_handles = true
 
bool _show_outline = false
 
bool _show_path_direction = false
 
bool _live_outline = true
 
bool _live_objects = true
 
bool _is_bspline = false
 
Glib::ustring _lpe_key
 

Friends

class PathManipulatorObserver
 
class CurveDragPoint
 
class Node
 
class Handle
 

Related Symbols

(Note that these are not member symbols.)

void build_segment (Geom::PathBuilder &builder, Node *prev_node, Node *cur_node)
 Build one segment of the geometric representation.
 

Additional Inherited Members

- Public Attributes inherited from Inkscape::UI::Manipulator
SPDesktop *const _desktop
 
- Protected Attributes inherited from Inkscape::UI::PointManipulator
ControlPointSelection_selection
 

Detailed Description

Manipulator that edits a single path using nodes with handles.

Currently only cubic bezier and linear segments are supported, but this might change some time in the future.

Definition at line 64 of file path-manipulator.h.

Member Typedef Documentation

◆ ItemType

◆ Subpath

Definition at line 125 of file path-manipulator.h.

◆ SubpathPtr

using Inkscape::UI::PathManipulator::SubpathPtr = std::shared_ptr<NodeList>
private

Definition at line 126 of file path-manipulator.h.

Constructor & Destructor Documentation

◆ PathManipulator()

◆ ~PathManipulator()

Inkscape::UI::PathManipulator::~PathManipulator ( )
override

Definition at line 148 of file path-manipulator.cpp.

References _dragpoint, _observer, _outline, and clear().

Member Function Documentation

◆ _bsplineGetSteps()

◆ _bsplineHandlePosition()

◆ _bsplineHandleReposition() [1/2]

Geom::Point Inkscape::UI::PathManipulator::_bsplineHandleReposition ( Handle h,
bool  check_other = true 
)
private

◆ _bsplineHandleReposition() [2/2]

Geom::Point Inkscape::UI::PathManipulator::_bsplineHandleReposition ( Handle h,
double  pos 
)
private

◆ _chooseHandle()

◆ _commit() [1/2]

void Inkscape::UI::PathManipulator::_commit ( Glib::ustring const &  annotation)
private

◆ _commit() [2/2]

void Inkscape::UI::PathManipulator::_commit ( Glib::ustring const &  annotation,
gchar const *  key 
)
private

◆ _createControlPointsFromGeometry()

◆ _createGeometryFromControlPoints()

void Inkscape::UI::PathManipulator::_createGeometryFromControlPoints ( bool  alert_LPE = false)
private

Construct the geometric representation of nodes and handles, update the outline and display.

Parameters
alert_LPEif true, first the LPE is warned what the new path is going to be before updating it
Todo:
note that _path can be an Inkscape::LivePathEffect::Effect* too, kind of confusing, rework member naming?

Definition at line 1439 of file path-manipulator.cpp.

References _getTransform(), _live_objects, _live_outline, _path, _recalculateIsBSpline(), _setGeometry(), _spcurve, _subpaths, _updateOutline(), Inkscape::LivePathEffect::LPEPowerStroke::adjustForNewPath(), Geom::PathVector::begin(), build_segment(), builder, Geom::PathVector::empty(), Geom::PathVector::end(), Geom::PathVector::erase(), Geom::Affine::inverse(), Inkscape::LivePathEffect::POWERSTROKE, and Inkscape::UI::NodeIterator< N >::ptr().

Referenced by setControlsTransform(), and update().

◆ _createTypeString()

std::string Inkscape::UI::PathManipulator::_createTypeString ( )
private

Construct a node type string to store in the sodipodi:nodetypes attribute.

Definition at line 1526 of file path-manipulator.cpp.

References _subpaths.

Referenced by writeXML().

◆ _deleteSegments()

void Inkscape::UI::PathManipulator::_deleteSegments ( bool  delete_singles)
private

◆ _deleteStretch()

unsigned Inkscape::UI::PathManipulator::_deleteStretch ( NodeList::iterator  start,
NodeList::iterator  end,
NodeDeleteMode  mode 
)
private

Delete nodes between the two iterators.

The given range can cross the beginning of the subpath in closed subpaths.

Parameters
startBeginning of the range to delete
endEnd of the range
modeVarious delete methods, see NodeDeleteMode enum
Returns
Number of deleted nodes

Definition at line 706 of file path-manipulator.cpp.

References _bsplineHandlePosition(), _bsplineHandleReposition(), _isBSpline(), Inkscape::UI::automatic, bezier_fit(), Inkscape::UI::curve_fit, Geom::distance(), Inkscape::UI::end, Inkscape::UI::NodeList::erase(), Inkscape::Preferences::get(), Inkscape::UI::get_angle(), Inkscape::Preferences::getDoubleLimited(), Inkscape::UI::inverse_auto, Inkscape::UI::line_segment, mode, Inkscape::UI::NodeIterator< N >::next(), Inkscape::UI::NODE_CUSP, Inkscape::UI::NodeIterator< N >::prev(), result, and Inkscape::UI::start.

Referenced by _nodeClicked(), and deleteNodes().

◆ _externalChange()

void Inkscape::UI::PathManipulator::_externalChange ( unsigned  type)
private

◆ _getGeometry()

void Inkscape::UI::PathManipulator::_getGeometry ( )
private

Retrieve the geometry of the edited object from the object tree.

Definition at line 1574 of file path-manipulator.cpp.

References _lpe_key, _path, _spcurve, Inkscape::LivePathEffect::PathParam::get_pathvector(), and Inkscape::LivePathEffect::Effect::getParameter().

Referenced by _externalChange(), and PathManipulator().

◆ _getStrokeTolerance()

double Inkscape::UI::PathManipulator::_getStrokeTolerance ( )
private

Compute the radius from the edge of the path where clicks should initiate a curve drag or segment selection, in window coordinates.

Definition at line 1837 of file path-manipulator.cpp.

References Inkscape::UI::Manipulator::_desktop, _getTransform(), _path, SPDesktop::current_zoom(), Geom::Affine::descrim(), Inkscape::Preferences::get(), Inkscape::Preferences::getIntLimited(), SPStyle::stroke, SPStyle::stroke_width, and SPObject::style.

Referenced by _updateDragPoint().

◆ _getTransform()

Geom::Affine Inkscape::UI::PathManipulator::_getTransform ( ) const
private

◆ _getXMLNode()

Inkscape::XML::Node * Inkscape::UI::PathManipulator::_getXMLNode ( )
private

Return the XML node we are editing.

This method is wrong but necessary at the moment.

Definition at line 1641 of file path-manipulator.cpp.

References _path, and SPObject::getRepr().

Referenced by writeXML().

◆ _handleClicked()

bool Inkscape::UI::PathManipulator::_handleClicked ( Handle h,
ButtonReleaseEvent const &  event 
)
private

◆ _handleGrabbed()

void Inkscape::UI::PathManipulator::_handleGrabbed ( )
private

◆ _handleUngrabbed()

void Inkscape::UI::PathManipulator::_handleUngrabbed ( )
private

◆ _isBSpline()

◆ _nodeClicked()

◆ _nodetypesKey()

Glib::ustring Inkscape::UI::PathManipulator::_nodetypesKey ( )
private

Figure out in what attribute to store the nodetype string.

Definition at line 1629 of file path-manipulator.cpp.

References _lpe_key, and _path.

Referenced by _createControlPointsFromGeometry(), and writeXML().

◆ _recalculateIsBSpline()

void Inkscape::UI::PathManipulator::_recalculateIsBSpline ( )
private

◆ _removeNodesFromSelection()

void Inkscape::UI::PathManipulator::_removeNodesFromSelection ( )
private

Removes all nodes belonging to this manipulator from the control point selection.

Definition at line 1756 of file path-manipulator.cpp.

References Inkscape::UI::PointManipulator::_selection, _subpaths, and Inkscape::UI::ControlPointSelection::erase().

◆ _selectionChanged()

void Inkscape::UI::PathManipulator::_selectionChanged ( SelectableControlPoint p,
bool  selected 
)
private

◆ _selectionChangedM()

void Inkscape::UI::PathManipulator::_selectionChangedM ( std::vector< SelectableControlPoint * >  pvec,
bool  selected 
)
private

Definition at line 1711 of file path-manipulator.cpp.

References _selectionChanged().

Referenced by PathManipulator().

◆ _setGeometry()

void Inkscape::UI::PathManipulator::_setGeometry ( )
private

◆ _updateDragPoint()

◆ _updateOutline()

◆ _updateOutlineOnZoomChange()

void Inkscape::UI::PathManipulator::_updateOutlineOnZoomChange ( )
private

This is called on zoom change to update the direction arrows.

Definition at line 1830 of file path-manipulator.cpp.

References _show_path_direction, and _updateOutline().

Referenced by PathManipulator().

◆ breakNodes() [1/2]

void Inkscape::UI::PathManipulator::breakNodes ( )
inline

◆ breakNodes() [2/2]

void Inkscape::UI::PathManipulator::breakNodes ( bool  new_nodes)

Break the subpath at selected nodes.

It also works for single node closed paths.

Definition at line 576 of file path-manipulator.cpp.

References _multi_path_manipulator, Inkscape::UI::MultiPathManipulator::_path_data, _subpaths, Inkscape::UI::end, Node, Inkscape::UI::NODE_CUSP, and Inkscape::UI::PathSharedData::node_data.

◆ clear()

void Inkscape::UI::PathManipulator::clear ( )

Remove all nodes from the path.

Definition at line 218 of file path-manipulator.cpp.

References _subpaths.

Referenced by _createControlPointsFromGeometry(), and ~PathManipulator().

◆ copySelectedPath()

void Inkscape::UI::PathManipulator::copySelectedPath ( Geom::PathBuilder builder)

Copy the selected nodes using the PathBuilder.

Parameters
builder[out]Selected nodes will be appended to this Path builder in pixel coordinates with all transforms applied.

Definition at line 404 of file path-manipulator.cpp.

References _path, _subpaths, build_segment(), builder, Inkscape::UI::Node::front(), Inkscape::UI::Handle::isDegenerate(), node, and Inkscape::XML::Node::position().

Referenced by Inkscape::UI::MultiPathManipulator::copySelectedPath().

◆ deleteNodes()

void Inkscape::UI::PathManipulator::deleteNodes ( NodeDeleteMode  mode)

Delete selected nodes in the path, optionally substituting deleted segments with bezier curves in a way that attempts to preserve the original shape of the curve.

Definition at line 629 of file path-manipulator.cpp.

References _deleteSegments(), _deleteStretch(), Inkscape::UI::PointManipulator::_selection, _subpaths, breakNodes(), Inkscape::UI::ControlPointSelection::empty(), Inkscape::UI::gap_lines, Inkscape::UI::gap_nodes, hideDragPoint(), and Inkscape::UI::NodeIterator< N >::next().

Referenced by Inkscape::UI::MultiPathManipulator::deleteNodes().

◆ deleteSegments()

void Inkscape::UI::PathManipulator::deleteSegments ( )

◆ duplicateNodes()

◆ empty()

bool Inkscape::UI::PathManipulator::empty ( )

Check whether the manipulator has any nodes.

Definition at line 174 of file path-manipulator.cpp.

References _path, and _subpaths.

Referenced by Inkscape::UI::CurveDragPoint::_eventHandler(), Inkscape::UI::CurveDragPoint::_getTip(), _nodeClicked(), _setGeometry(), event(), and writeXML().

◆ event()

bool Inkscape::UI::PathManipulator::event ( Inkscape::UI::Tools::ToolBase tool,
CanvasEvent const &  event 
)
overridevirtual

Handle motion events to update the position of the curve drag point.

Implements Inkscape::UI::Manipulator.

Definition at line 157 of file path-manipulator.cpp.

References _updateDragPoint(), empty(), event(), and Inkscape::inspect_event().

Referenced by _handleClicked(), _nodeClicked(), and event().

◆ extremeNode()

NodeList::iterator Inkscape::UI::PathManipulator::extremeNode ( NodeList::iterator  origin,
bool  search_selected,
bool  search_unselected,
bool  closest 
)

Find the node that is closest/farthest from the origin.

Parameters
originPoint of reference
search_selectedConsider selected nodes
search_unselectedConsider unselected nodes
closestIf true, return closest node, if false, return farthest
Returns
The matching node, or an empty iterator if none found

Definition at line 1169 of file path-manipulator.cpp.

References Inkscape::UI::PointManipulator::_selection, _subpaths, Geom::distance(), Inkscape::UI::ControlPointSelection::empty(), and origin.

◆ hideDragPoint()

void Inkscape::UI::PathManipulator::hideDragPoint ( )

Hide the curve drag point until the next motion event.

This should be called at the beginning of every method that can delete nodes. Otherwise the invalidated iterator in the dragpoint can cause crashes.

Definition at line 1092 of file path-manipulator.cpp.

References _dragpoint, Inkscape::UI::CurveDragPoint::setIterator(), and Inkscape::UI::ControlPoint::setVisible().

Referenced by _deleteSegments(), _externalChange(), _nodeClicked(), deleteNodes(), Inkscape::UI::MultiPathManipulator::joinNodes(), weldNodes(), and weldSegments().

◆ insertNode() [1/2]

◆ insertNode() [2/2]

◆ insertNodeAtExtremum()

◆ insertNodes()

void Inkscape::UI::PathManipulator::insertNodes ( )

◆ invertSelectionInSubpaths()

void Inkscape::UI::PathManipulator::invertSelectionInSubpaths ( )

◆ is_item_type()

static bool Inkscape::UI::PathManipulator::is_item_type ( void *  item)
static

◆ item() [1/2]

SPObject * Inkscape::UI::PathManipulator::item ( )
inline

Definition at line 80 of file path-manipulator.h.

References _path.

◆ item() [2/2]

SPObject const * Inkscape::UI::PathManipulator::item ( ) const
inline

Definition at line 79 of file path-manipulator.h.

References _path.

◆ mpm()

MultiPathManipulator & Inkscape::UI::PathManipulator::mpm ( )
inline

Definition at line 112 of file path-manipulator.h.

References _multi_path_manipulator.

◆ reverseSubpaths()

void Inkscape::UI::PathManipulator::reverseSubpaths ( bool  selected_only)

Reverse subpaths of the path.

Parameters
selected_onlyIf true, only paths that have at least one selected node will be reversed. Otherwise all subpaths will be reversed.

Definition at line 894 of file path-manipulator.cpp.

References _subpaths.

Referenced by Inkscape::UI::MultiPathManipulator::reverseSubpaths().

◆ rotateHandle()

◆ scaleHandle()

◆ selectSubpaths()

void Inkscape::UI::PathManipulator::selectSubpaths ( )

Select all nodes in subpaths that have something selected.

Definition at line 226 of file path-manipulator.cpp.

References Inkscape::UI::PointManipulator::_selection, _subpaths, and Inkscape::UI::ControlPointSelection::insert().

Referenced by Inkscape::UI::MultiPathManipulator::selectSubpaths().

◆ setControlsTransform()

void Inkscape::UI::PathManipulator::setControlsTransform ( Geom::Affine const &  tnew)

◆ setLiveObjects()

void Inkscape::UI::PathManipulator::setLiveObjects ( bool  set)

Definition at line 1063 of file path-manipulator.cpp.

References _live_objects, and set.

Referenced by Inkscape::UI::MultiPathManipulator::setLiveObjects().

◆ setLiveOutline()

void Inkscape::UI::PathManipulator::setLiveOutline ( bool  set)

Definition at line 1058 of file path-manipulator.cpp.

References _live_outline, and set.

Referenced by Inkscape::UI::MultiPathManipulator::setLiveOutline().

◆ setSegmentType()

◆ showHandles()

void Inkscape::UI::PathManipulator::showHandles ( bool  show)

Set the visibility of handles.

Definition at line 1021 of file path-manipulator.cpp.

References _show_handles, and _subpaths.

Referenced by Inkscape::UI::MultiPathManipulator::showHandles().

◆ showOutline()

void Inkscape::UI::PathManipulator::showOutline ( bool  show)

Set the visibility of outline.

Definition at line 1044 of file path-manipulator.cpp.

References _show_outline, and _updateOutline().

◆ showPathDirection()

void Inkscape::UI::PathManipulator::showPathDirection ( bool  show)

◆ subdivideSegment()

◆ subpathList()

SubpathList & Inkscape::UI::PathManipulator::subpathList ( )
inline

Definition at line 120 of file path-manipulator.h.

References _subpaths.

◆ update()

void Inkscape::UI::PathManipulator::update ( bool  alert_LPE = false)

Update the display and the outline of the path.

Parameters
alert_LPEif true, alerts an applied LPE to what the path is going to be changed to, so it can adjust its parameters for nicer user interfacing

Definition at line 181 of file path-manipulator.cpp.

References _createGeometryFromControlPoints(), and _observer.

Referenced by Inkscape::UI::MultiPathManipulator::_done(), Inkscape::UI::Handle::_eventHandler(), _handleClicked(), _nodeClicked(), Inkscape::UI::Handle::_update_bspline_handles(), Inkscape::UI::CurveDragPoint::doubleclicked(), Inkscape::UI::CurveDragPoint::dragged(), Inkscape::UI::CurveDragPoint::grabbed(), insertNode(), PathManipulator(), rotateHandle(), and scaleHandle().

◆ updateHandles()

void Inkscape::UI::PathManipulator::updateHandles ( )

Definition at line 1068 of file path-manipulator.cpp.

References _subpaths.

Referenced by Inkscape::UI::MultiPathManipulator::updateHandles().

◆ updatePath()

void Inkscape::UI::PathManipulator::updatePath ( )

Definition at line 1195 of file path-manipulator.cpp.

References _externalChange().

Referenced by Inkscape::UI::MultiPathManipulator::updatePaths().

◆ weldNodes()

void Inkscape::UI::PathManipulator::weldNodes ( NodeList::iterator  preserve_pos = NodeList::iterator())

◆ weldSegments()

void Inkscape::UI::PathManipulator::weldSegments ( )

◆ writeXML()

Friends And Related Symbol Documentation

◆ build_segment()

void build_segment ( Geom::PathBuilder builder,
Node prev_node,
Node cur_node 
)
related

◆ CurveDragPoint

friend class CurveDragPoint
friend

Definition at line 182 of file path-manipulator.h.

◆ Handle

friend class Handle
friend

Definition at line 184 of file path-manipulator.h.

◆ Node

friend class Node
friend

◆ PathManipulatorObserver

friend class PathManipulatorObserver
friend

Definition at line 181 of file path-manipulator.h.

Member Data Documentation

◆ _d2i_transform

Geom::Affine Inkscape::UI::PathManipulator::_d2i_transform
private

desktop-to-item transform

Definition at line 170 of file path-manipulator.h.

Referenced by _externalChange(), and PathManipulator().

◆ _dragpoint

CurveDragPoint* Inkscape::UI::PathManipulator::_dragpoint
private

◆ _edit_transform

Geom::Affine Inkscape::UI::PathManipulator::_edit_transform
private

additional transform to apply to editing controls

Definition at line 172 of file path-manipulator.h.

Referenced by _getTransform(), and setControlsTransform().

◆ _i2d_transform

Geom::Affine Inkscape::UI::PathManipulator::_i2d_transform
private

item-to-desktop transform, inverse of _d2i_transform

Definition at line 171 of file path-manipulator.h.

Referenced by _externalChange(), _getTransform(), PathManipulator(), and setControlsTransform().

◆ _is_bspline

bool Inkscape::UI::PathManipulator::_is_bspline = false
private

◆ _live_objects

bool Inkscape::UI::PathManipulator::_live_objects = true
private

Definition at line 177 of file path-manipulator.h.

Referenced by _createGeometryFromControlPoints(), and setLiveObjects().

◆ _live_outline

bool Inkscape::UI::PathManipulator::_live_outline = true
private

Definition at line 176 of file path-manipulator.h.

Referenced by _createGeometryFromControlPoints(), setLiveOutline(), and writeXML().

◆ _lpe_key

Glib::ustring Inkscape::UI::PathManipulator::_lpe_key
private

Definition at line 179 of file path-manipulator.h.

Referenced by _getGeometry(), _nodetypesKey(), and _setGeometry().

◆ _multi_path_manipulator

MultiPathManipulator& Inkscape::UI::PathManipulator::_multi_path_manipulator
private

◆ _observer

PathManipulatorObserver* Inkscape::UI::PathManipulator::_observer
private

Definition at line 169 of file path-manipulator.h.

Referenced by update(), writeXML(), and ~PathManipulator().

◆ _outline

CanvasItemPtr<Inkscape::CanvasItemBpath> Inkscape::UI::PathManipulator::_outline
private

Definition at line 167 of file path-manipulator.h.

Referenced by _updateOutline(), PathManipulator(), and ~PathManipulator().

◆ _path

◆ _show_handles

bool Inkscape::UI::PathManipulator::_show_handles = true
private

Definition at line 173 of file path-manipulator.h.

Referenced by _selectionChanged(), and showHandles().

◆ _show_outline

bool Inkscape::UI::PathManipulator::_show_outline = false
private

Definition at line 174 of file path-manipulator.h.

Referenced by _updateOutline(), and showOutline().

◆ _show_path_direction

bool Inkscape::UI::PathManipulator::_show_path_direction = false
private

◆ _spcurve

◆ _subpaths


The documentation for this class was generated from the following files: