Inkscape
Vector Graphics Editor
|
#include <sp-offset.h>
Public Member Functions | |
SPOffset () | |
~SPOffset () override | |
int | tag () const override |
void | build (SPDocument *document, Inkscape::XML::Node *repr) override |
void | set (SPAttr key, char const *value) override |
void | update (SPCtx *ctx, unsigned int flags) override |
Inkscape::XML::Node * | write (Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned flags) override |
void | release () override |
void | snappoints (std::vector< Inkscape::SnapCandidatePoint > &p, Inkscape::SnapPreferences const *snapprefs) const override |
const char * | displayName () const override |
The item's type name as a translated human string. | |
const char * | typeName () const override |
The item's type name, not node tag name. | |
char * | description () const override |
void | set_shape () override |
![]() | |
SPShape () | |
~SPShape () override | |
int | tag () const override |
Geom::PathVector const * | curve () const |
Return a borrowed pointer to the curve (if any exists) or NULL if there is no curve. | |
Geom::PathVector const * | curveBeforeLPE () const |
Return a borrowed pointer of the curve before LPE (if any exists) or NULL if there is no curve. | |
Geom::PathVector const * | curveForEdit () const |
Return a borrowed pointer of the curve for edit. | |
void | setCurve (Geom::PathVector const *) |
void | setCurve (Geom::PathVector) |
Adds a curve to the shape. | |
void | setCurveInsync (Geom::PathVector const *) |
void | setCurveInsync (Geom::PathVector) |
Same as setCurve() but without updating the display. | |
void | setCurveBeforeLPE (Geom::PathVector const *) |
void | setCurveBeforeLPE (Geom::PathVector) |
Sets _curve_before_lpe to a copy of new_curve | |
bool | checkBrokenPathEffect () |
bool | prepareShapeForLPE (Geom::PathVector &&c) |
int | hasMarkers () const |
int | numberOfMarkers (int type) const |
void | build (SPDocument *document, Inkscape::XML::Node *repr) override |
void | release () override |
Removes, releases and unrefs all children of object. | |
void | update (SPCtx *ctx, unsigned int flags) override |
void | modified (unsigned int flags) override |
void | set (SPAttr key, char const *value) override |
Inkscape::XML::Node * | write (Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags) override |
Geom::OptRect | bbox (Geom::Affine const &transform, SPItem::BBoxType bboxtype) const override |
Geom::OptRect | either_bbox (Geom::Affine const &transform, SPItem::BBoxType bboxtype, bool cache_is_valid, Geom::OptRect bbox_cache, Geom::Affine const &transform_cache) const |
void | print (SPPrintContext *ctx) override |
std::optional< Geom::PathVector > | documentExactBounds () const override |
Get an exact geometric shape representing the visual bounds of the item in the document coordinates. | |
Inkscape::DrawingItem * | show (Inkscape::Drawing &drawing, unsigned int key, unsigned int flags) override |
void | hide (unsigned int key) override |
Sets style, path, and paintbox. | |
void | snappoints (std::vector< Inkscape::SnapCandidatePoint > &p, Inkscape::SnapPreferences const *snapprefs) const override |
void | update_patheffect (bool write) override |
void | set_marker (unsigned key, char const *value) |
Adds a new marker to shape object at the location indicated by key. | |
std::vector< std::tuple< SPMarkerLoc, SPMarker *, Geom::Affine > > | get_markers () const |
Lists every marker on this shape along with its transform and marker type. | |
![]() | |
SPLPEItem () | |
~SPLPEItem () override | |
void | replacePathEffects (std::vector< LivePathEffectObject const * > const &old_lpeobjs, std::vector< LivePathEffectObject const * > const &new_lpeobjs) |
Writes a new "inkscape:path-effect" string to xml, where the old_lpeobjects are substituted by the new ones. | |
void | child_added (Inkscape::XML::Node *child, Inkscape::XML::Node *ref) override |
void | remove_child (Inkscape::XML::Node *child) override |
bool | optimizeTransforms () |
returns false when LPE write unoptimiced | |
void | notifyTransform (Geom::Affine const &postmul) |
notify tranbsform applied to a LPE | |
bool | performPathEffect (Geom::PathVector &curve, SPShape *current, bool is_clip_or_mask=false) |
returns true when LPE was successful. | |
bool | performOnePathEffect (Geom::PathVector &curve, SPShape *current, Inkscape::LivePathEffect::Effect *lpe, bool is_clip_or_mask=false) |
returns true when LPE was successful. | |
bool | pathEffectsEnabled () const |
bool | hasPathEffect () const |
bool | hasPathEffectOfType (int const type, bool is_ready=true) const |
bool | hasPathEffectOfTypeRecursive (int const type, bool is_ready=true) const |
bool | hasPathEffectRecursive () const |
SPLPEItem const * | getTopPathEffect () const |
returns top most LPE item with LPE | |
bool | hasPathEffectOnClipOrMask (SPLPEItem *shape) const |
returns true when any LPE apply to clip or mask. | |
bool | hasPathEffectOnClipOrMaskRecursive (SPLPEItem *shape) const |
returns true when any LPE apply to clip or mask. | |
std::size_t | getLPEIndex (Inkscape::LivePathEffect::Effect *lpe) const |
std::size_t | countLPEOfType (int const type, bool inc_hidden=true, bool is_ready=true) const |
std::size_t | getLPEReferenceIndex (PathEffectSharedPtr const &lperef) const |
Inkscape::LivePathEffect::Effect * | getFirstPathEffectOfType (int type) |
Inkscape::LivePathEffect::Effect const * | getFirstPathEffectOfType (int type) const |
std::vector< Inkscape::LivePathEffect::Effect * > | getPathEffectsOfType (int type) |
std::vector< Inkscape::LivePathEffect::Effect const * > | getPathEffectsOfType (int type) const |
std::vector< Inkscape::LivePathEffect::Effect * > | getPathEffects () |
std::vector< Inkscape::LivePathEffect::Effect const * > | getPathEffects () const |
std::vector< SPObject * > | get_satellites (bool force=true, bool recursive=false, bool onchilds=false) |
bool | isOnClipboard () |
The lpeitem is on clipboard. | |
bool | isOnSymbol () const |
bool | hasBrokenPathEffect () const |
used for shapes so they can see if they should also disable shape calculation and read from d= | |
PathEffectList | getEffectList () |
PathEffectList const | getEffectList () const |
void | duplicateCurrentPathEffect () |
void | downCurrentPathEffect () |
void | upCurrentPathEffect () |
void | removePathEffect (Inkscape::LivePathEffect::Effect *lpe, bool keep_paths) |
void | movePathEffect (gint origin, gint dest, bool select_moved=false) |
SPLPEItem * | flattenCurrentPathEffect () |
PathEffectSharedPtr | getCurrentLPEReference () |
Inkscape::LivePathEffect::Effect * | getCurrentLPE () |
PathEffectSharedPtr | getPrevLPEReference (PathEffectSharedPtr const &lperef) |
Inkscape::LivePathEffect::Effect * | getPrevLPE (Inkscape::LivePathEffect::Effect *lpe) |
PathEffectSharedPtr | getNextLPEReference (PathEffectSharedPtr const &lperef) |
Inkscape::LivePathEffect::Effect * | getNextLPE (Inkscape::LivePathEffect::Effect *lpe) |
PathEffectSharedPtr | getLastLPEReference () |
Inkscape::LivePathEffect::Effect * | getLastLPE () |
bool | setCurrentPathEffect (PathEffectSharedPtr const &lperef) |
bool | setCurrentPathEffect (LivePathEffectObject const *lpeobj) |
SPLPEItem * | removeCurrentPathEffect (bool keep_paths) |
If keep_path is true, the item should not be updated, effectively 'flattening' the LPE. | |
SPLPEItem * | removeAllPathEffects (bool keep_paths, bool recursive=false) |
If keep_path is true, the item should not be updated, effectively 'flattening' the LPE. | |
void | addPathEffect (std::string value, bool reset) |
void | addPathEffect (LivePathEffectObject *new_lpeobj) |
void | resetClipPathAndMaskLPE (bool fromrecurse=false) |
void | applyToMask (SPItem *to, Inkscape::LivePathEffect::Effect *lpe=nullptr) |
void | applyToClipPath (SPItem *to, Inkscape::LivePathEffect::Effect *lpe=nullptr) |
void | applyToClipPathOrMask (SPItem *clip_mask, SPItem *to, Inkscape::LivePathEffect::Effect *lpe=nullptr) |
bool | forkPathEffectsIfNecessary (unsigned int nr_of_allowed_users=1, bool recursive=true, bool force=false) |
Check all effects in the stack if they are used by other items, and fork them if so. | |
void | editNextParamOncanvas (SPDesktop *dt) |
void | update_satellites (bool recursive=true) |
![]() | |
SPItem () | |
~SPItem () override | |
SPClipPath * | getClipObject () const |
SPMask * | getMaskObject () const |
SPClipPathReference & | getClipRef () |
SPMaskReference & | getMaskRef () |
std::optional< Geom::PathVector > | getClipPathVector () const |
Return the path vector of the clipping region. | |
std::optional< Geom::PathVector > | getClipPathVector (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. | |
SPAvoidRef & | getAvoidRef () |
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 ¢er) |
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 () |
SPGroup * | getParentGroup () 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. | |
SPObject * | isInMask () const |
SPObject * | isInClipPath () const |
void | invoke_print (SPPrintContext *ctx) |
Inkscape::DrawingItem * | invoke_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::DrawingItem * | get_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 |
![]() | |
SPObject () | |
Constructor, sets all attributes to default values. | |
SPObject (SPObject const &)=delete | |
SPObject & | operator= (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::Node * | getRepr () |
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 |
virtual void | getLinked (std::vector< SPObject * > &objects, LinkedObjectNature direction=LinkedObjectNature::ANY) const |
Get objects which are linked to this object as either a source or a target. | |
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. | |
SPObject * | getNext () |
SPObject * | getPrev () |
Returns previous object in sibling list or NULL. | |
bool | hasChildren () const |
SPObject * | firstChild () |
SPObject const * | firstChild () const |
SPObject * | lastChild () |
SPObject const * | lastChild () const |
SPObject * | nthChild (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. | |
SPObject * | appendChildRepr (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) |
SPObject * | successor () |
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::Node * | updateRepr (unsigned int flags=SP_OBJECT_WRITE_EXT) |
Updates the object's repr based on the object's state. | |
Inkscape::XML::Node * | updateRepr (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. | |
SPObject * | get_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 Attributes | |
void * | originalPath |
will be a livarot Path, just don't declare it here to please the gcc linker FIXME what? | |
char * | original |
SVG description of the source path. | |
float | rad |
offset radius | |
bool | knotSet |
for interactive setting of the radius | |
Geom::Point | knot |
bool | sourceDirty |
bool | isUpdating |
char * | sourceHref |
SPUseReference * | sourceRef |
Inkscape::XML::Node * | sourceRepr |
the repr associated with that id | |
SPItem * | sourceObject |
sigc::connection | _modified_connection |
sigc::connection | _delete_connection |
sigc::connection | _changed_connection |
sigc::connection | _transformed_connection |
![]() | |
bool | bbox_geom_cache_is_valid = false |
bool | bbox_vis_cache_is_valid = false |
Geom::Affine | bbox_geom_cache_transform |
Geom::Affine | bbox_vis_cache_transform |
Geom::OptRect | bbox_geom_cache |
Geom::OptRect | bbox_vis_cache |
SPMarker * | _marker [SP_MARKER_LOC_QTY] |
sigc::connection | _release_connect [SP_MARKER_LOC_QTY] |
sigc::connection | _modified_connect [SP_MARKER_LOC_QTY] |
![]() | |
int | path_effects_enabled |
PathEffectList * | path_effect_list |
PathEffectSharedPtr | current_path_effect |
std::vector< Inkscape::Display::TemporaryItem * > | lpe_helperpaths |
bool | onsymbol = false |
bool | lpe_initialized = false |
![]() | |
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< SPItemView > | views |
sigc::signal< void(Geom::Affine const *, SPItem *)> | _transformed_signal |
std::optional< Inkscape::Colors::Color > | _highlightColor |
![]() | |
unsigned int | cloned: 1 |
SPObject * | clone_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} |
SPDocument * | document {nullptr} |
SPObject * | parent {nullptr} |
int | refCount {1} |
std::list< SPObject * > | hrefList |
SPStyle * | style |
Represents the style properties, whether from presentation attributes, the style attribute, or inherited. | |
SPStyle * | context_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 |
Additional Inherited Members | |
![]() | |
enum | BBoxType { APPROXIMATE_BBOX , GEOMETRIC_BBOX , VISUAL_BBOX } |
enum | PaintServerType { PATTERN , HATCH , GRADIENT } |
![]() | |
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, ParentIteratorStrategy > | ParentIterator |
typedef Inkscape::Util::ForwardPointerIterator< SPObject const, ParentIteratorStrategy > | ConstParentIterator |
using | ChildrenList = boost::intrusive::list< SPObject, boost::intrusive::member_hook< SPObject, ListHook, &SPObject::_child_hook > > |
![]() | |
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. | |
![]() | |
typedef boost::intrusive::list_member_hook | ListHook |
![]() | |
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) |
![]() | |
std::optional< Geom::PathVector > | _curve_before_lpe |
std::shared_ptr< Geom::PathVector const > | _curve |
![]() | |
ListHook | _child_hook |
SPOffset class.
An offset is defined by curve and radius. The original curve is kept as a path in a sodipodi:original attribute. It's not possible to change the original curve.
SPOffset is a derivative of SPShape, much like the SPSpiral or SPRect. The goal is to have a source shape (= originalPath), an offset (= radius) and compute the offset of the source by the radius. To get it to work, one needs to know what the source is and what the radius is, and how it's stored in the xml representation. The object itself is a "path" element, to get lots of shape functionality for free. The source is the easy part: it's stored in a "inkscape:original" attribute in the path. In case of "linked" offset, as they've been dubbed, there is an additional "inkscape:href" that contains the id of an element of the svg. When built, the object will attach a listener vector to that object and rebuild the "inkscape:original" whenever the href'd object changes. This is of course grossly inefficient, and also does not react to changes to the href'd during context stuff (like changing the shape of a star by dragging control points) unless the path of that object is changed during the context (seems to be the case for SPEllipse). The computation of the offset is done in sp_offset_set_shape(), a function that is called whenever a change occurs to the offset (change of source or change of radius). just like the sp-star and other, this path derivative can make control points, or more precisely one control point, that's enough to define the radius (look in shape-editor-knotholders).
Definition at line 50 of file sp-offset.h.
SPOffset::SPOffset | ( | ) |
Definition at line 84 of file sp-offset.cpp.
References _changed_connection, Inkscape::URIReference::changedSignal(), isUpdating, knotSet, original, originalPath, rad, sourceDirty, sourceHref, sourceObject, sourceRef, sourceRepr, and sp_offset_href_changed().
|
override |
Definition at line 101 of file sp-offset.cpp.
References _changed_connection, _delete_connection, _modified_connection, _transformed_connection, and sourceRef.
|
overridevirtual |
Reimplemented from SPLPEItem.
Definition at line 110 of file sp-offset.cpp.
References Inkscape::XML::Node::attribute(), SPShape::build(), SPObject::document, SPObject::getRepr(), INKSCAPE_ORIGINAL, INKSCAPE_RADIUS, SPObject::readAttr(), SPObject::removeAttribute(), SPObject::repr, SPObject::setAttribute(), and XLINK_HREF.
|
overridevirtual |
|
overridevirtual |
The item's type name as a translated human string.
Translated string for UI display.
Reimplemented from SPItem.
Definition at line 319 of file sp-offset.cpp.
References sourceHref.
|
overridevirtual |
Reimplemented from SPLPEItem.
Definition at line 191 of file sp-offset.cpp.
References _changed_connection, Inkscape::URIReference::detach(), original, originalPath, SPShape::release(), sourceHref, sourceRef, and sp_offset_quit_listening().
|
overridevirtual |
Reimplemented from SPLPEItem.
Definition at line 215 of file sp-offset.cpp.
References Inkscape::URIReference::attach(), Inkscape::URIReference::detach(), INKSCAPE_HREF, INKSCAPE_ORIGINAL, INKSCAPE_RADIUS, isUpdating, knotSet, original, originalPath, rad, refresh_offset_source(), SPObject::requestDisplayUpdate(), SPShape::set(), SODIPODI_ORIGINAL, SODIPODI_RADIUS, sourceDirty, sourceHref, sourceRef, sp_offset_quit_listening(), sp_svg_length_read_computed_absolute(), sp_svg_read_pathv(), and XLINK_HREF.
|
overridevirtual |
Reimplemented from SPShape.
Definition at line 337 of file sp-offset.cpp.
References Inkscape::XML::Node::attribute(), SPShape::bbox(), Shape::bottomY, butt_straight, Shape::CalcBBox(), Path::Convert(), Path::ConvertEvenLines(), Shape::ConvertToForme(), Shape::ConvertToShape(), Path::ConvertWithBackData(), SPShape::curve(), Geom::Affine::descrim(), SPItem::documentVisualBounds(), Path::Fill(), fill_positive, SPObject::getRepr(), join_round, Shape::leftX, Shape::MakeOffset(), offset, orig, originalPath, Path::OutsideOutline(), Path::PolylineBoundingBox(), rad, Shape::Reset(), Shape::rightX, Path::SetBackData(), SPShape::setCurveBeforeLPE(), SPShape::setCurveInsync(), Path::Simplify(), size, sp_svg_read_pathv(), Path::SubPaths(), Path::Surface(), Shape::topY, SPItem::transform, and use_slow_but_correct_offset_method.
|
overridevirtual |
Reimplemented from SPItem.
Definition at line 658 of file sp-offset.cpp.
References SPShape::snappoints().
|
inlineoverridevirtual |
|
overridevirtual |
The item's type name, not node tag name.
NOT translated.
Reimplemented from SPItem.
Definition at line 327 of file sp-offset.cpp.
|
overridevirtual |
Reimplemented from SPLPEItem.
Definition at line 300 of file sp-offset.cpp.
References isUpdating, refresh_offset_source(), set_shape(), sourceDirty, and SPShape::update().
|
override |
Definition at line 161 of file sp-offset.cpp.
References SPShape::_curve, Inkscape::XML::Document::createElement(), original, rad, SPObject::repr, set_shape(), Inkscape::XML::Node::setAttribute(), Inkscape::XML::Node::setAttributeSvgDouble(), sourceHref, sp_svg_write_path(), and SPShape::write().
sigc::connection SPOffset::_changed_connection |
Definition at line 74 of file sp-offset.h.
Referenced by release(), SPOffset(), and ~SPOffset().
sigc::connection SPOffset::_delete_connection |
Definition at line 73 of file sp-offset.h.
Referenced by ~SPOffset().
sigc::connection SPOffset::_modified_connection |
Definition at line 72 of file sp-offset.h.
Referenced by ~SPOffset().
sigc::connection SPOffset::_transformed_connection |
Definition at line 75 of file sp-offset.h.
Referenced by ~SPOffset().
bool SPOffset::isUpdating |
Definition at line 65 of file sp-offset.h.
Referenced by set(), SPOffset(), and update().
Geom::Point SPOffset::knot |
Definition at line 62 of file sp-offset.h.
bool SPOffset::knotSet |
for interactive setting of the radius
Definition at line 61 of file sp-offset.h.
Referenced by set(), and SPOffset().
char* SPOffset::original |
SVG description of the source path.
Definition at line 57 of file sp-offset.h.
Referenced by release(), set(), SPOffset(), and write().
void* SPOffset::originalPath |
will be a livarot Path, just don't declare it here to please the gcc linker FIXME what?
Definition at line 56 of file sp-offset.h.
Referenced by release(), set(), set_shape(), and SPOffset().
float SPOffset::rad |
offset radius
Definition at line 58 of file sp-offset.h.
Referenced by _ungroup_compensate_source_transform(), description(), set(), set_shape(), SPOffset(), and write().
bool SPOffset::sourceDirty |
Definition at line 64 of file sp-offset.h.
Referenced by set(), sp_offset_move_compensate(), SPOffset(), and update().
char* SPOffset::sourceHref |
Definition at line 67 of file sp-offset.h.
Referenced by displayName(), release(), set(), SPOffset(), and write().
SPItem* SPOffset::sourceObject |
Definition at line 70 of file sp-offset.h.
Referenced by SPOffset().
SPUseReference* SPOffset::sourceRef |
Definition at line 68 of file sp-offset.h.
Referenced by release(), set(), SPOffset(), and ~SPOffset().
Inkscape::XML::Node* SPOffset::sourceRepr |
the repr associated with that id
Definition at line 69 of file sp-offset.h.
Referenced by SPOffset().