Inkscape
Vector Graphics Editor
Loading...
Searching...
No Matches
SPUse Class Referencefinal

#include <sp-use.h>

Inheritance diagram for SPUse:
SPItem SPDimensions SPObject Inkscape::XML::NodeObserver

Public Member Functions

 SPUse ()
 
 ~SPUse () override
 
int tag () const override
 
void build (SPDocument *doc, Inkscape::XML::Node *repr) override
 
void release () override
 
void set (SPAttr key, char const *value) override
 
Inkscape::XML::Nodewrite (Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags) override
 
void update (SPCtx *ctx, unsigned int flags) override
 
void modified (unsigned int flags) override
 
Geom::OptRect bbox (Geom::Affine const &transform, SPItem::BBoxType bboxtype) const override
 
std::optional< Geom::PathVectordocumentExactBounds () const override
 Get an exact geometric shape representing the visual bounds of the item in the document coordinates.
 
const chartypeName () const override
 The item's type name, not node tag name.
 
const chardisplayName () const override
 The item's type name as a translated human string.
 
chardescription () const override
 
void print (SPPrintContext *ctx) override
 
Inkscape::DrawingItemshow (Inkscape::Drawing &drawing, unsigned int key, unsigned int flags) override
 
void hide (unsigned int key) override
 
void snappoints (std::vector< Inkscape::SnapCandidatePoint > &p, Inkscape::SnapPreferences const *snapprefs) const override
 
