1 // SPDX-License-Identifier: GPL-2.0-or-later
2 #ifndef INKSCAPE_LPE_POWERCLIP_H
3 #define INKSCAPE_LPE_POWERCLIP_H
4 
5 /*
6  * Inkscape::LPEPowerClip
7  *
8  * Released under GNU GPL v2+, read the file 'COPYING' for more information.
9  */
10 
11 #include "live_effects/effect.h"
12 #include "live_effects/parameter/message.h"
13 
14 namespace Inkscape {
15 namespace LivePathEffect {
16 
17 class LPEPowerClip : public Effect {
18 public:
19     LPEPowerClip(LivePathEffectObject *lpeobject);
20     ~LPEPowerClip() override;
21     void doBeforeEffect (SPLPEItem const* lpeitem) override;
22     Geom::PathVector doEffect_path (Geom::PathVector const & path_in) override;
23     void doOnRemove (SPLPEItem const* /*lpeitem*/) override;
24     void doOnVisibilityToggled(SPLPEItem const* lpeitem) override;
25     Glib::ustring getId();
26     void add();
27     void upd();
28     void del();
29     Geom::PathVector getClipPathvector();
30 
31   private:
32     BoolParam inverse;
33     BoolParam flatten;
34     BoolParam hide_clip;
35     MessageParam message;
36     bool _updating;
37     bool _legacy;
38 };
39 
40 void sp_remove_powerclip(Inkscape::Selection *sel);
41 void sp_inverse_powerclip(Inkscape::Selection *sel);
42 
43 } //namespace LivePathEffect
44 } //namespace Inkscape
45 #endif
46