Inkscape
Vector Graphics Editor
|
#include <drawing-group.h>
Public Member Functions | |
DrawingGroup (Drawing &drawing) | |
int | tag () const override |
Unlink this node and its subtree from the rendering tree and destroy. | |
bool | pickChildren () |
void | setPickChildren (bool) |
Set whether the group returns children from pick calls. | |
void | setChildTransform (Geom::Affine const &) |
Set additional transform for the group. | |
![]() | |
DrawingItem (Drawing &drawing) | |
DrawingItem (DrawingItem const &)=delete | |
DrawingItem & | operator= (DrawingItem const &)=delete |
void | unlink () |
Geom::OptIntRect const & | bbox () const |
Geom::OptIntRect const & | drawbox () const |
Geom::OptRect const & | itemBounds () const |
Geom::Affine const & | ctm () const |
Geom::Affine | transform () const |
Drawing & | drawing () const |
DrawingItem * | parent () const |
bool | isAncestorOf (DrawingItem const *item) const |
Returns true if item is among the descendants. Will return false if item == this. | |
int | getUpdateComplexity () const |
bool | unisolatedBlend () const |
void | appendChild (DrawingItem *item) |
void | prependChild (DrawingItem *item) |
void | clearChildren () |
bool | visible () const |
void | setVisible (bool visible) |
bool | sensitive () const |
void | setSensitive (bool sensitive) |
virtual void | setStyle (SPStyle const *style, SPStyle const *context_style=nullptr) |
Process information related to the new style. | |
virtual void | setChildrenStyle (SPStyle const *context_style) |
Recursively update children style. | |
void | setOpacity (float opacity) |
void | setAntialiasing (Antialiasing antialias) |
void | setIsolation (bool isolation) |
void | setBlendMode (SPBlendMode blend_mode) |
void | setTransform (Geom::Affine const &trans) |
void | setClip (DrawingItem *item) |
void | setMask (DrawingItem *item) |
void | setFillPattern (DrawingPattern *pattern) |
void | setStrokePattern (DrawingPattern *pattern) |
void | setZOrder (unsigned zorder) |
Move this item to the given place in the Z order of siblings. Does nothing if the item is not a normal child. | |
void | setItemBounds (Geom::OptRect const &bounds) |
void | setFilterRenderer (std::unique_ptr< Filters::Filter > renderer) |
void | setKey (unsigned key) |
unsigned | key () const |
void | setItem (SPItem *item) |
SPItem * | getItem () const |
void | update (Geom::IntRect const &area=Geom::IntRect::infinite(), UpdateContext const &ctx=UpdateContext(), unsigned flags=STATE_ALL, unsigned reset=0) |
Update derived data before operations. | |
unsigned | render (DrawingContext &dc, RenderContext &rc, Geom::IntRect const &area, unsigned flags=0, DrawingItem const *stop_at=nullptr) const |
Rasterize items. | |
unsigned | render (DrawingContext &dc, Geom::IntRect const &area, unsigned flags=0) const |
A stand alone render, ignoring all other objects in the document. | |
void | clip (DrawingContext &dc, RenderContext &rc, Geom::IntRect const &area) const |
Rasterize the clipping path. | |
DrawingItem * | pick (Geom::Point const &p, double delta, unsigned flags=0) |
Get the item under the specified point. | |
Glib::ustring | name () const |
void | recursivePrintTree (unsigned level=0) const |
Protected Member Functions | |
~DrawingGroup () override=default | |
unsigned | _updateItem (Geom::IntRect const &area, UpdateContext const &ctx, unsigned flags, unsigned reset) override |
unsigned | _renderItem (DrawingContext &dc, RenderContext &rc, Geom::IntRect const &area, unsigned flags, DrawingItem const *stop_at) const override |
void | _clipItem (DrawingContext &dc, RenderContext &rc, Geom::IntRect const &area) const override |
DrawingItem * | _pickItem (Geom::Point const &p, double delta, unsigned flags) override |
bool | _canClip () const override |
![]() | |
virtual | ~DrawingItem () |
void | _renderOutline (DrawingContext &dc, RenderContext &rc, Geom::IntRect const &area, unsigned flags) const |
void | _markForUpdate (unsigned state, bool propagate) |
Marks the item as needing a recomputation of internal data. | |
void | _markForRendering () |
Marks the current visual bounding box of the item for redrawing. | |
void | _invalidateFilterBackground (Geom::IntRect const &area) |
double | _cacheScore () |
Compute the caching score. | |
Geom::OptIntRect | _cacheRect () const |
void | _setCached (bool cached, bool persistent=false) |
Enable / disable storing the rendering in memory. | |
virtual void | _dropPatternCache () |
template<typename F > | |
void | defer (F &&f) |
Protected Attributes | |
std::unique_ptr< Geom::Affine > | _child_transform |
![]() | |
Drawing & | _drawing |
DrawingItem * | _parent |
ListHook | _child_hook |
ChildrenList | _children |
unsigned | _key |
Auxiliary key used by the object tree for showing clips/masks/patterns. | |
SPItem * | _item |
Used to associate DrawingItems with SPItems that created them. | |
SPStyle const * | _style |
SPStyle const * | _context_style |
float | _opacity |
std::unique_ptr< Geom::Affine > | _transform |
Incremental transform from parent to this item's coords. | |
Geom::Affine | _ctm |
Total transform from item coords to display coords. | |
Geom::OptIntRect | _bbox |
Bounding box in display (pixel) coords including stroke. | |
Geom::OptIntRect | _drawbox |
Full visual bounding box - enlarged by filters, shrunk by clips and masks. | |
Geom::OptRect | _item_bbox |
Geometric bounding box in item's user space. | |
DrawingItem * | _clip |
DrawingItem * | _mask |
DrawingPattern * | _fill_pattern |
DrawingPattern * | _stroke_pattern |
std::unique_ptr< Inkscape::Filters::Filter > | _filter |
std::unique_ptr< CacheData > | _cache |
int | _update_complexity = 0 |
bool | _contains_unisolated_blend: 1 |
CacheList::iterator | _cache_iterator |
bool | style_vector_effect_size: 1 |
bool | style_vector_effect_rotate: 1 |
bool | style_vector_effect_fixed: 1 |
unsigned | _state: 8 |
unsigned | _propagate_state: 8 |
ChildType | _child_type: 3 |
unsigned | _background_new: 1 |
Whether enable-background: new is set for this element. | |
unsigned | _background_accumulate: 1 |
Whether this element accumulates background (has any ancestor with enable-background: new) | |
unsigned | _visible: 1 |
unsigned | _sensitive: 1 |
Whether this item responds to events. | |
unsigned | _cached_persistent: 1 |
If set, will always be cached regardless of score. | |
unsigned | _has_cache_iterator: 1 |
If set, _cache_iterator is valid. | |
unsigned | _pick_children: 1 |
For groups: if true, children are returned from pick(), otherwise the group is returned. | |
Antialiasing | _antialias: 2 |
antialiasing level (default is Good) | |
bool | _isolation: 1 |
SPBlendMode | _blend_mode |
Additional Inherited Members | |
![]() | |
enum | RenderFlags { RENDER_DEFAULT = 0 , RENDER_CACHE_ONLY = 1 << 0 , RENDER_BYPASS_CACHE = 1 << 1 , RENDER_FILTER_BACKGROUND = 1 << 2 , RENDER_OUTLINE = 1 << 3 , RENDER_NO_FILTERS = 1 << 4 , RENDER_VISIBLE_HAIRLINES = 1 << 5 } |
enum | StateFlags { STATE_NONE = 0 , STATE_BBOX = 1 << 0 , STATE_CACHE = 1 << 1 , STATE_PICK = 1 << 2 , STATE_RENDER = 1 << 3 , STATE_BACKGROUND = 1 << 4 , STATE_ALL = (1 << 5) - 1 , STATE_TOTAL_INV = 1 << 5 } |
enum | PickFlags { PICK_NORMAL = 0 , PICK_STICKY = 1 << 0 , PICK_AS_CLIP = 1 << 1 , PICK_OUTLINE = 1 << 2 } |
![]() | |
enum class | ChildType : unsigned char { ORPHAN = 0 , NORMAL = 1 , CLIP = 2 , MASK = 3 , FILL = 4 , STROKE = 5 , ROOT = 6 } |
enum | RenderResult { RENDER_OK = 0 , RENDER_STOP = 1 } |
using | ListHook = boost::intrusive::list_member_hook<> |
using | ChildrenList = boost::intrusive::list< DrawingItem, boost::intrusive::member_hook< DrawingItem, ListHook, &DrawingItem::_child_hook > > |
Definition at line 20 of file drawing-group.h.
Inkscape::DrawingGroup::DrawingGroup | ( | Drawing & | drawing | ) |
Definition at line 23 of file drawing-group.cpp.
|
overrideprotecteddefault |
|
inlineoverrideprotectedvirtual |
Reimplemented from Inkscape::DrawingItem.
Reimplemented in Inkscape::DrawingText.
Definition at line 39 of file drawing-group.h.
|
overrideprotectedvirtual |
Reimplemented from Inkscape::DrawingItem.
Reimplemented in Inkscape::DrawingText.
Definition at line 102 of file drawing-group.cpp.
References Inkscape::DrawingItem::_children, and rc.
|
overrideprotectedvirtual |
Reimplemented from Inkscape::DrawingItem.
Reimplemented in Inkscape::DrawingText.
Definition at line 109 of file drawing-group.cpp.
References Inkscape::DrawingItem::_children, Inkscape::DrawingItem::_pick_children, delta, and Inkscape::DrawingItem::pick().
Referenced by Inkscape::DrawingText::_pickItem().
|
overrideprotectedvirtual |
Reimplemented from Inkscape::DrawingItem.
Reimplemented in Inkscape::DrawingText.
Definition at line 77 of file drawing-group.cpp.
References Inkscape::DrawingItem::_children, rc, Inkscape::DrawingItem::RENDER_FILTER_BACKGROUND, and Inkscape::DrawingItem::RENDER_OK.
|
overrideprotectedvirtual |
Reimplemented from Inkscape::DrawingItem.
Reimplemented in Inkscape::DrawingPattern, and Inkscape::DrawingText.
Definition at line 54 of file drawing-group.cpp.
References Inkscape::DrawingItem::_bbox, _child_transform, Inkscape::DrawingItem::_children, Inkscape::DrawingItem::_contains_unisolated_blend, Inkscape::DrawingItem::_drawing, Inkscape::DrawingItem::_update_complexity, c, Inkscape::UpdateContext::ctm, Inkscape::OUTLINE, Inkscape::outline(), Inkscape::Drawing::outlineOverlay(), Inkscape::Drawing::renderMode(), Inkscape::DrawingItem::STATE_ALL, and Geom::GenericOptRect< C >::unionWith().
Referenced by Inkscape::DrawingPattern::_updateItem(), and Inkscape::DrawingText::_updateItem().
|
inline |
Definition at line 27 of file drawing-group.h.
References Inkscape::DrawingItem::_pick_children.
void Inkscape::DrawingGroup::setChildTransform | ( | Geom::Affine const & | transform | ) |
Set additional transform for the group.
This is applied after the normal transform and mainly useful for markers, clipping paths, etc.
Definition at line 42 of file drawing-group.cpp.
References _child_transform, Inkscape::DrawingItem::_markForRendering(), Inkscape::DrawingItem::_markForUpdate(), Geom::are_near(), current, Inkscape::DrawingItem::defer(), Geom::identity(), Geom::Affine::isIdentity(), Inkscape::DrawingItem::STATE_ALL, and Inkscape::DrawingItem::transform().
Referenced by SPUse::show().
void Inkscape::DrawingGroup::setPickChildren | ( | bool | pick_children | ) |
Set whether the group returns children from pick calls.
Previously this feature was called "transparent groups".
Definition at line 30 of file drawing-group.cpp.
References Inkscape::DrawingItem::_pick_children, and Inkscape::DrawingItem::defer().
Referenced by SPFlowtext::show(), SPGroup::show(), and SPText::show().
|
inlineoverridevirtual |
Unlink this node and its subtree from the rendering tree and destroy.
Reimplemented from Inkscape::DrawingItem.
Reimplemented in Inkscape::DrawingPattern, and Inkscape::DrawingText.
Definition at line 25 of file drawing-group.h.
References tag_of.
|
protected |
Definition at line 41 of file drawing-group.h.
Referenced by _updateItem(), and setChildTransform().