Code

add powerstroke initial shot
[inkscape.git] / src / live_effects / lpe-powerstroke.h
1 /** @file
2  * @brief PowerStroke LPE effect, see lpe-powerstroke.cpp.
3  */
4 /* Authors:
5  *   Johan Engelen <j.b.c.engelen@utwente.nl>
6  *
7  * Copyright (C) 2010 Authors
8  *
9  * Released under GNU GPL, read the file 'COPYING' for more information
10  */
12 #ifndef INKSCAPE_LPE_POWERSTROKE_H
13 #define INKSCAPE_LPE_POWERSTROKE_H
15 #include "live_effects/effect.h"
16 #include "live_effects/parameter/point.h"
17 #include "live_effects/parameter/array.h"
19 namespace Inkscape {
20 namespace LivePathEffect {
22 // each knotholder handle for your LPE requires a separate class derived from KnotHolderEntity;
23 // define it in lpe-powerstroke.cpp and register it in the effect's constructor
24 /**
25 namespace PowerStroke {
26   // we need a separate namespace to avoid clashes with other LPEs
27   class KnotHolderEntityMyHandle;
28 }
29 **/
31 class LPEPowerStroke : public Effect {
32 public:
33     LPEPowerStroke(LivePathEffectObject *lpeobject);
34     virtual ~LPEPowerStroke();
36     virtual Geom::Piecewise<Geom::D2<Geom::SBasis> > doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > const & pwd2_in);
38     virtual void doOnApply(SPLPEItem *lpeitem);
40     /* the knotholder entity classes (if any) must be declared friends */
41     //friend class PowerStroke::KnotHolderEntityMyHandle;
43 private:
44     PointParam offset_1;
45     PointParam offset_2;
46     PointParam offset_3;
47 //    ArrayParam<Geom::Point> offset_points;
49     LPEPowerStroke(const LPEPowerStroke&);
50     LPEPowerStroke& operator=(const LPEPowerStroke&);
51 };
53 } //namespace LivePathEffect
54 } //namespace Inkscape
56 #endif
58 /*
59   Local Variables:
60   mode:c++
61   c-file-style:"stroustrup"
62   c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
63   indent-tabs-mode:nil
64   fill-column:99
65   End:
66 */
67 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :