Code

Split SPCanvasItem and SPCanvasGroup to individual .h files. Removed forward header.
[inkscape.git] / src / live_effects / lpe-parallel.h
1 #ifndef INKSCAPE_LPE_PARALLEL_H
2 #define INKSCAPE_LPE_PARALLEL_H
4 /** \file
5  * LPE <parallel> implementation
6  */
8 /*
9  * Authors:
10  *   Maximilian Albert
11  *
12  * Copyright (C) Johan Engelen 2007 <j.b.c.engelen@utwente.nl>
13  * Copyright (C) Maximilian Albert 2008 <maximilian.albert@gmail.com>
14  *
15  * Released under GNU GPL, read the file 'COPYING' for more information
16  */
18 #include "live_effects/effect.h"
19 #include "live_effects/parameter/point.h"
21 namespace Inkscape {
22 namespace LivePathEffect {
24 namespace Pl {
25   // we need a separate namespace to avoid clashes with LPEPerpBisector
26   class KnotHolderEntityLeftEnd;
27   class KnotHolderEntityRightEnd;
28 }
30 class LPEParallel : public Effect {
31 public:
32     LPEParallel(LivePathEffectObject *lpeobject);
33     virtual ~LPEParallel();
35     virtual void doOnApply (SPLPEItem *lpeitem);
37     virtual Geom::Piecewise<Geom::D2<Geom::SBasis> > doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > const & pwd2_in);
39     /* the knotholder entity classes must be declared friends */
40     friend class Pl::KnotHolderEntityLeftEnd;
41     friend class Pl::KnotHolderEntityRightEnd;
43 private:
44     PointParam offset_pt;
45     ScalarParam length_left;
46     ScalarParam length_right;
48     Geom::Point A;
49     Geom::Point B;
50     Geom::Point C;
51     Geom::Point D;
52     Geom::Point M;
53     Geom::Point N;
54     Geom::Point dir;
56     LPEParallel(const LPEParallel&);
57     LPEParallel& operator=(const LPEParallel&);
58 };
60 } //namespace LivePathEffect
61 } //namespace Inkscape
63 #endif
65 /*
66   Local Variables:
67   mode:c++
68   c-file-style:"stroustrup"
69   c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
70   indent-tabs-mode:nil
71   fill-column:99
72   End:
73 */
74 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :