~ubuntu-branches/ubuntu/precise/koffice/precise

« back to all changes in this revision

Viewing changes to libs/pigment/KoConvolutionOp.h

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Riddell
  • Date: 2010-09-21 15:36:35 UTC
  • mfrom: (1.4.1 upstream) (60.2.11 maverick)
  • Revision ID: james.westby@ubuntu.com-20100921153635-6tejqkiro2u21ydi
Tags: 1:2.2.2-0ubuntu3
Add kubuntu_03_fix-crash-on-closing-sqlite-connection-2.2.2.diff and
kubuntu_04_support-large-memo-values-for-msaccess-2.2.2.diff as
recommended by upstream http://kexi-
project.org/wiki/wikiview/index.php@Kexi2.2_Patches.html#sqlite_stab
ility

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *  Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
 
3
 *  Copyright (c) 2006-2007 Cyrille Berger <cberger@cberger.net>
 
4
 *
 
5
 * This library is free software; you can redistribute it and/or
 
6
 * modify it under the terms of the GNU Lesser General Public
 
7
 * License as published by the Free Software Foundation; either
 
8
 * version 2 of the License, or (at your option) any later version.
 
9
 *
 
10
 * This library is distributed in the hope that it will be useful,
 
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
13
 * Lesser General Public License for more details.
 
14
 *
 
15
 * You should have received a copy of the GNU Lesser General Public License
 
16
 * along with this library; see the file COPYING.LIB.  If not, write to
 
17
 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 
18
 * Boston, MA 02110-1301, USA.
 
19
 */
 
20
#ifndef KO_CONVOLUTION_OP_H
 
21
#define KO_CONVOLUTION_OP_H
 
22
 
 
23
/**
 
24
 * Base class of a convolution operation. A convolution operation is
 
25
 * defined by sum(colors[i] * kernelValues[i]) / factor + offset). The
 
26
 * most well known convolution is the gaussian blur.
 
27
 *
 
28
 * You access the KoConvolutionOp of a colorspace by calling
 
29
 * KoColorSpace::convolutionOp.
 
30
 */
 
31
class KoConvolutionOp
 
32
{
 
33
public:
 
34
    virtual ~KoConvolutionOp() { }
 
35
    /**
 
36
     * Convolve the colors.
 
37
     *
 
38
     * @param colors a pointer toward the source pixels
 
39
     * @param kernelValues the coeffient of the source pixels
 
40
     * @param dst the destination pixel
 
41
     * @param factor usually the factor is equal to the sum of kernelValues
 
42
     * @param offset the offset which is added to the result, useful
 
43
     *        when the sum of kernelValues is equal to 0
 
44
     * @param nColors the number of pixels in the colors array
 
45
     * @param channelFlags determines which channels are affected in pixel order
 
46
     *
 
47
     * This function is thread-safe.
 
48
     *
 
49
     */
 
50
    virtual void convolveColors(const quint8* const* colors, const qreal* kernelValues, quint8 *dst, qreal factor, qreal offset, qint32 nColors, const QBitArray & channelFlags) const = 0;
 
51
};
 
52
 
 
53
#endif