1 // SPDX-License-Identifier: GPL-2.0-or-later
2 #ifndef INKSCAPE_LPE_CURVESTITCH_H
3 #define INKSCAPE_LPE_CURVESTITCH_H
4 
5 /** \file
6  * Implementation of the curve stitch effect, see lpe-curvestitch.cpp
7  */
8 
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"
19 #include "live_effects/parameter/path.h"
20 #include "live_effects/parameter/parameter.h"
21 #include "live_effects/parameter/bool.h"
22 #include "live_effects/parameter/random.h"
23 
24 namespace Inkscape {
25 namespace LivePathEffect {
26 
27 class LPECurveStitch : public Effect {
28 public:
29     LPECurveStitch(LivePathEffectObject *lpeobject);
30     ~LPECurveStitch() override;
31 
32     Geom::PathVector doEffect_path (Geom::PathVector const & path_in) override;
33 
34     void resetDefaults(SPItem const* item) override;
35 
36 private:
37     PathParam strokepath;
38     ScalarParam nrofpaths;
39     RandomParam startpoint_edge_variation;
40     RandomParam startpoint_spacing_variation;
41     RandomParam endpoint_edge_variation;
42     RandomParam endpoint_spacing_variation;
43     ScalarParam prop_scale;
44     BoolParam scale_y_rel;
45     bool transformed;
46 
47     LPECurveStitch(const LPECurveStitch&) = delete;
48     LPECurveStitch& operator=(const LPECurveStitch&) = delete;
49 };
50 
51 } //namespace LivePathEffect
52 } //namespace Inkscape
53 
54 #endif
55