Inkscape
Vector Graphics Editor
Loading...
Searching...
No Matches
convolvematrix.h
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-2.0-or-later
5/*
6 * Authors:
7 * Felipe CorrĂȘa da Silva Sanches <juca@members.fsf.org>
8 * Hugo Rodrigues <haa.rodrigues@gmail.com>
9 *
10 * Copyright (C) 2006 Hugo Rodrigues
11 *
12 * Released under GNU GPL v2+, read the file 'COPYING' for more information.
13 */
14#ifndef SP_FECONVOLVEMATRIX_H_SEEN
15#define SP_FECONVOLVEMATRIX_H_SEEN
16
17#include <vector>
18#include "sp-filter-primitive.h"
19#include "number-opt-number.h"
21
23 : public SPFilterPrimitive
24{
25public:
26 int tag() const override { return tag_of<decltype(*this)>; }
27
28 NumberOptNumber get_order() const { return order; }
29 std::vector<double> const &get_kernel_matrix() const { return kernelMatrix; }
30
31private:
32 double bias = 0.0;
34 bool preserveAlpha = false;
35
36 double divisor = 0.0;
37 int targetX = 1;
38 int targetY = 1;
39 std::vector<double> kernelMatrix;
40
41 bool divisorIsSet = false;
42 bool targetXIsSet = false;
43 bool targetYIsSet = false;
44 bool kernelMatrixIsSet = false;
45
48
49protected:
50 void build(SPDocument *doc, Inkscape::XML::Node *repr) override;
51 void set(SPAttr key, char const *value) override;
52
53 std::unique_ptr<Inkscape::Filters::FilterPrimitive> build_renderer(Inkscape::DrawingItem *item) const override;
54};
55
56#endif // SP_FECONVOLVEMATRIX_H_SEEN
57
58/*
59 Local Variables:
60 mode:c++
61 c-file-style:"stroustrup"
62 c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
63 indent-tabs-mode:nil
64 fill-column:99
65 End:
66*/
67// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
SPAttr
Definition attributes.h:27
constexpr int tag_of
Convenience function to retrieve the tag (class id) of a given type.
Definition cast.h:26
SVG drawing item for display.
Interface for refcounted XML nodes.
Definition node.h:80
Typed SVG document implementation.
Definition document.h:101
NumberOptNumber get_order() const
Inkscape::Filters::FilterConvolveMatrixEdgeMode edgeMode
std::unique_ptr< Inkscape::Filters::FilterPrimitive > build_renderer(Inkscape::DrawingItem *item) const override
int tag() const override
NumberOptNumber kernelUnitLength
std::vector< double > const & get_kernel_matrix() const
NumberOptNumber order
std::vector< double > kernelMatrix
void build(SPDocument *doc, Inkscape::XML::Node *repr) override
Inkscape::XML::Node * repr
Definition sp-object.h:193
SPItem * item
static cairo_user_data_key_t key
<number-opt-number> implementation.
Document level base class for all SVG filter primitives.