Inkscape
Vector Graphics Editor
Loading...
Searching...
No Matches
sp-item.h
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-2.0-or-later
2#ifndef SEEN_SP_ITEM_H
3#define SEEN_SP_ITEM_H
4
10/*
11 * Authors:
12 * Lauris Kaplinski <lauris@kaplinski.com>
13 * bulia byak <buliabyak@users.sf.net>
14 * Johan Engelen <j.b.c.engelen@ewi.utwente.nl>
15 * Abhishek Sharma
16 *
17 * Copyright (C) 1999-2006 authors
18 * Copyright (C) 2001-2002 Ximian, Inc.
19 * Copyright (C) 2004 Monash University
20 *
21 * Released under GNU GPL v2+, read the file 'COPYING' for more information.
22 */
23
24#include <cstdint>
25#include <vector>
26#include <2geom/forward.h>
27#include <2geom/affine.h>
28#include <2geom/rect.h>
29
30#include "colors/color.h"
31
32#include "sp-object.h"
33#include "sp-marker-loc.h"
35#include "xml/repr.h"
36
37class SPGroup;
38class SPClipPath;
40class SPMask;
41class SPMaskReference;
42class SPAvoidRef;
43class SPPattern;
44struct SPPrintContext;
45
46namespace Inkscape {
47class Drawing;
48class DrawingItem;
49class URIReference;
50class SnapCandidatePoint;
51class SnapPreferences;
52} // namespace Inkscape
53
54// TODO make a completely new function that transforms either the fill or
55// stroke of any SPItem without adding an extra parameter to adjust_pattern.
57
65
75
76/* flags */
77
78#define SP_ITEM_BBOX_VISUAL 1
79
80#define SP_ITEM_SHOW_DISPLAY (1 << 0)
81
86#define SP_ITEM_REFERENCE_FLAGS (1 << 1)
87
102
108class SPItem : public SPObject
109{
110public:
112 {
113 // legacy behavior: includes crude stroke, markers; excludes long miters, blur margin; is known to be wrong for caps
115 // includes only the bare path bbox, no stroke, no nothing
117 // includes everything: correctly done stroke (with proper miters and caps), markers, filter margins (e.g. blur)
119 };
120
122
123 SPItem();
124 ~SPItem() override;
125 int tag() const override { return tag_of<decltype(*this)>; }
126
127 unsigned int sensitive : 1;
128 unsigned int stop_paint: 1;
129 mutable unsigned bbox_valid : 1;
133
134 // Used in the layers/objects dialog, this remembers if this item's
135 // children are visible in the expanded state in the tree.
136 bool _is_expanded = false;
137
140 Geom::Rect viewport; // Cache viewport information
141
142 SPClipPath *getClipObject() const;
143 SPMask *getMaskObject() const;
144
147
148 std::optional<Geom::PathVector> getClipPathVector() const;
149 std::optional<Geom::PathVector> getClipPathVector(SPItem const *root) const;
150 SPText const *getClipTextObject() const;
151
153 std::vector<std::pair <Glib::ustring, Glib::ustring> > rootsatellites;
154
155private:
158
159 // Used for object-avoiding connectors
161
162public:
163 std::vector<SPItemView> views;
164
165 sigc::signal<void (Geom::Affine const *, SPItem *)> _transformed_signal;
166
167 bool isLocked() const;
168 void setLocked(bool lock);
169
170 bool isHidden() const;
171 void setHidden(bool hidden);
172
173 // Objects dialogue
174 bool isSensitive() const {
175 return sensitive;
176 };
177
179 bool isHighlightSet() const;
181
182 //====================
183
184 bool isEvaluated() const;
185 void setEvaluated(bool visible);
186 void resetEvaluated();
187 bool unoptimized();
188 bool isHidden(unsigned display_key) const;
189
194 bool isExplicitlyHidden() const;
195
200 void setExplicitlyHidden(bool val);
201
205 void setCenter(Geom::Point const &object_centre);
206 bool updateCenterIfSet(Geom::Point const &center);
207
208 void unsetCenter();
209 bool isCenterSet() const;
210 Geom::Point getCenter(bool ensure_uptodate = true) const;
211 void scaleCenter(Geom::Scale const &sc);
212
213 bool isVisibleAndUnlocked() const;
214
215 bool isVisibleAndUnlocked(unsigned display_key) const;
216
218
219 bool raiseOne();
220 bool lowerOne();
221 void raiseToTop();
222 void lowerToBottom();
223
224 SPGroup *getParentGroup() const;
225
232 void moveTo(SPItem *target, bool intoafter);
233
234 sigc::connection connectTransformed(sigc::slot<void (Geom::Affine const *, SPItem *)> slot) {
235 return _transformed_signal.connect(slot);
236 }
237
244
253 Geom::OptRect visualBounds(Geom::Affine const &transform = Geom::identity(), bool wfilter = true, bool wclip = true,
254 bool wmask = true) const;
255
257
264
269
272
280 virtual std::optional<Geom::PathVector> documentExactBounds() const;
281
288
293
296
297 unsigned int pos_in_parent() const;
298
304 char *detailedDescription() const;
305
310 bool isFiltered() const;
311
312 SPObject* isInMask() const;
313
314 SPObject* isInClipPath() const;
315
316 void invoke_print(SPPrintContext *ctx);
317
325 static unsigned int display_key_new(unsigned numkeys);
326
333 static unsigned ensure_key(Inkscape::DrawingItem *di);
334
335 Inkscape::DrawingItem *invoke_show(Inkscape::Drawing &drawing, unsigned int key, unsigned int flags);
336
337 // Removed item from display tree.
338 void invoke_hide(unsigned int key);
339 void invoke_hide_except(unsigned key, const std::vector<SPItem const *> &to_keep);
340
341 void getSnappoints(std::vector<Inkscape::SnapCandidatePoint> &p, Inkscape::SnapPreferences const *snapprefs=nullptr) const;
342 void adjust_pattern(/* Geom::Affine const &premul, */ Geom::Affine const &postmul, bool set = false,
344 void adjust_hatch(/* Geom::Affine const &premul, */ Geom::Affine const &postmul, bool set = false,
346 void adjust_gradient(/* Geom::Affine const &premul, */ Geom::Affine const &postmul, bool set = false);
347 void adjust_clip(/* Geom::Affine const &premul, */ Geom::Affine const &postmul, bool set = false);
349 void adjust_stroke(double ex);
350
354 void adjust_stroke_width_recursive(double ex);
355
356 void freeze_stroke_width_recursive(bool freeze);
357
361 void adjust_paint_recursive(Geom::Affine advertized_transform, Geom::Affine t_ancestors,
363
367 bool collidesWith(Geom::PathVector const &shape) const;
368 bool collidesWith(SPItem const &other) const;
369
378 void doWriteTransform(Geom::Affine const &transform, Geom::Affine const *adv = nullptr, bool compensate = true);
379
384 void set_item_transform(Geom::Affine const &transform_matrix);
385
390 Inkscape::DrawingItem *get_arenaitem(unsigned key) const;
391
396
401
403
408
409 std::optional<Inkscape::Colors::Color> _highlightColor;
410
411 bool isExpanded() const { return _is_expanded; }
412 void setExpanded(bool expand) { _is_expanded = expand; }
413
414private:
421
422 mutable bool _is_evaluated;
424
425 void clip_ref_changed(SPObject *old_clip, SPObject *clip);
426 void mask_ref_changed(SPObject *old_mask, SPObject *mask);
427 void fill_ps_ref_changed(SPObject *old_ps, SPObject *ps);
428 void stroke_ps_ref_changed(SPObject *old_ps, SPObject *ps);
429 void filter_ref_changed(SPObject *old_obj, SPObject *obj);
430
431public:
432 void rotate_rel(Geom::Rotate const &rotation);
433 void scale_rel(Geom::Scale const &scale);
434 void skew_rel(double skewX, double skewY);
435 void move_rel( Geom::Translate const &tr);
437 void release() override;
438 void set(SPAttr key, char const* value) override;
439 void update(SPCtx *ctx, unsigned int flags) override;
440 void modified(unsigned int flags) override;
441 Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags) override;
442
443 virtual Geom::OptRect bbox(Geom::Affine const &transform, SPItem::BBoxType type) const;
444 virtual void print(SPPrintContext *ctx);
445 virtual const char* typeName() const;
446 virtual const char* displayName() const;
447 virtual char* description() const;
448 virtual Inkscape::DrawingItem* show(Inkscape::Drawing &drawing, unsigned int key, unsigned int flags);
449 virtual void hide(unsigned int key);
450 virtual void snappoints(std::vector<Inkscape::SnapCandidatePoint> &p, Inkscape::SnapPreferences const *snapprefs) const;
452 virtual void removeTransformsRecursively(SPObject const *root);
453
454 virtual void convert_to_guides() const;
455};
456
457// Utility
458
463Geom::Affine i2anc_affine(SPObject const *item, SPObject const *ancestor);
464
465Geom::Affine i2i_affine(SPObject const *src, SPObject const *dest);
466
468
469/* fixme: - these are evil, but OK */
470
471int sp_item_repr_compare_position(SPItem const *first, SPItem const *second);
472
473inline bool sp_item_repr_compare_position_bool(SPObject const *first, SPObject const *second)
474{
475 return sp_repr_compare_position(first->getRepr(), second->getRepr()) < 0;
476}
477
479SPItem const *sp_item_first_item_child(SPObject const *obj);
480
481#endif // SEEN_SP_ITEM_H
482
483/*
484 Local Variables:
485 mode:c++
486 c-file-style:"stroustrup"
487 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
488 indent-tabs-mode:nil
489 fill-column:99
490 End:
491*/
492// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
3x3 affine transformation matrix.
SPAttr
Definition attributes.h:27
Geom::IntRect visible
Definition canvas.cpp:154
Geom::IntRect bounds
Definition canvas.cpp:182
constexpr int tag_of
Convenience function to retrieve the tag (class id) of a given type.
Definition cast.h:26
3x3 matrix representing an affine transformation.
Definition affine.h:70
Axis-aligned rectangle that can be empty.
Definition rect.h:203
Sequence of subpaths.
Definition pathvector.h:122
Two-dimensional point that doubles as a vector.
Definition point.h:66
Axis aligned, non-empty rectangle.
Definition rect.h:92
Rotation around the origin.
Definition transforms.h:187
Scaling from the origin.
Definition transforms.h:150
Translation by a vector.
Definition transforms.h:115
SVG drawing item for display.
Storing of snapping preferences.
Interface for refcounted XML nodes.
Definition node.h:80
Typed SVG document implementation.
Definition document.h:103
Base class for visual SVG elements.
Definition sp-item.h:109
void scale_rel(Geom::Scale const &scale)
Definition sp-item.cpp:1923
bool isSensitive() const
Definition sp-item.h:174
Geom::OptRect desktopPreferredBounds() const
Definition sp-item.cpp:1058
void modified(unsigned int flags) override
Definition sp-item.cpp:843
double transform_center_y
Definition sp-item.h:131
SPGroup * getParentGroup() const
Return the parent, only if it's a group object.
Definition sp-item.cpp:473
virtual Geom::Affine set_transform(Geom::Affine const &transform)
Definition sp-item.cpp:1620
bool raiseOne()
Definition sp-item.cpp:429
bool isEvaluated() const
Definition sp-item.cpp:310
SPClipPathReference & getClipRef()
Definition sp-item.cpp:192
void clip_ref_changed(SPObject *old_clip, SPObject *clip)
Definition sp-item.cpp:669
void set_i2d_affine(Geom::Affine const &transform)
Definition sp-item.cpp:1827
void stroke_ps_ref_changed(SPObject *old_ps, SPObject *ps)
Definition sp-item.cpp:743
void set_item_transform(Geom::Affine const &transform_matrix)
Sets item private transform (not propagated to repr), without compensating stroke widths,...
Definition sp-item.cpp:1772
int tag() const override
Definition sp-item.h:125
EvaluatedStatus _evaluated_status
Definition sp-item.h:423
std::vector< std::pair< Glib::ustring, Glib::ustring > > rootsatellites
Definition sp-item.h:153
Geom::Affine i2dt_affine() const
Returns the transformation from item to desktop coords.
Definition sp-item.cpp:1821
void update(SPCtx *ctx, unsigned int flags) override
Definition sp-item.cpp:780
SPAvoidRef * avoidRef
Definition sp-item.h:160
virtual void snappoints(std::vector< Inkscape::SnapCandidatePoint > &p, Inkscape::SnapPreferences const *snapprefs) const
Definition sp-item.cpp:1096
virtual void print(SPPrintContext *ctx)
Definition sp-item.cpp:1154
virtual std::optional< Geom::PathVector > documentExactBounds() const
Get an exact geometric shape representing the visual bounds of the item in the document coordinates.
Definition sp-item.cpp:1035
Geom::OptRect desktopBounds(BBoxType type) const
Definition sp-item.cpp:1067
Geom::OptRect documentVisualBounds() const
Get item's visual bbox in document coordinate system.
Definition sp-item.cpp:1018
void setHighlight(Inkscape::Colors::Color color)
Definition sp-item.cpp:268
SPMaskReference & getMaskRef()
Definition sp-item.cpp:182
virtual char * description() const
Definition sp-item.cpp:1189
Geom::OptRect documentPreferredBounds() const
Definition sp-item.cpp:1004
void freeze_stroke_width_recursive(bool freeze)
Definition sp-item.cpp:1530
void lowerToBottom()
Definition sp-item.cpp:458
void raiseToTop()
Definition sp-item.cpp:419
sigc::signal< void(Geom::Affine const *, SPItem *)> _transformed_signal
Definition sp-item.h:165
Geom::OptRect documentBounds(BBoxType type) const
Definition sp-item.cpp:1026
Geom::OptRect documentGeometricBounds() const
Get item's geometric bbox in document coordinate system.
Definition sp-item.cpp:1013
virtual Inkscape::Colors::Color highlight_color() const
Definition sp-item.cpp:277
Inkscape::XML::Node * write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags) override
Definition sp-item.cpp:851
SPClipPathReference * clip_ref
Definition sp-item.h:156
Inkscape::DrawingItem * invoke_show(Inkscape::Drawing &drawing, unsigned int key, unsigned int flags)
Definition sp-item.cpp:1269
Geom::Point getCenter(bool ensure_uptodate=true) const
Definition sp-item.cpp:377
SPMask * getMaskObject() const
Definition sp-item.cpp:177
Inkscape::DrawingItem * get_arenaitem(unsigned key) const
Return the arenaitem corresponding to the given item in the display with the given key.
Definition sp-item.cpp:1848
sigc::connection connectTransformed(sigc::slot< void(Geom::Affine const *, SPItem *)> slot)
Definition sp-item.h:234
bool isHidden() const
Definition sp-item.cpp:235
bool lowerOne()
Definition sp-item.cpp:439
bool isVisibleAndUnlocked() const
Definition sp-item.cpp:210
void invoke_print(SPPrintContext *ctx)
Definition sp-item.cpp:1158
void release() override
Definition sp-item.cpp:535
void adjust_gradient(Geom::Affine const &postmul, bool set=false)
Definition sp-item.cpp:1426
void filter_ref_changed(SPObject *old_obj, SPObject *obj)
Definition sp-item.cpp:763
bool _is_expanded
Definition sp-item.h:136
virtual void hide(unsigned int key)
Definition sp-item.cpp:1316
void moveTo(SPItem *target, bool intoafter)
Move this SPItem into or after another SPItem in the doc.
Definition sp-item.cpp:478
void adjust_stroke_width_recursive(double ex)
Recursively scale stroke width in item and its children by expansion.
Definition sp-item.cpp:1515
void skew_rel(double skewX, double skewY)
Definition sp-item.cpp:1933
Geom::Affine transform
Definition sp-item.h:138
void adjust_paint_recursive(Geom::Affine advertized_transform, Geom::Affine t_ancestors, PaintServerType type=GRADIENT)
Recursively compensate pattern or gradient transform.
Definition sp-item.cpp:1564
Geom::Rect viewport
Definition sp-item.h:140
void invoke_hide(unsigned int key)
Definition sp-item.cpp:1320
bool isLocked() const
Definition sp-item.cpp:218
bool unoptimized()
Definition sp-item.cpp:1645
void setEvaluated(bool visible)
Definition sp-item.cpp:290
void setHidden(bool hidden)
Definition sp-item.cpp:241
void unsetCenter()
Definition sp-item.cpp:367
SPObject * isInClipPath() const
Definition sp-item.cpp:1238
std::optional< Inkscape::Colors::Color > _highlightColor
Definition sp-item.h:409
void fill_ps_ref_changed(SPObject *old_ps, SPObject *ps)
Definition sp-item.cpp:723
void getSnappoints(std::vector< Inkscape::SnapCandidatePoint > &p, Inkscape::SnapPreferences const *snapprefs=nullptr) const
Definition sp-item.cpp:1105
void rotate_rel(Geom::Rotate const &rotation)
Definition sp-item.cpp:1905
bool collidesWith(Geom::PathVector const &shape) const
Checks for visual collision with another item.
Definition sp-item.cpp:1606
void move_rel(Geom::Translate const &tr)
Definition sp-item.cpp:1951
virtual Geom::OptRect bbox(Geom::Affine const &transform, SPItem::BBoxType type) const
Definition sp-item.cpp:915
SPAvoidRef & getAvoidRef()
Definition sp-item.cpp:202
unsigned bbox_valid
Definition sp-item.h:129
SPText const * getClipTextObject() const
Return the text object, IF and only if this item is clipped by a single SPText object.
Definition sp-item.cpp:126
void resetEvaluated()
Definition sp-item.cpp:295
Geom::OptRect desktopVisualBounds() const
Get item's visual bbox in desktop coordinate system.
Definition sp-item.cpp:1049
void adjust_hatch(Geom::Affine const &postmul, bool set=false, PaintServerTransform=TRANSFORM_BOTH)
Definition sp-item.cpp:1403
bool updateCenterIfSet(Geom::Point const &center)
Definition sp-item.cpp:357
Geom::Affine getRelativeTransform(SPObject const *obj) const
Definition sp-item.cpp:1812
void scaleCenter(Geom::Scale const &sc)
Definition sp-item.cpp:406
Geom::OptRect desktopGeometricBounds() const
Get item's geometric bbox in desktop coordinate system.
Definition sp-item.cpp:1044
void adjust_pattern(Geom::Affine const &postmul, bool set=false, PaintServerTransform=TRANSFORM_BOTH)
Definition sp-item.cpp:1380
virtual void removeTransformsRecursively(SPObject const *root)
Definition sp-item.cpp:1625
void adjust_stroke(double ex)
Definition sp-item.cpp:1472
virtual const char * typeName() const
The item's type name, not node tag name.
Definition sp-item.cpp:1176
bool isExplicitlyHidden() const
Returns something suitable for the ‘Hide’ checkbox in the Object Properties dialog box.
Definition sp-item.cpp:318
@ VISUAL_BBOX
Definition sp-item.h:118
@ GEOMETRIC_BBOX
Definition sp-item.h:116
@ APPROXIMATE_BBOX
Definition sp-item.h:114
unsigned int sensitive
Definition sp-item.h:127
Geom::OptRect geometricBounds(Geom::Affine const &transform=Geom::identity()) const
Get item's geometric bounding box in this item's coordinate system.
Definition sp-item.cpp:920
bool isExpanded() const
Definition sp-item.h:411
void setExpanded(bool expand)
Definition sp-item.h:412
static unsigned ensure_key(Inkscape::DrawingItem *di)
Ensures that a drawing item's key is the first of a block of ITEM_KEY_SIZE keys, assigning it such a ...
Definition sp-item.cpp:1255
Geom::Affine i2doc_affine() const
Returns the accumulated transformation of the item and all its ancestors, including root's viewport.
Definition sp-item.cpp:1816
SPItem()
Definition sp-item.cpp:75
SPMaskReference * mask_ref
Definition sp-item.h:157
~SPItem() override
bool isFiltered() const
Returns true if the item is filtered, false otherwise.
Definition sp-item.cpp:1226
std::optional< Geom::PathVector > getClipPathVector() const
Return the path vector of the clipping region.
Definition sp-item.cpp:112
virtual const char * displayName() const
The item's type name as a translated human string.
Definition sp-item.cpp:1185
char * detailedDescription() const
Returns a string suitable for status bar, formatted in pango markup language.
Definition sp-item.cpp:1193
bool isCenterSet() const
Definition sp-item.cpp:372
static unsigned int display_key_new(unsigned numkeys)
Allocates unique integer keys.
Definition sp-item.cpp:1246
PaintServerType
Definition sp-item.h:121
@ GRADIENT
Definition sp-item.h:121
@ HATCH
Definition sp-item.h:121
@ PATTERN
Definition sp-item.h:121
bool freeze_stroke_width
Definition sp-item.h:132
void build(SPDocument *document, Inkscape::XML::Node *repr) override
Definition sp-item.cpp:512
Geom::OptRect visualBounds(Geom::Affine const &transform=Geom::identity(), bool wfilter=true, bool wclip=true, bool wmask=true) const
Get item's visual bounding box in this item's coordinate system.
Definition sp-item.cpp:925
virtual Inkscape::DrawingItem * show(Inkscape::Drawing &drawing, unsigned int key, unsigned int flags)
Definition sp-item.cpp:1264
SPObject * isInMask() const
Definition sp-item.cpp:1230
virtual void convert_to_guides() const
Definition sp-item.cpp:1880
unsigned int pos_in_parent() const
Definition sp-item.cpp:1076
Geom::OptRect doc_bbox
Definition sp-item.h:139
void doWriteTransform(Geom::Affine const &transform, Geom::Affine const *adv=nullptr, bool compensate=true)
Set a new transform on an object.
Definition sp-item.cpp:1658
void remove_clip_transforms()
Definition sp-item.cpp:1465
void setLocked(bool lock)
Definition sp-item.cpp:228
EvaluatedStatus
Definition sp-item.h:416
@ StatusCalculated
Definition sp-item.h:418
@ StatusSet
Definition sp-item.h:419
@ StatusUnknown
Definition sp-item.h:417
void adjust_clip(Geom::Affine const &postmul, bool set=false)
Definition sp-item.cpp:1458
std::vector< SPItemView > views
Definition sp-item.h:163
void setExplicitlyHidden(bool val)
Sets the display CSS property to ‘hidden’ if val is true, otherwise makes it unset.
Definition sp-item.cpp:324
void mask_ref_changed(SPObject *old_mask, SPObject *mask)
Definition sp-item.cpp:696
void setCenter(Geom::Point const &object_centre)
Sets the transform_center_x and transform_center_y properties to retain the rotation center.
Definition sp-item.cpp:331
Geom::Affine dt2i_affine() const
Returns the transformation from desktop to item coords.
Definition sp-item.cpp:1841
bool _is_evaluated
Definition sp-item.h:422
SPClipPath * getClipObject() const
Definition sp-item.cpp:102
double transform_center_x
Definition sp-item.h:130
unsigned int stop_paint
Definition sp-item.h:128
void invoke_hide_except(unsigned key, const std::vector< SPItem const * > &to_keep)
Invoke hide on all non-group items, except for the list of items to keep.
Definition sp-item.cpp:1358
bool isHighlightSet() const
Definition sp-item.cpp:273
SPObject is an abstract base class of all of the document nodes at the SVG document level.
Definition sp-object.h:160
Inkscape::XML::Node * repr
Definition sp-object.h:193
SPDocument * document
Definition sp-object.h:188
Inkscape::XML::Node * getRepr()
Returns the XML representation of tree.
RootCluster root
std::unique_ptr< T, UnlinkDeleter > DrawingItemPtr
Smart pointer used by the Object Tree to hold items in the Display Tree, like std::unique_ptr.
Contains forward declarations of 2geom types.
SPItem * item
Affine identity()
Create an identity matrix.
Definition affine.h:210
Helper class to stream background task notifications as a series of messages.
static T clip(T const &v, T const &a, T const &b)
static cairo_user_data_key_t key
Axis-aligned rectangle.
int sp_repr_compare_position(Inkscape::XML::Node const *first, Inkscape::XML::Node const *second)
Works for different-parent objects, so long as they have a common ancestor.
C facade to Inkscape::XML::Node.
PaintServerTransform
Definition sp-item.h:56
@ TRANSFORM_STROKE
Definition sp-item.h:56
@ TRANSFORM_FILL
Definition sp-item.h:56
@ TRANSFORM_BOTH
Definition sp-item.h:56
Geom::Affine sp_item_transform_repr(SPItem *item)
Find out the inverse of previous transform of an item (from its repr)
Definition sp-item.cpp:1500
Geom::Affine i2i_affine(SPObject const *src, SPObject const *dest)
Definition sp-item.cpp:1806
Geom::Affine i2anc_affine(SPObject const *item, SPObject const *ancestor)
Definition sp-item.cpp:1787
SPItemKey
Definition sp-item.h:67
@ ITEM_KEY_SIZE
Definition sp-item.h:73
@ ITEM_KEY_CLIP
Definition sp-item.h:68
@ ITEM_KEY_STROKE
Definition sp-item.h:71
@ ITEM_KEY_FILL
Definition sp-item.h:70
@ ITEM_KEY_MARKERS
Definition sp-item.h:72
@ ITEM_KEY_MASK
Definition sp-item.h:69
int sp_item_repr_compare_position(SPItem const *first, SPItem const *second)
Definition sp-item.cpp:1856
bool sp_item_repr_compare_position_bool(SPObject const *first, SPObject const *second)
Definition sp-item.h:473
SPItem * sp_item_first_item_child(SPObject *obj)
Definition sp-item.cpp:1867
TODO: insert short description here.
@ SP_MARKER_LOC_QTY
Interface for XML documents.
Definition document.h:43
Unused.
Definition sp-object.h:94
Contains transformations to document/viewport and the viewport size.
Definition sp-item.h:92
Geom::Affine i2doc
Item to document transformation.
Definition sp-item.h:94
Geom::Affine i2vp
Item to viewport transformation.
Definition sp-item.h:100
Geom::Rect viewport
Viewport size.
Definition sp-item.h:97
unsigned flags
Definition sp-item.h:60
DrawingItemPtr< Inkscape::DrawingItem > drawingitem
Definition sp-item.h:62
unsigned key
Definition sp-item.h:61