6f195ddf891afcc5029baa42fe2007ea923776c0Tomasz Boczkowski * SVG <hatch> implementation
6f195ddf891afcc5029baa42fe2007ea923776c0Tomasz Boczkowski * Tomasz Boczkowski <penginsbacon@gmail.com>
80d489090f48f0556f30213acdb05bf81d033dcbJon A. Cruz * Jon A. Cruz <jon@joncruz.org>
6f195ddf891afcc5029baa42fe2007ea923776c0Tomasz Boczkowski * Copyright (C) 2014 Tomasz Boczkowski
6f195ddf891afcc5029baa42fe2007ea923776c0Tomasz Boczkowski * Released under GNU GPL, read the file 'COPYING' for more information
80d489090f48f0556f30213acdb05bf81d033dcbJon A. Cruz // Reference (href)
6f195ddf891afcc5029baa42fe2007ea923776c0Tomasz Boczkowski Geom::Affine const &hatchTransform() const;
80d489090f48f0556f30213acdb05bf81d033dcbJon A. Cruz std::vector<SPHatchPath const *> hatchPaths() const;
b54fcbf691761f7356ee5239114b8a0adf292cc3Tomasz Boczkowski Inkscape::DrawingPattern *show(Inkscape::Drawing &drawing, unsigned int key, Geom::OptRect bbox);
80d489090f48f0556f30213acdb05bf81d033dcbJon A. Cruz virtual cairo_pattern_t* pattern_new(cairo_t *ct, Geom::OptRect const &bbox, double opacity);
80d489090f48f0556f30213acdb05bf81d033dcbJon A. Cruz RenderInfo calculateRenderInfo(unsigned key) const;
80d489090f48f0556f30213acdb05bf81d033dcbJon A. Cruz void setBBox(unsigned int key, Geom::OptRect const &bbox);
80d489090f48f0556f30213acdb05bf81d033dcbJon A. Cruz virtual void build(SPDocument* doc, Inkscape::XML::Node* repr);
80d489090f48f0556f30213acdb05bf81d033dcbJon A. Cruz virtual void child_added(Inkscape::XML::Node* child, Inkscape::XML::Node* ref);
80d489090f48f0556f30213acdb05bf81d033dcbJon A. Cruz virtual void set(unsigned int key, const gchar* value);
80d489090f48f0556f30213acdb05bf81d033dcbJon A. Cruz virtual void update(SPCtx* ctx, unsigned int flags);
6f195ddf891afcc5029baa42fe2007ea923776c0Tomasz Boczkowski View(Inkscape::DrawingPattern *arenaitem, int key);
6f195ddf891afcc5029baa42fe2007ea923776c0Tomasz Boczkowski //Do not delete arenaitem in destructor.
6f195ddf891afcc5029baa42fe2007ea923776c0Tomasz Boczkowski typedef std::vector<SPHatchPath *>::iterator ChildIterator;
6f195ddf891afcc5029baa42fe2007ea923776c0Tomasz Boczkowski typedef std::vector<SPHatchPath const *>::const_iterator ConstChildIterator;
6f195ddf891afcc5029baa42fe2007ea923776c0Tomasz Boczkowski typedef std::list<View>::iterator ViewIterator;
b54fcbf691761f7356ee5239114b8a0adf292cc3Tomasz Boczkowski typedef std::list<View>::const_iterator ConstViewIterator;
6f195ddf891afcc5029baa42fe2007ea923776c0Tomasz Boczkowski static bool _hasHatchPatchChildren(SPHatch const* hatch);
b54fcbf691761f7356ee5239114b8a0adf292cc3Tomasz Boczkowski RenderInfo _calculateRenderInfo(View const &view) const;
80d489090f48f0556f30213acdb05bf81d033dcbJon A. Cruz Geom::OptInterval _calculateStripExtents(Geom::OptRect const &bbox) const;
80d489090f48f0556f30213acdb05bf81d033dcbJon A. Cruz * Gets called when the hatch is reattached to another <hatch>
80d489090f48f0556f30213acdb05bf81d033dcbJon A. Cruz void _onRefChanged(SPObject *old_ref, SPObject *ref);
80d489090f48f0556f30213acdb05bf81d033dcbJon A. Cruz * Gets called when the referenced <hatch> is changed
80d489090f48f0556f30213acdb05bf81d033dcbJon A. Cruz void _onRefModified(SPObject *ref, guint flags);
80d489090f48f0556f30213acdb05bf81d033dcbJon A. Cruz // patternUnits and patternContentUnits attribute
80d489090f48f0556f30213acdb05bf81d033dcbJon A. Cruz // hatchTransform attribute
6f195ddf891afcc5029baa42fe2007ea923776c0Tomasz Boczkowskiclass SPHatchReference : public Inkscape::URIReference {
6f195ddf891afcc5029baa42fe2007ea923776c0Tomasz Boczkowski return reinterpret_cast<SPHatch *>(URIReference::getObject());
6f195ddf891afcc5029baa42fe2007ea923776c0Tomasz Boczkowski virtual bool _acceptObject(SPObject *obj) const {
901d2d4a59790c220c6589e17dbbf556d47dfe71Marc Jeanmougin return dynamic_cast<SPHatch *>(obj) != NULL && URIReference::_acceptObject(obj);
6f195ddf891afcc5029baa42fe2007ea923776c0Tomasz Boczkowski#endif // SEEN_SP_HATCH_H
6f195ddf891afcc5029baa42fe2007ea923776c0Tomasz Boczkowski Local Variables:
6f195ddf891afcc5029baa42fe2007ea923776c0Tomasz Boczkowski c-file-style:"stroustrup"
6f195ddf891afcc5029baa42fe2007ea923776c0Tomasz Boczkowski c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
6f195ddf891afcc5029baa42fe2007ea923776c0Tomasz Boczkowski indent-tabs-mode:nil
6f195ddf891afcc5029baa42fe2007ea923776c0Tomasz Boczkowski fill-column:99
6f195ddf891afcc5029baa42fe2007ea923776c0Tomasz Boczkowski// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :