Inkscape
Vector Graphics Editor
Loading...
Searching...
No Matches
lpe-copy_rotate.h
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-2.0-or-later
2#ifndef INKSCAPE_LPE_COPY_ROTATE_H
3#define INKSCAPE_LPE_COPY_ROTATE_H
4
9/*
10 * Authors:
11 * Johan Engelen
12 *
13 * Copyright (C) Johan Engelen 2007 <j.b.c.engelen@utwente.nl>
14 *
15 * Released under GNU GPL v2+, read the file 'COPYING' for more information.
16 */
17
18#include "live_effects/effect.h"
25// this is only to fillrule
26#include "livarot/LivarotDefs.h"
27
28namespace Inkscape {
29namespace LivePathEffect {
30
37
39public:
41 ~LPECopyRotate() override;
42 void doOnApply (SPLPEItem const* lpeitem) override;
43 Geom::PathVector doEffect_path (Geom::PathVector const & path_in) override;
44 void doBeforeEffect (SPLPEItem const* lpeitem) override;
45 void doAfterEffect(SPLPEItem const* lpeitem, Geom::PathVector *curve) override;
46 void split(Geom::PathVector &path_in, Geom::Path const &divider);
47 void resetDefaults(SPItem const* item) override;
48 void doOnRemove(SPLPEItem const* /*lpeitem*/) override;
49 bool doOnOpen(SPLPEItem const * /*lpeitem*/) override;
50 void doOnVisibilityToggled(SPLPEItem const* /*lpeitem*/) override;
51 Gtk::Widget * newWidget() override;
52 void cloneStyle(SPObject *orig, SPObject *dest);
54 void toItem(Geom::Affine transform, size_t i, bool reset, bool &write);
55 void cloneD(SPObject *orig, SPObject *dest);
57 //virtual void setFusion(Geom::PathVector &path_in, Geom::Path divider, double sizeDivider);
59protected:
60 void addCanvasIndicators(SPLPEItem const *lpeitem, std::vector<Geom::PathVector> &hp_vec) override;
61
62private:
85 bool reset;
86 bool previous_split = false;
88 LPECopyRotate(const LPECopyRotate&) = delete;
90};
91
92} //namespace LivePathEffect
93} //namespace Inkscape
94
95#endif
96
97/*
98 Local Variables:
99 mode:c++
100 c-file-style:"stroustrup"
101 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
102 indent-tabs-mode:nil
103 fill-column:99
104 End:
105*/
106// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
TODO: insert short description here.
FillRule
Definition LivarotDefs.h:68
3x3 matrix representing an affine transformation.
Definition affine.h:70
Sequence of subpaths.
Definition pathvector.h:122
Sequence of contiguous curves, aka spline.
Definition path.h:353
Two-dimensional point that doubles as a vector.
Definition point.h:66
void cloneD(SPObject *orig, SPObject *dest)
void doOnApply(SPLPEItem const *lpeitem) override
Is performed a single time when the effect is freshly applied to a path.
void toItem(Geom::Affine transform, size_t i, bool reset, bool &write)
Gtk::Widget * newWidget() override
This creates a managed widget.
LPECopyRotate & operator=(const LPECopyRotate &)=delete
void cloneStyle(SPObject *orig, SPObject *dest)
LPECopyRotate(const LPECopyRotate &)=delete
void doOnVisibilityToggled(SPLPEItem const *) override
void resetDefaults(SPItem const *item) override
Sets all parameters to their default values and writes them to SVG.
void doBeforeEffect(SPLPEItem const *lpeitem) override
Is performed each time before the effect is updated.
void doAfterEffect(SPLPEItem const *lpeitem, Geom::PathVector *curve) override
Is performed at the end of the LPE only one time per "lpeitem" in paths/shapes is called in middle of...
void addCanvasIndicators(SPLPEItem const *lpeitem, std::vector< Geom::PathVector > &hp_vec) override
Add possible canvas indicators (i.e., helperpaths other than the original path) to hp_vec This functi...
Geom::PathVector doEffect_path(Geom::PathVector const &path_in) override
Inkscape::XML::Node * createPathBase(SPObject *elemref)
bool doOnOpen(SPLPEItem const *) override
Is performed on load document or revert If the item is fixed legacy return true.
Geom::PathVector doEffect_path_post(Geom::PathVector const &path_in, FillRule fillrule)
void doOnRemove(SPLPEItem const *) override
void split(Geom::PathVector &path_in, Geom::Path const &divider)
Interface for refcounted XML nodes.
Definition node.h:80
Base class for visual SVG elements.
Definition sp-item.h:109
SPObject is an abstract base class of all of the document nodes at the SVG document level.
Definition sp-object.h:160
Geom::Point orig
SPItem * item
Helper class to stream background task notifications as a series of messages.
Definition curve.h:24