Code

a0050760ceb750c3a3677b8b163d0deb5016e82b
[inkscape.git] / src / live_effects / lpe-curvestitch.h
1 #ifndef INKSCAPE_LPE_CURVESTITCH_H
2 #define INKSCAPE_LPE_CURVESTITCH_H
4 /** \file
5  * Implementation of the curve stitch effect, see lpe-curvestitch.cpp
6  */
8 /*
9  * Authors:
10  *   Johan Engelen
11 *
12 * Copyright (C) Johan Engelen 2007 <j.b.c.engelen@utwente.nl>
13  *
14  * Released under GNU GPL, read the file 'COPYING' for more information
15  */
17 #include "live_effects/effect.h"
18 #include "live_effects/parameter/path.h"
19 #include "live_effects/parameter/parameter.h"
20 #include "live_effects/parameter/bool.h"
21 #include "live_effects/parameter/random.h"
23 namespace Inkscape {
24 namespace LivePathEffect {
26 class LPECurveStitch : public Effect {
27 public:
28     LPECurveStitch(LivePathEffectObject *lpeobject);
29     virtual ~LPECurveStitch();
31     virtual std::vector<Geom::Path> doEffect_path (std::vector<Geom::Path> & path_in);
33     virtual void resetDefaults(SPItem * item);
35     virtual void transform_multiply(Geom::Matrix const& postmul, bool set);
37 private:
38     PathParam strokepath;
39     ScalarParam nrofpaths;
40     RandomParam startpoint_edge_variation;
41     RandomParam startpoint_spacing_variation;
42     RandomParam endpoint_edge_variation;
43     RandomParam endpoint_spacing_variation;
44     ScalarParam prop_scale;
45     BoolParam scale_y_rel;
47     LPECurveStitch(const LPECurveStitch&);
48     LPECurveStitch& operator=(const LPECurveStitch&);
49 };
51 } //namespace LivePathEffect
52 } //namespace Inkscape
54 #endif