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 :