1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  * Copyright (C) 2007 Authors:
4  *   Christopher Brown <audiere@gmail.com>
5  *   Ted Gould <ted@gould.cx>
6  *
7  * Released under GNU GPL v2+, read the file 'COPYING' for more information.
8  */
9 
10 #include "extension/effect.h"
11 #include "extension/system.h"
12 
13 #include "wave.h"
14 #include <Magick++.h>
15 
16 namespace Inkscape {
17 namespace Extension {
18 namespace Internal {
19 namespace Bitmap {
20 
21 void
applyEffect(Magick::Image * image)22 Wave::applyEffect(Magick::Image* image) {
23 	image->wave(_amplitude, _wavelength);
24 }
25 
26 void
refreshParameters(Inkscape::Extension::Effect * module)27 Wave::refreshParameters(Inkscape::Extension::Effect* module) {
28 	_amplitude = module->get_param_float("amplitude");
29 	_wavelength = module->get_param_float("wavelength");
30 }
31 
32 #include "../clear-n_.h"
33 
34 void
init()35 Wave::init()
36 {
37     // clang-format off
38     Inkscape::Extension::build_from_mem(
39         "<inkscape-extension xmlns=\"" INKSCAPE_EXTENSION_URI "\">\n"
40             "<name>" N_("Wave") "</name>\n"
41             "<id>org.inkscape.effect.bitmap.wave</id>\n"
42             "<param name=\"amplitude\" gui-text=\"" N_("Amplitude:") "\" type=\"float\" min=\"-720.0\" max=\"720.0\">25</param>\n"
43             "<param name=\"wavelength\" gui-text=\"" N_("Wavelength:") "\" type=\"float\" min=\"-720.0\" max=\"720.0\">150</param>\n"
44             "<effect>\n"
45                 "<object-type>all</object-type>\n"
46                 "<effects-menu>\n"
47                     "<submenu name=\"" N_("Raster") "\" />\n"
48                 "</effects-menu>\n"
49                 "<menu-tip>" N_("Alter selected bitmap(s) along sine wave") "</menu-tip>\n"
50             "</effect>\n"
51         "</inkscape-extension>\n", new Wave());
52     // clang-format on
53 }
54 
55 }; /* namespace Bitmap */
56 }; /* namespace Internal */
57 }; /* namespace Extension */
58 }; /* namespace Inkscape */
59