1 #ifndef INKSCAPE_LPE_SKETCH_H
2 #define INKSCAPE_LPE_SKETCH_H
4 /** \file
5 * LPE <sketch> implementation, see lpe-sketch.cpp.
6 */
8 /*
9 * Authors:
10 * JFB, but derived from 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/parameter.h"
19 #include "live_effects/parameter/random.h"
20 #include "live_effects/parameter/point.h"
22 namespace Inkscape {
23 namespace LivePathEffect {
25 class LPESketch : public Effect {
26 public:
27 LPESketch(LivePathEffectObject *lpeobject);
28 virtual ~LPESketch();
30 // Choose to implement one of the doEffect functions. You can delete or comment out the others.
31 // virtual void doEffect (SPCurve * curve);
32 // virtual NArtBpath * doEffect_nartbpath (NArtBpath * path_in);
33 // virtual std::vector<Geom::Path> doEffect_path (std::vector<Geom::Path> & path_in);
34 virtual Geom::Piecewise<Geom::D2<Geom::SBasis> > doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > const & pwd2_in);
36 private:
37 // add the parameters for your effect here:
38 //PointParam testpointA;
39 ScalarParam nbiter_approxstrokes;
40 ScalarParam strokelength;
41 RandomParam strokelength_rdm;
42 ScalarParam strokeoverlap;
43 RandomParam strokeoverlap_rdm;
44 RandomParam ends_tolerance;
45 RandomParam parallel_offset;
46 RandomParam tremble_size;
47 ScalarParam tremble_frequency;
48 ScalarParam nbtangents;
49 ScalarParam tgtscale;
50 ScalarParam tgtlength;
51 RandomParam tgtlength_rdm;
53 LPESketch(const LPESketch&);
54 LPESketch& operator=(const LPESketch&);
56 Geom::Piecewise<Geom::D2<Geom::SBasis> > computePerturbation (double s0, double s1);
58 };
60 } //namespace LivePathEffect
61 } //namespace Inkscape
63 #endif