25#include <sigc++/sigc++.h>
58 void grab(
Geom::Point const &p,
double x,
double y,
bool show_handles,
bool translating);
61 void stamp(
bool clone =
false);
96 return (
knots[0]->is_visible());
186 std::array<CanvasItemPtr<CanvasItemCurve>, 4>
_l;
Cartesian point / 2D vector and related operations.
3x3 affine transformation matrix.
std::unique_ptr< T, CanvasItemUnlinkDeleter > CanvasItemPtr
Smart pointer used to hold CanvasItems, like std::unique_ptr.
3x3 matrix representing an affine transformation.
Axis-aligned rectangle that can be empty.
Two-dimensional point that doubles as a vector.
A convenience class for working with MessageStacks.
Data type representing a typeless value of a preference.
Base class for preference observers.
void notify(Preferences::Entry const &val) override
Notification about a preference change.
void moveTo(Geom::Point const &xy, unsigned int state)
std::vector< SPItem * > _items
void align(guint state, SPSelTransHandle const &handle)
Geom::Affine _absolute_affine
std::vector< Inkscape::SnapCandidatePoint > _all_snap_sources_sorted
void handleGrab(SPKnot *knot, unsigned int state, SPSelTransHandle const &handle)
void stretch(SPSelTransHandle const &handle, Geom::Point &pt, unsigned int state)
Geom::OptRect _stroked_bbox
void setCenter(Geom::Point const &p)
Geom::Point _getGeomHandlePos(Geom::Point const &visual_handle_pos)
BoundingBoxPrefsObserver _bounding_box_prefs_observer
Geom::Affine _current_relative_affine
std::vector< Geom::Affine > _items_affines
Geom::Point _opposite_for_specpoints
bool _center_is_set
we've already set _center, no need to reread it from items
void rotate(Geom::Point &pt, unsigned int state)
Geom::Point _calcAbsAffineDefault(Geom::Scale const default_scale)
int rotateRequest(Geom::Point &pt, unsigned int state)
Inkscape::Selection * _selection
int handleRequest(SPKnot *knot, Geom::Point *position, unsigned int state, SPSelTransHandle const &handle)
CanvasItemPtr< CanvasItemCtrl > _grip
int skewRequest(SPSelTransHandle const &handle, Geom::Point &pt, unsigned int state)
sigc::connection _sel_modified_connection
Geom::Affine _relative_affine
void _boundingBoxPrefsChanged(int prefs_bbox)
Geom::Point _opposite
opposite point to where a scale is taking place
void getNextClosestPoint(bool reverse)
Geom::Point _point_geom
original position of the knot being used for the current transform
Geom::Point _origin_for_specpoints
sigc::connection _sel_changed_connection
void _showHandles(SPSelTransType type)
std::vector< Inkscape::SnapCandidatePoint > _snap_points
SPItem::BBoxType _snap_bbox_type
CanvasItemPtr< CanvasItemCtrl > _norm
Geom::Point _point
original position of the knot being used for the current transform
Geom::Point _origin_for_bboxpoints
std::vector< Inkscape::SnapCandidatePoint > _bbox_points
void skew(SPSelTransHandle const &handle, Geom::Point &pt, unsigned int state)
void _selChanged(Inkscape::Selection *selection)
std::vector< SPObject const * > _objects_const
std::vector< Inkscape::SnapCandidatePoint >::iterator _all_snap_sources_iter
Geom::Point _origin
position of origin for transforms
void handleNewEvent(SPKnot *knot, Geom::Point *position, unsigned int state, SPSelTransHandle const &handle)
void _updateVolatileState()
void _keepClosestPointOnly(Geom::Point const &p)
void handleClick(SPKnot *knot, unsigned int state, SPSelTransHandle const &handle)
std::vector< SPItem * > _stamp_cache
std::optional< Geom::Point > _center
void grab(Geom::Point const &p, double x, double y, bool show_handles, bool translating)
Geom::Point _opposite_for_bboxpoints
std::vector< Geom::Point > _items_centers
Geom::OptRect _geometric_bbox
void scale(Geom::Point &pt, unsigned int state)
Geom::Point _calcAbsAffineGeom(Geom::Scale const geom_scale)
void stamp(bool clone=false)
int centerRequest(Geom::Point &pt, unsigned int state)
int stretchRequest(SPSelTransHandle const &handle, Geom::Point &pt, unsigned int state)
Inkscape::MessageContext _message_context
std::array< CanvasItemPtr< CanvasItemCurve >, 4 > _l
int request(SPSelTransHandle const &handle, Geom::Point &pt, unsigned int state)
void _selModified(Inkscape::Selection *selection, unsigned int flags)
void transform(Geom::Affine const &rel_affine, Geom::Point const &norm)
int scaleRequest(Geom::Point &pt, unsigned int state)
The set of selected SPObjects for a given document and layer model.
To do: update description of desktop.
Desktop-bound visual control object.
Declarations for SPKnot: Desktop-bound visual control object.
Interface for locally managing a current status message.
Helper class to stream background task notifications as a series of messages.
Geom::Scale calcScaleFactors(Geom::Point const &initial_point, Geom::Point const &new_point, Geom::Point const &origin, bool const skew=false)
Some things pertinent to all visible shapes: SPItem, SPItemView, SPItemCtx.