1 #ifndef INKSCAPE_LPE_MIRROR_REFLECT_H
2 #define INKSCAPE_LPE_MIRROR_REFLECT_H
4 /** \file
5 * LPE <mirror_reflection> 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 LPEMirrorReflect : public Effect {
27 public:
28 LPEMirrorReflect(LivePathEffectObject *lpeobject);
29 virtual ~LPEMirrorReflect();
31 virtual void acceptParamPath (SPPath *param_path);
32 virtual int acceptsNumParams() { return 2; }
34 virtual LPEPathFlashType pathFlashType() { return PERMANENT_FLASH; }
36 virtual std::vector<Geom::Path> doEffect_path (std::vector<Geom::Path> const & path_in);
38 private:
39 PathParam reflection_line;
41 LPEMirrorReflect(const LPEMirrorReflect&);
42 LPEMirrorReflect& operator=(const LPEMirrorReflect&);
43 };
45 } //namespace LivePathEffect
46 } //namespace Inkscape
48 #endif