1 #ifndef INKSCAPE_LPE_COPY_ROTATE_H
2 #define INKSCAPE_LPE_COPY_ROTATE_H
4 /** \file
5 * LPE <copy_rotate> implementation, see lpe-copy_rotate.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/point.h"
20 namespace Inkscape {
21 namespace LivePathEffect {
23 namespace CR {
24 // we need a separate namespace to avoid clashes with LPEPerpBisector
25 class KnotHolderEntityAngle;
26 }
28 class LPECopyRotate : public Effect {
29 public:
30 LPECopyRotate(LivePathEffectObject *lpeobject);
31 virtual ~LPECopyRotate();
33 virtual void doOnApply (SPLPEItem *lpeitem);
35 virtual Geom::Piecewise<Geom::D2<Geom::SBasis> > doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > const & pwd2_in);
37 /* the knotholder entity classes must be declared friends */
38 friend class CR::KnotHolderEntityAngle;
40 private:
41 ScalarParam angle;
42 ScalarParam num_copies;
44 PointParam origin;
45 BoolParam include_original;
47 Geom::Point A;
48 Geom::Point B;
49 Geom::Point dir;
50 double dist_angle_handle;
52 LPECopyRotate(const LPECopyRotate&);
53 LPECopyRotate& operator=(const LPECopyRotate&);
54 };
56 } //namespace LivePathEffect
57 } //namespace Inkscape
59 #endif
61 /*
62 Local Variables:
63 mode:c++
64 c-file-style:"stroustrup"
65 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
66 indent-tabs-mode:nil
67 fill-column:99
68 End:
69 */
70 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :