1 #ifndef INKSCAPE_LPE_MIRROR_SYMMETRY_H
2 #define INKSCAPE_LPE_MIRROR_SYMMETRY_H
4 /** \file
5 * LPE <mirror_symmetry> implementation: mirrors a path with respect to a given line.
6 */
7 /*
8 * Authors:
9 * Maximilian Albert
10 * Johan Engelen
11 *
12 * Copyright (C) Johan Engelen 2007 <j.b.c.engelen@utwente.nl>
13 * Copyright (C) Maximilin 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/parameter.h"
20 #include "live_effects/parameter/point.h"
21 #include "live_effects/parameter/path.h"
23 namespace Inkscape {
24 namespace LivePathEffect {
26 class LPEMirrorSymmetry : public Effect {
27 public:
28 LPEMirrorSymmetry(LivePathEffectObject *lpeobject);
29 virtual ~LPEMirrorSymmetry();
31 virtual void acceptParamPath (SPPath *param_path);
32 virtual int acceptsNumParams() { return 2; }
34 virtual std::vector<Geom::Path> doEffect_path (std::vector<Geom::Path> const & path_in);
36 private:
37 BoolParam discard_orig_path;
38 PathParam reflection_line;
40 LPEMirrorSymmetry(const LPEMirrorSymmetry&);
41 LPEMirrorSymmetry& operator=(const LPEMirrorSymmetry&);
42 };
44 } //namespace LivePathEffect
45 } //namespace Inkscape
47 #endif