KHtml

SVGFEConvolveMatrix.h
1 /*
2  Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <[email protected]>
3  2004, 2005 Rob Buis <[email protected]>
4  2005 Eric Seidel <[email protected]>
5 
6  This library is free software; you can redistribute it and/or
7  modify it under the terms of the GNU Library General Public
8  License as published by the Free Software Foundation; either
9  version 2 of the License, or (at your option) any later version.
10 
11  This library is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  Library General Public License for more details.
15 
16  You should have received a copy of the GNU Library General Public License
17  aint with this library; see the file COPYING.LIB. If not, write to
18  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19  Boston, MA 02110-1301, USA.
20 */
21 
22 #ifndef SVGFEConvolveMatrix_h
23 #define SVGFEConvolveMatrix_h
24 
25 #if ENABLE(SVG) && ENABLE(SVG_FILTERS)
26 #include "SVGFilterEffect.h"
27 
28 namespace WebCore
29 {
30 
31 enum SVGEdgeModeType {
32  SVG_EDGEMODE_UNKNOWN = 0,
33  SVG_EDGEMODE_DUPLICATE = 1,
34  SVG_EDGEMODE_WRAP = 2,
35  SVG_EDGEMODE_NONE = 3
36 };
37 
38 class SVGFEConvolveMatrix : public SVGFilterEffect
39 {
40 public:
41  SVGFEConvolveMatrix(SVGResourceFilter *);
42 
43  FloatSize kernelSize() const;
44  void setKernelSize(FloatSize);
45 
46  const Vector<float> &kernel() const;
47  void setKernel(const Vector<float> &);
48 
49  float divisor() const;
50  void setDivisor(float);
51 
52  float bias() const;
53  void setBias(float);
54 
55  FloatSize targetOffset() const;
56  void setTargetOffset(FloatSize);
57 
58  SVGEdgeModeType edgeMode() const;
59  void setEdgeMode(SVGEdgeModeType);
60 
61  FloatPoint kernelUnitLength() const;
62  void setKernelUnitLength(FloatPoint);
63 
64  bool preserveAlpha() const;
65  void setPreserveAlpha(bool);
66 
67  virtual TextStream &externalRepresentation(TextStream &) const;
68 
69 private:
70  FloatSize m_kernelSize;
71  float m_divisor;
72  float m_bias;
73  FloatSize m_targetOffset;
74  SVGEdgeModeType m_edgeMode;
75  FloatPoint m_kernelUnitLength;
76  bool m_preserveAlpha;
77  Vector<float> m_kernelMatrix; // maybe should be a real matrix?
78 };
79 
80 } // namespace WebCore
81 
82 #endif // ENABLE(SVG) && ENABLE(SVG_FILTERS)
83 
84 #endif // SVGFEConvolveMatrix_h
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Fri Oct 15 2021 22:48:13 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.