1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /** @file
3  * @brief SVG turbulence filter effect
4  *//*
5  * Authors:
6  *   Felipe Corrêa da Silva Sanches <juca@members.fsf.org>
7  *   Hugo Rodrigues <haa.rodrigues@gmail.com>
8  *
9  * Copyright (C) 2006 Hugo Rodrigues
10  *
11  * Released under GNU GPL v2+, read the file 'COPYING' for more information.
12  */
13 
14 #ifndef SP_FETURBULENCE_H_SEEN
15 #define SP_FETURBULENCE_H_SEEN
16 
17 #include "sp-filter-primitive.h"
18 #include "number-opt-number.h"
19 #include "display/nr-filter-turbulence.h"
20 
21 #define SP_FETURBULENCE(obj) (dynamic_cast<SPFeTurbulence*>((SPObject*)obj))
22 #define SP_IS_FETURBULENCE(obj) (dynamic_cast<const SPFeTurbulence*>((SPObject*)obj) != NULL)
23 
24 /* FeTurbulence base class */
25 
26 class SPFeTurbulence : public SPFilterPrimitive {
27 public:
28 	SPFeTurbulence();
29 	~SPFeTurbulence() override;
30 
31     /** TURBULENCE ATTRIBUTES HERE */
32     NumberOptNumber baseFrequency;
33     int numOctaves;
34     double seed;
35     bool stitchTiles;
36     Inkscape::Filters::FilterTurbulenceType type;
37     SVGLength x, y, height, width;
38     bool updated;
39 
40 protected:
41 	void build(SPDocument* doc, Inkscape::XML::Node* repr) override;
42 	void release() override;
43 
44 	void set(SPAttr key, const gchar* value) override;
45 
46 	void update(SPCtx* ctx, unsigned int flags) override;
47 
48 	Inkscape::XML::Node* write(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags) override;
49 
50 	void build_renderer(Inkscape::Filters::Filter* filter) override;
51 };
52 
53 #endif /* !SP_FETURBULENCE_H_SEEN */
54 
55 /*
56   Local Variables:
57   mode:c++
58   c-file-style:"stroustrup"
59   c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
60   indent-tabs-mode:nil
61   fill-column:99
62   End:
63 */
64 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
65