16#ifndef SEEN_SP_HATCH_H
17#define SEEN_SP_HATCH_H
20#include <glibmm/ustring.h>
21#include <sigc++/connection.h>
36namespace XML {
class Node; }
71 int tag()
const override {
return tag_of<
decltype(*this)>; }
88 std::vector<SPHatchPath const *>
hatchPaths()
const;
96 void hide(
unsigned key)
override;
108 void modified(
unsigned int flags)
override;
constexpr int tag_of
Convenience function to retrieve the tag (class id) of a given type.
3x3 matrix representing an affine transformation.
Range of real numbers that is never empty.
Range of real numbers that can be empty.
Axis-aligned rectangle that can be empty.
Axis aligned, non-empty rectangle.
Drawing tree node used for rendering paints.
A class encapsulating a reference to a particular URI; observers can be notified when the URI comes t...
Interface for refcounted XML nodes.
Typed SVG document implementation.
SPHatch * getObject() const
bool _acceptObject(SPObject *obj) const override
std::vector< View > views
Geom::Affine hatchTransform() const
void _onRefModified(SPObject *ref, unsigned flags)
Gets called when the referenced <hatch> is changed.
RenderInfo calculateRenderInfo(unsigned key) const
static bool _hasHatchPatchChildren(SPHatch const *hatch)
void modified(unsigned int flags) override
void transform_multiply(Geom::Affine const &postmul, bool set)
std::optional< Geom::Affine > _hatch_transform
SPHatch * clone_if_necessary(SPItem *item, char const *property)
void build(SPDocument *doc, Inkscape::XML::Node *repr) override
void _updateView(View &view)
void update(SPCtx *ctx, unsigned int flags) override
bool isValid() const override
Inkscape::DrawingPattern * show(Inkscape::Drawing &drawing, unsigned key, Geom::OptRect const &bbox) override
void hide(unsigned key) override
void setBBox(unsigned int key, Geom::OptRect const &bbox) override
std::vector< SPHatchPath * > hatchPaths()
sigc::connection _modified_connection
std::optional< HatchUnits > _hatch_content_units
RenderInfo _calculateRenderInfo(View const &view) const
Geom::Interval bounds() const
Geom::OptInterval _calculateStripExtents(Geom::OptRect const &bbox) const
std::optional< HatchUnits > _hatch_units
HatchUnits hatchUnits() const
void _onRefChanged(SPObject *old_ref, SPObject *ref)
Gets called when the hatch is reattached to another <hatch>
HatchUnits hatchContentUnits() const
int _countHrefs(SPObject *o) const
Count how many times hatch is used by the styles of o and its descendants.
void child_added(Inkscape::XML::Node *child, Inkscape::XML::Node *ref) override
SPHatch const * rootHatch() const
Base class for visual SVG elements.
SPObject is an abstract base class of all of the document nodes at the SVG document level.
Inkscape::XML::Node * repr
Helper class to stream background task notifications as a series of messages.
static cairo_user_data_key_t key
View helper class used by hatch, clippath, mask and pattern.
Geom::Affine overflow_step_transform
Geom::Affine overflow_initial_transform
Geom::Affine child_transform
Geom::Affine pattern_to_user_transform