Code

d961ad9543c0815156f51731343f90ebd455e568
[inkscape.git] / src / live_effects / lpe-skeleton.h
1 #ifndef INKSCAPE_LPE_SKELETON_H
2 #define INKSCAPE_LPE_SKELETON_H
4 /** \file
5  * LPE <skeleton> implementation, see lpe-skeleton.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/parameter.h"
20 namespace Inkscape {
21 namespace LivePathEffect {
23 // each knotholder handle for your LPE requires a separate class derived from KnotHolderEntity;
24 // define it in lpe-skeleton.cpp and register it in the effect's constructor
25 /**
26 namespace Skeleton {
27   // we need a separate namespace to avoid clashes with other LPEs
28   class KnotHolderEntityMyHandle;
29 }
30 **/
32 class LPESkeleton : public Effect {
33 public:
34     LPESkeleton(LivePathEffectObject *lpeobject);
35     virtual ~LPESkeleton();
37 //  Choose to implement one of the doEffect functions. You can delete or comment out the others.
38 //    virtual void doEffect (SPCurve * curve);
39 //    virtual std::vector<Geom::Path> doEffect_path (std::vector<Geom::Path> const & path_in);
40     virtual Geom::Piecewise<Geom::D2<Geom::SBasis> > doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > const & pwd2_in);
42     /* the knotholder entity classes (if any) must be declared friends */
43     //friend class Skeleton::KnotHolderEntityMyHandle;
45 private:
46     // add the parameters for your effect here:
47     ScalarParam number;
48     // there are all kinds of parameters. Check the /live_effects/parameter directory which types exist!
50     LPESkeleton(const LPESkeleton&);
51     LPESkeleton& operator=(const LPESkeleton&);
52 };
54 } //namespace LivePathEffect
55 } //namespace Inkscape
57 #endif
59 /*
60   Local Variables:
61   mode:c++
62   c-file-style:"stroustrup"
63   c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
64   indent-tabs-mode:nil
65   fill-column:99
66   End:
67 */
68 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :