Inkscape
Vector Graphics Editor
|
#include <sp-hatch-path.h>
Classes | |
struct | View |
Public Member Functions | |
SPHatchPath () | |
~SPHatchPath () override | |
int | tag () const override |
bool | isValid () const |
Inkscape::DrawingItem * | show (Inkscape::Drawing &drawing, unsigned int key, Geom::OptInterval extents) |
void | hide (unsigned int key) |
void | setStripExtents (unsigned int key, Geom::OptInterval const &extents) |
Geom::Interval | bounds () const |
Geom::PathVector | calculateRenderCurve (unsigned key) 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 | |
SVGLength | offset |
![]() | |
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 |
Protected Member Functions | |
void | build (SPDocument *doc, Inkscape::XML::Node *repr) override |
void | release () override |
void | set (SPAttr key, const gchar *value) override |
void | update (SPCtx *ctx, unsigned int flags) override |
![]() | |
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) |
virtual void | set (SPAttr key, const char *value) |
virtual void | modified (unsigned int flags) |
virtual Inkscape::XML::Node * | write (Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, unsigned int flags) |
Private Member Functions | |
gdouble | _repeatLength () const |
void | _updateView (View &view) |
Geom::PathVector | _calculateRenderCurve (View const &view) const |
void | _readHatchPathVector (char const *str, Geom::PathVector &pathv, bool &continous_join) |
Private Attributes | |
std::vector< View > | views |
std::optional< Geom::PathVector > | _curve |
bool | _continuous = false |
Additional Inherited Members | |
![]() | |
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 > > |
![]() | |
typedef boost::intrusive::list_member_hook | ListHook |
![]() | |
ListHook | _child_hook |
Definition at line 39 of file sp-hatch-path.h.
|
default |
|
overridedefault |
|
private |
Definition at line 202 of file sp-hatch-path.cpp.
References _continuous, _curve, _repeatLength(), SPHatchPath::View::extents, floor(), path_from_curve(), pathvector_append(), and pathvector_append_continuous().
Referenced by _updateView(), and calculateRenderCurve().
|
private |
Definition at line 237 of file sp-hatch-path.cpp.
References Geom::PathVector::back(), Geom::PathVector::empty(), Geom::Path::finalPoint(), sp_svg_read_pathv(), Inkscape::CSSOStringStream::str(), Geom::Point::x(), and Geom::Point::y().
Referenced by set().
|
private |
Definition at line 180 of file sp-hatch-path.cpp.
References _curve.
Referenced by _calculateRenderCurve(), and isValid().
|
private |
Definition at line 191 of file sp-hatch-path.cpp.
References _calculateRenderCurve(), SVGLength::computed, SPHatchPath::View::drawingitem, SPStyle::fill, offset, and SPObject::style.
Geom::Interval SPHatchPath::bounds | ( | ) | const |
Definition at line 149 of file sp-hatch-path.cpp.
References _curve, bounds_exact_transformed(), SVGLength::computed, offset, result, SPStyle::stroke_width, SPObject::style, and test_curve().
|
overrideprotectedvirtual |
Reimplemented from SPObject.
Definition at line 34 of file sp-hatch-path.cpp.
References SPObject::build(), D, SPStyle::fill, OFFSET, SPObject::readAttr(), SPObject::repr, STYLE, and SPObject::style.
Geom::PathVector SPHatchPath::calculateRenderCurve | ( | unsigned | key | ) | const |
Definition at line 169 of file sp-hatch-path.cpp.
References _calculateRenderCurve(), key, and views.
Referenced by Inkscape::Extension::Internal::CairoRenderer::renderHatchPath().
void SPHatchPath::hide | ( | unsigned int | key | ) |
Definition at line 125 of file sp-hatch-path.cpp.
References views.
bool SPHatchPath::isValid | ( | ) | const |
Definition at line 109 of file sp-hatch-path.cpp.
References _curve, and _repeatLength().
|
overrideprotectedvirtual |
Reimplemented from SPObject.
Definition at line 45 of file sp-hatch-path.cpp.
References SPObject::release(), and views.
|
overrideprotected |
Definition at line 51 of file sp-hatch-path.cpp.
References _continuous, _curve, _readHatchPathVector(), SPStyle::clear(), D, key, OFFSET, offset, SVGLength::readOrUnset(), SPObject::requestDisplayUpdate(), SPObject::set(), SP_ATTRIBUTE_IS_CSS(), and SPObject::style.
void SPHatchPath::setStripExtents | ( | unsigned int | key, |
Geom::OptInterval const & | extents | ||
) |
Definition at line 139 of file sp-hatch-path.cpp.
Inkscape::DrawingItem * SPHatchPath::show | ( | Inkscape::Drawing & | drawing, |
unsigned int | key, | ||
Geom::OptInterval | extents | ||
) |
Definition at line 114 of file sp-hatch-path.cpp.
References _updateView(), key, and views.
|
inlineoverridevirtual |
|
overrideprotectedvirtual |
Reimplemented from SPObject.
Definition at line 82 of file sp-hatch-path.cpp.
References _updateView(), Geom::Affine::descrim(), SPItemCtx::i2vp, SP_CSS_UNIT_PERCENT, SPStyle::stroke_width, SPObject::style, and views.
|
private |
Definition at line 81 of file sp-hatch-path.h.
Referenced by _calculateRenderCurve(), and set().
|
private |
Definition at line 80 of file sp-hatch-path.h.
Referenced by _calculateRenderCurve(), _repeatLength(), bounds(), isValid(), and set().
SVGLength SPHatchPath::offset |
Definition at line 46 of file sp-hatch-path.h.
Referenced by _updateView(), bounds(), Inkscape::Extension::Internal::CairoRenderer::renderHatchPath(), and set().
|
private |
Definition at line 72 of file sp-hatch-path.h.
Referenced by calculateRenderCurve(), hide(), release(), setStripExtents(), show(), and update().