SPItemroot ()
 Returns the ultimate original of a SPUse (i.e.
 
SPItem constroot () const
 
int cloneDepth () const
 Get the number of dereferences or calls to get_original() needed to get an object which is not an svg:use.
 
SPItemunlink ()
 
SPItemget_original () const
 
Geom::Affine get_parent_transform () const
 Returns the transform that leads to the use from its immediate original.
 
Geom::Affine get_root_transform () const
 Returns the effective transform that goes from the ultimate original to given SPUse, both ends included.
 
bool has_xy_offset () const
 
Geom::Translate get_xy_offset () const
 
SPItemtrueOriginal () const
 Returns the ultimate original of a SPUse, i.e., the first object in the chain of uses which is not itself an SPUse.
 
bool anyInChain (bool(*predicate)(SPItem const *)) const
 Test the passed predicate on all items in a chain of uses.
 
void getLinked (std::vector< SPObject * > &objects, LinkedObjectNature direction=LinkedObjectNature::ANY) const override
 Get objects which are linked to this object as either a source or a target.
 
- Public Member Functions inherited from SPItem
 SPItem ()
 
 ~SPItem () override
 
SPClipPathgetClipObject () const
 
SPMaskgetMaskObject () const
 
SPClipPathReferencegetClipRef ()
 
SPMaskReferencegetMaskRef ()
 
std::optional< Geom::PathVectorgetClipPathVector () const
 Return the path vector of the clipping region.
 
std::optional< Geom::PathVectorgetClipPathVector (SPItem const *root) const
 Return the path vector of the clipping region, combined with the clipping regions of all groups containing this object up to and including root.
 
SPText const * getClipTextObject () const
 Return the text object, IF and only if this item is clipped by a single SPText object.
 
SPAvoidRefgetAvoidRef ()
 
bool isLocked () const
 
void setLocked (bool lock, bool recursive=false)
 
bool isHidden () const
 
void setHidden (bool hidden)
 
bool isSensitive () const
 
void setHighlight (Inkscape::Colors::Color color)
 
bool isHighlightSet () const
 
virtual Inkscape::Colors::Color highlight_color () const
 
bool isEvaluated () const
 
void setEvaluated (bool visible)
 
void resetEvaluated ()
 
bool unoptimized ()
 
bool isHidden (unsigned display_key) const
 
bool isExplicitlyHidden () const
 Returns something suitable for the ‘Hide’ checkbox in the Object Properties dialog box.
 
void setExplicitlyHidden (bool val)
 Sets the display CSS property to ‘hidden’ if val is true, otherwise makes it unset.
 
void setCenter (Geom::Point const &object_centre)
 Sets the transform_center_x and transform_center_y properties to retain the rotation center.
 
bool updateCenterIfSet (Geom::Point const &center)
 
void unsetCenter ()
 
bool isCenterSet () const
 
Geom::Point getCenter (bool ensure_uptodate=true) const
 
void scaleCenter (Geom::Scale const &sc)
 
bool isVisibleAndUnlocked () const
 
bool isVisibleAndUnlocked (unsigned display_key) const
 
Geom::Affine getRelativeTransform (SPObject const *obj) const
 
bool raiseOne ()
 
bool lowerOne ()
 
void raiseToTop ()
 
void lowerToBottom ()
 
SPGroupgetParentGroup () const
 Return the parent, only if it's a group object.
 
void moveTo (SPItem *target, bool intoafter)
 Move this SPItem into or after another SPItem in the doc.
 
sigc::connection connectTransformed (sigc::slot< void(Geom::Affine const *, SPItem *)> slot)
 
Geom::OptRect geometricBounds (Geom::Affine const &transform=Geom::identity()) const
 Get item's geometric bounding box in this item's coordinate system.
 
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.
 
Geom::OptRect bounds (BBoxType type, Geom::Affine const &transform=Geom::identity()) const
 
Geom::OptRect documentGeometricBounds () const
 Get item's geometric bbox in document coordinate system.
 
Geom::OptRect documentVisualBounds () const
 Get item's visual bbox in document coordinate system.
 
Geom::OptRect documentBounds (BBoxType type) const
 
Geom::OptRect documentPreferredBounds () const
 
Geom::OptRect desktopGeometricBounds () const
 Get item's geometric bbox in desktop coordinate system.
 
Geom::OptRect desktopVisualBounds () const
 Get item's visual bbox in desktop coordinate system.
 
Geom::OptRect desktopPreferredBounds () const
 
Geom::OptRect desktopBounds (BBoxType type) const
 
unsigned int pos_in_parent () const
 
char * detailedDescription () const
 Returns a string suitable for status bar, formatted in pango markup language.
 
bool isFiltered () const
 Returns true if the item is filtered, false otherwise.
 
SPObjectisInMask () const
 
SPObjectisInClipPath () const
 
void invoke_print (SPPrintContext *ctx)
 
Inkscape::DrawingIteminvoke_show (Inkscape::Drawing &drawing, unsigned int key, unsigned int flags)
 
void invoke_hide (unsigned int key)
 
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.
 
void getSnappoints (std::vector< Inkscape::SnapCandidatePoint > &p, Inkscape::SnapPreferences const *snapprefs=nullptr) const
 
void adjust_pattern (Geom::Affine const &postmul, bool set=false, PaintServerTransform=TRANSFORM_BOTH)
 
void adjust_hatch (Geom::Affine const &postmul, bool set=false, PaintServerTransform=TRANSFORM_BOTH)
 
void adjust_gradient (Geom::Affine const &postmul, bool set=false)
 
void adjust_clip (Geom::Affine const &postmul, bool set=false)
 
void remove_clip_transforms ()
 
void adjust_stroke (double ex)
 
void adjust_stroke_width_recursive (double ex)
 Recursively scale stroke width in item and its children by expansion.
 
void freeze_stroke_width_recursive (bool freeze)
 
void adjust_paint_recursive (Geom::Affine advertized_transform, Geom::Affine t_ancestors, PaintServerType type=GRADIENT)
 Recursively compensate pattern or gradient transform.
 
bool collidesWith (Geom::PathVector const &shape) const
 Checks for visual collision with another item.
 
bool collidesWith (SPItem const &other) const
 
void doWriteTransform (Geom::Affine const &transform, Geom::Affine const *adv=nullptr, bool compensate=true)
 Set a new transform on an object.
 
void set_item_transform (Geom::Affine const &transform_matrix)
 Sets item private transform (not propagated to repr), without compensating stroke widths, gradients, patterns as sp_item_write_transform does.
 
Inkscape::DrawingItemget_arenaitem (unsigned key) const
 Return the arenaitem corresponding to the given item in the display with the given key.
 
Geom::Affine i2doc_affine () const
 Returns the accumulated transformation of the item and all its ancestors, including root's viewport.
 
Geom::Affine i2dt_affine () const
 Returns the transformation from item to desktop coords.
 
void set_i2d_affine (Geom::Affine const &transform)
 
Geom::Affine dt2i_affine () const
 Returns the transformation from desktop to item coords.
 
bool isExpanded () const
 
void setExpanded (bool expand)
 
void rotate_rel (Geom::Rotate const &rotation)
 
void scale_rel (Geom::Scale const &scale)
 
void skew_rel (double skewX, double skewY)
 
void move_rel (Geom::Translate const &tr)
 
virtual Geom::Affine set_transform (Geom::Affine const &transform)
 
virtual void removeTransformsRecursively (SPObject const *root)
 
virtual void convert_to_guides () const
 
- Public Member Functions inherited from SPObject
 SPObject ()
 Constructor, sets all attributes to default values.
 
 SPObject (SPObject const &)=delete
 
SPObjectoperator= (SPObject const &)=delete
 
 ~SPObject () override
 Destructor, frees the used memory and unreferences a potential successor of the object.
 
char const * getId () const
 Returns the objects current ID string.
 
void getIds (std::set< std::string > &ret) const
 Accumulate this id and all it's descendants ids.
 
std::string getUrl () const
 Get the id in a URL format.
 
Inkscape::XML::NodegetRepr ()
 Returns the XML representation of tree.
 
Inkscape::XML::Node const * getRepr () const
 Returns the XML representation of tree.
 
void releaseReferences ()
 Cleans up an SPObject, releasing its references and requesting that references to it be released.
 
sigc::connection connectRelease (sigc::slot< void(SPObject *)> slot)
 Connects to the release request signal.
 
bool isSiblingOf (SPObject const *object) const
 
std::vector< SPObject * > getLinked (LinkedObjectNature direction=LinkedObjectNature::ANY) const
 Get objects which are linked, like above.
 
bool isAncestorOf (SPObject const *object) const
 True if object is non-NULL and this is some in/direct parent of object.
 
SPObject const * nearestCommonAncestor (SPObject const *object) const
 Returns youngest object being parent to this and object.
 
SPObject const * getTopAncestorNonLayer () const
 Returns ancestor non layer.
 
SPObjectgetNext ()
 
SPObjectgetPrev ()
 Returns previous object in sibling list or NULL.
 
bool hasChildren () const
 
SPObjectfirstChild ()
 
SPObject const * firstChild () const
 
SPObjectlastChild ()
 
SPObject const * lastChild () const
 
SPObjectnthChild (unsigned index)
 
SPObject const * nthChild (unsigned index) const
 
std::vector< SPObject * > childList (bool add_ref, Action action=ActionGeneral)
 Retrieves the children as a std vector object, optionally ref'ing the children in the process, if add_ref is specified.
 
std::vector< SPObject * > ancestorList (bool root_to_tip)
 Retrieves a list of ancestors of the object, as an easy to use vector.
 
SPObjectappendChildRepr (Inkscape::XML::Node *repr)
 Append repr as child of this object.
 
char const * label () const
 Gets the author-visible label property for the object or a default if no label is defined.
 
char const * defaultLabel () const
 Returns a default label property for this object.
 
void setLabel (char const *label)
 Sets the author-visible label for this object.
 
char * title () const
 Returns the title of this object, or NULL if there is none.
 
bool setTitle (char const *title, bool verbatim=false)
 Sets the title of this object.
 
char * desc () const
 Returns the description of this object, or NULL if there is none.
 
bool setDesc (char const *desc, bool verbatim=false)
 Sets the description of this object.
 
Glib::ustring getExportFilename () const
 Get and set the exportable filename on this object.
 
void setExportFilename (Glib::ustring filename)
 
Geom::Point getExportDpi () const
 Get and set the exported DPI for this objet, if available.
 
void setExportDpi (Geom::Point dpi)
 
CollectionPolicy collectionPolicy () const
 Set the policy under which this object will be orphan-collected.
 
void setCollectionPolicy (CollectionPolicy policy)
 Sets the orphan-collection policy in effect for this object.
 
void requestOrphanCollection ()
 Requests a later automatic call to collectOrphan().
 
void collectOrphan ()
 Unconditionally delete the object if it is not referenced.
 
void hrefObject (SPObject *owner=nullptr)
 Increase weak refcount.
 
void unhrefObject (SPObject *owner=nullptr)
 Decrease weak refcount.
 
bool isReferenced ()
 Check if object is referenced by any other object.
 
void deleteObject (bool propagate, bool propagate_descendants)
 Deletes an object, unparenting it from its parent.
 
void deleteObject (bool propagate=true)
 Deletes on object.
 
void cropToObject (SPObject *except)
 Removes all children except for the given object, it's children and it's ancesstors.
 
void cropToObjects (std::vector< SPObject * > except_objects)
 Removes objects which are not related to given list of objects.
 
void getObjectsExcept (std::vector< SPObject * > &objects, const std::vector< SPObject * > &except)
 Get all child objects except for any in the list.
 
void getLinkedRecursive (std::vector< SPObject * > &objects, LinkedObjectNature direction=LinkedObjectNature::ANY) const
 Grows the input list with all linked items recursively in both child nodes and links of links.
 
sigc::connection connectDelete (sigc::slot< void(SPObject *)> slot)
 Connects a slot to be called when an object is deleted.
 
sigc::connection connectPositionChanged (sigc::slot< void(SPObject *)> slot)
 
SPObjectsuccessor ()
 Returns the object which supercedes this one (if any).
 
void setSuccessor (SPObject *successor)
 Indicates that another object supercedes this one.
 
void setTmpSuccessor (SPObject *tmpsuccessor)
 Indicates that another object supercedes temporaty this one.
 
void unsetTmpSuccessor ()
 Unset object supercedes.
 
void fixTmpSuccessors ()
 Fix temporary successors in duple stamp.
 
Inkscape::XML::NodeupdateRepr (unsigned int flags=SP_OBJECT_WRITE_EXT)
 Updates the object's repr based on the object's state.
 
Inkscape::XML::NodeupdateRepr (Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, unsigned int flags)
 Updates the given repr based on the object's state.
 
void requestDisplayUpdate (unsigned int flags)
 Queues an deferred update of this object's display.
 
void updateDisplay (SPCtx *ctx, unsigned int flags)
 Updates the object's display immediately.
 
void requestModified (unsigned int flags)
 Requests that a modification notification signal be emitted later (e.g.
 
void emitModified (unsigned int flags)
 Emits the MODIFIED signal with the object's flags.
 
sigc::connection connectModified (sigc::slot< void(SPObject *, unsigned int)> slot)
 Connects to the modification notification signal.
 
void _sendDeleteSignalRecursive ()
 Sends the delete signal to all children of this object recursively.
 
void _updateTotalHRefCount (int increment)
 Adds increment to _total_hrefcount of object and its parents.
 
void _requireSVGVersion (unsigned major, unsigned minor)
 
void _requireSVGVersion (Inkscape::Version version)
 Lifts SVG version of all root objects to version.
 
void attach (SPObject *object, SPObject *prev)
 Put object into object tree, under parent, and behind prev; also update object's XML space.
 
void reorder (SPObject *obj, SPObject *prev)
 In list of object's children, move object behind prev.
 
void detach (SPObject *object)
 Remove object from parent's children, release and unref it.
 
SPObjectget_child_by_repr (Inkscape::XML::Node *repr)
 Return object's child whose node pointer equals repr.
 
void invoke_build (SPDocument *document, Inkscape::XML::Node *repr, unsigned int cloned)
 
int getIntAttribute (char const *key, int def)
 
unsigned getPosition ()
 
char const * getAttribute (char const *name) const
 
void appendChild (Inkscape::XML::Node *child)
 
void addChild (Inkscape::XML::Node *child, Inkscape::XML::Node *prev=nullptr)
 
void setKeyValue (SPAttr key, char const *value)
 Call virtual set() function of object.
 
void setAttribute (Inkscape::Util::const_char_ptr key, Inkscape::Util::const_char_ptr value)
 
void setAttributeDouble (Inkscape::Util::const_char_ptr key, double value)
 
void setAttributeOrRemoveIfEmpty (Inkscape::Util::const_char_ptr key, Inkscape::Util::const_char_ptr value)
 
void readAttr (char const *key)
 Read value of key attribute from XML node into object.
 
void readAttr (SPAttr keyid)
 
char const * getTagName () const
 
void removeAttribute (char const *key)
 
void setCSS (SPCSSAttr *css, char const *attr)
 
void changeCSS (SPCSSAttr *css, char const *attr)
 
bool storeAsDouble (char const *key, double *val) const
 
virtual void read_content ()
 
void recursivePrintTree (unsigned level=0)
 
void objectTrace (std::string const &, bool in=true, unsigned flags=0)
 
std::string generate_unique_id (char const *default_id=nullptr) const
 Generate a document-wide unique id for this object.
 
- Public Member Functions inherited from SPDimensions
void calcDimsFromParentViewport (const SPItemCtx *ictx, bool assign_to_set=false, SPDimensions const *use=nullptr)
 Update computed x/y/width/height for "percent" units and/or from its referencing clone parent.
 
void writeDimensions (Inkscape::XML::Node *) const
 Write the geometric properties (x/y/width/height) to XML attributes, if they are set.
 

Public Attributes

SPItemchild
 
charhref
 
SPUseReferenceref
 
sigc::connection _delete_connection
 
sigc::connection _changed_connection
 
sigc::connection _transformed_connection
 
- Public Attributes inherited from SPItem
unsigned int sensitive: 1
 
unsigned int stop_paint: 1
 
unsigned bbox_valid: 1
 
double transform_center_x
 
double transform_center_y
 
bool freeze_stroke_width
 
bool _is_expanded = false
 
Geom::Affine transform
 
Geom::OptRect doc_bbox
 
Geom::Rect viewport
 
std::vector< std::pair< Glib::ustring, Glib::ustring > > rootsatellites
 
std::vector< SPItemViewviews
 
sigc::signal< void(Geom::Affine const *, SPItem *)> _transformed_signal
 
std::optional< Inkscape::Colors::Color_highlightColor
 
- Public Attributes inherited from SPObject
unsigned int cloned: 1
 
SPObjectclone_original {nullptr}
 
unsigned int uflags: 16
 
unsigned int mflags: 16
 
SPIXmlSpace xml_space
 
Glib::ustring lang
 
unsigned int hrefcount {0}
 
unsigned int _total_hrefcount {0}
 
SPDocumentdocument {nullptr}
 
SPObjectparent {nullptr}
 
int refCount {1}
 
std::list< SPObject * > hrefList
 
SPStylestyle
 Represents the style properties, whether from presentation attributes, the style attribute, or inherited.
 
SPStylecontext_style
 Represents the style that should be used to resolve 'context-fill' and 'context-stroke'.
 
sigc::signal< void(SPObject *)> _release_signal
 
sigc::signal< void(SPObject *)> _delete_signal
 
sigc::signal< void(SPObject *)> _position_changed_signal
 
sigc::signal< void(SPObject *, unsigned int)> _modified_signal
 
SPObject_successor {nullptr}
 
SPObject_tmpsuccessor {nullptr}
 
CollectionPolicy _collection_policy {SPObject::COLLECT_WITH_PARENT}
 
char * _label {nullptr}
 
char * _default_label {nullptr}
 
ChildrenList children
 
- Public Attributes inherited from SPDimensions
SVGLength x
 
SVGLength y
 
SVGLength width
 
SVGLength height
 

Private Member Functions

void href_changed ()
 
void move_compensate (Geom::Affine const *mp)
 Sensing a movement of the original, this function attempts to compensate for it in such a way that the clone stays unmoved or moves in parallel (depending on user setting) regardless of the clone's transform.
 
void delete_self ()
 

Additional Inherited Members

- Public Types inherited from SPItem
enum  BBoxType { APPROXIMATE_BBOX , GEOMETRIC_BBOX , VISUAL_BBOX }
 
enum  PaintServerType { PATTERN , HATCH , GRADIENT }
 
- Public Types inherited from SPObject
enum  CollectionPolicy { COLLECT_WITH_PARENT , ALWAYS_COLLECT }
 
enum class  LinkedObjectNature { DEPENDENT = -1 , ANY = 0 , DEPENDENCY = 1 }
 
enum  Action { ActionGeneral , ActionBBox , ActionUpdate , ActionShow }
 
typedef Inkscape::Util::ForwardPointerIterator< SPObject, ParentIteratorStrategyParentIterator
 
typedef Inkscape::Util::ForwardPointerIterator< SPObject const, ParentIteratorStrategyConstParentIterator
 
using ChildrenList = boost::intrusive::list< SPObject, boost::intrusive::member_hook< SPObject, ListHook, &SPObject::_child_hook > >
 
- Static Public Member Functions inherited from SPItem
static unsigned int display_key_new (unsigned numkeys)
 Allocates unique integer keys.
 
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 key if necessary.
 
- Protected Types inherited from SPObject
typedef boost::intrusive::list_member_hook ListHook
 
- Protected Member Functions inherited from SPObject
virtual void child_added (Inkscape::XML::Node *child, Inkscape::XML::Node *ref)
 
virtual void remove_child (Inkscape::XML::Node *child)
 
virtual void order_changed (Inkscape::XML::Node *child, Inkscape::XML::Node *old_repr, Inkscape::XML::Node *new_repr)
 
virtual void tag_name_changed (gchar const *oldname, gchar const *newname)
 
- Protected Attributes inherited from SPObject
ListHook _child_hook
 

Detailed Description

Definition at line 25 of file sp-use.h.

Constructor & Destructor Documentation

◆ SPUse()

◆ ~SPUse()

SPUse::~SPUse ( )
override

Definition at line 74 of file sp-use.cpp.

References child, Inkscape::URIReference::detach(), SPObject::detach(), and ref.

Member Function Documentation

◆ anyInChain()

bool SPUse::anyInChain ( bool(*)(SPItem const *)  predicate) const

Test the passed predicate on all items in a chain of uses.

The chain includes this item, all of its intermediate ancestors in a chain of uses, as well as the ultimate original item.

Returns
Whether any of the items in the chain satisfies the predicate.

Definition at line 384 of file sp-use.cpp.

References cloneDepth(), item, predicate, and SPDimensions::x.

◆ bbox()

Geom::OptRect SPUse::bbox ( Geom::Affine const transform,
SPItem::BBoxType  bboxtype 
) const
overridevirtual

Reimplemented from SPItem.

Definition at line 199 of file sp-use.cpp.

References bbox(), SPItem::bounds(), child, SVGLength::computed, SPItem::transform, and SPDimensions::x.

Referenced by bbox().

◆ build()

void SPUse::build ( SPDocument doc,
Inkscape::XML::Node repr 
)
overridevirtual

Reimplemented from SPItem.

Definition at line 85 of file sp-use.cpp.

References SPItem::build(), SPObject::document, HEIGHT, SPObject::readAttr(), SPObject::repr, WIDTH, X, XLINK_HREF, and Y.

◆ cloneDepth()

int SPUse::cloneDepth ( ) const

Get the number of dereferences or calls to get_original() needed to get an object which is not an svg:use.

Returns -1 if there is no original object.

Definition at line 413 of file sp-use.cpp.

References child, orig, and SPDimensions::x.

Referenced by anyInChain(), and trueOriginal().

◆ delete_self()

◆ description()

gchar * SPUse::description ( ) const
overridevirtual

Reimplemented from SPItem.

Definition at line 263 of file sp-use.cpp.

References child, SPItem::detailedDescription(), SPObject::getAttribute(), SPObject::title(), and SPDimensions::x.

◆ displayName()

const char * SPUse::displayName ( ) const
overridevirtual

The item's type name as a translated human string.

Translated string for UI display.

Reimplemented from SPItem.

Definition at line 255 of file sp-use.cpp.

References child, and SPDimensions::x.

◆ documentExactBounds()

std::optional< Geom::PathVector > SPUse::documentExactBounds ( ) const
overridevirtual

Get an exact geometric shape representing the visual bounds of the item in the document coordinates.

This is different than a simple bounding rectangle aligned to the coordinate axes: the returned pathvector may effectively describe any shape and coincides with an appropriately transformed path-vector for paths. Even for rectangular items such as SPImage, the bounds may be a parallelogram resulting from transforming the bounding rectangle by an affine transformation.

Reimplemented from SPItem.

Definition at line 211 of file sp-use.cpp.

References get_root_transform(), SPItem::i2doc_affine(), original, SPObject::parent, result, trueOriginal(), and SPDimensions::x.

◆ get_original()

SPItem * SPUse::get_original ( ) const

Definition at line 826 of file sp-use.cpp.

References ref.

Referenced by _ungroup_compensate_source_transform().

◆ get_parent_transform()

Geom::Affine SPUse::get_parent_transform ( ) const

Returns the transform that leads to the use from its immediate original.

Does not include the original's transform if any.

Definition at line 471 of file sp-use.cpp.

References get_xy_offset(), has_xy_offset(), Geom::identity(), and SPItem::transform.

Referenced by move_compensate().

◆ get_root_transform()

Geom::Affine SPUse::get_root_transform ( ) const

Returns the effective transform that goes from the ultimate original to given SPUse, both ends included.

Definition at line 433 of file sp-use.cpp.

References child, Geom::identity(), orig, and SPDimensions::x.

Referenced by documentExactBounds(), and unlink().

◆ get_xy_offset()

Geom::Translate SPUse::get_xy_offset ( ) const

Definition at line 487 of file sp-use.cpp.

References SVGLength::_set, SVGLength::computed, SPDimensions::x, and SPDimensions::y.

Referenced by get_parent_transform(), and snappoints().

◆ getLinked()

void SPUse::getLinked ( std::vector< SPObject * > &  objects,
LinkedObjectNature  direction = LinkedObjectNature::ANY 
) const
overridevirtual

Get objects which are linked to this object as either a source or a target.

  • [out] objects - A list which is added to of all found links in this direction.
  • direction - Which objects to include in the output

Reimplemented from SPObject.

Definition at line 862 of file sp-use.cpp.

References SPObject::ANY, SPObject::DEPENDENCY, SPObject::getLinked(), SPUseReference::getObject(), and ref.

◆ has_xy_offset()

bool SPUse::has_xy_offset ( ) const

◆ hide()

void SPUse::hide ( unsigned int  key)
overridevirtual

Reimplemented from SPItem.

Definition at line 320 of file sp-use.cpp.

References child, and SPItem::invoke_hide().

◆ href_changed()

◆ modified()

void SPUse::modified ( unsigned int  flags)
overridevirtual

◆ move_compensate()

void SPUse::move_compensate ( Geom::Affine const mp)
private

◆ print()

void SPUse::print ( SPPrintContext ctx)
overridevirtual

Reimplemented from SPItem.

Definition at line 233 of file sp-use.cpp.

References child, SVGLength::computed, has_xy_offset(), SPItem::invoke_print(), and SPDimensions::x.

◆ release()

void SPUse::release ( )
overridevirtual

◆ root() [1/2]

SPItem * SPUse::root ( )

Returns the ultimate original of a SPUse (i.e.

the first object in the chain of its originals which is not an SPUse). If no original is found, NULL is returned (it is the responsibility of the caller to make sure that this is handled correctly).

Note that the returned is the clone object, i.e. the child of an SPUse (of the argument one for the trivial case) and not the "true original". If you want the true original, use trueOriginal().

Definition at line 337 of file sp-use.cpp.

References child, orig, and SPDimensions::x.

Referenced by root(), and unlink().

◆ root() [2/2]

SPItem const * SPUse::root ( ) const

Definition at line 349 of file sp-use.cpp.

References root().

◆ set()

◆ show()

◆ snappoints()

void SPUse::snappoints ( std::vector< Inkscape::SnapCandidatePoint > &  p,
Inkscape::SnapPreferences const snapprefs 
) const
overridevirtual

◆ tag()

int SPUse::tag ( ) const
inlineoverridevirtual

Reimplemented from SPItem.

Definition at line 29 of file sp-use.h.

References tag_of.

◆ trueOriginal()

SPItem * SPUse::trueOriginal ( ) const

Returns the ultimate original of a SPUse, i.e., the first object in the chain of uses which is not itself an SPUse.

If the chain of references is broken or no original is found, the return value will be nullptr.

Definition at line 358 of file sp-use.cpp.

References cloneDepth(), and SPDimensions::x.

Referenced by documentExactBounds(), and unlink().

◆ typeName()

const char * SPUse::typeName ( ) const
overridevirtual

The item's type name, not node tag name.

NOT translated.

Returns
The item's type name (default: 'item')

Reimplemented from SPItem.

Definition at line 247 of file sp-use.cpp.

References child, and SPDimensions::x.

◆ unlink()

◆ update()

◆ write()

Member Data Documentation

◆ _changed_connection

sigc::connection SPUse::_changed_connection

Definition at line 43 of file sp-use.h.

Referenced by release(), and SPUse().

◆ _delete_connection

sigc::connection SPUse::_delete_connection

Definition at line 42 of file sp-use.h.

Referenced by href_changed(), and release().

◆ _transformed_connection

sigc::connection SPUse::_transformed_connection

Definition at line 46 of file sp-use.h.

Referenced by href_changed(), and release().

◆ child

◆ href

char* SPUse::href

Definition at line 36 of file sp-use.h.

Referenced by href_changed(), release(), and set().

◆ ref

SPUseReference* SPUse::ref

Definition at line 39 of file sp-use.h.

Referenced by get_original(), getLinked(), href_changed(), release(), set(), SPUse(), write(), and ~SPUse().


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