File indexing completed on 2024-06-09 04:27:12
0001 /* 0002 * SPDX-FileCopyrightText: 2016 Miroslav Talasek <miroslav.talasek@seznam.cz> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef __KIS_WAVELET_KERNEL_H 0008 #define __KIS_WAVELET_KERNEL_H 0009 0010 #include "kis_types.h" 0011 0012 #include <Eigen/Core> 0013 0014 class QRect; 0015 0016 class KisWaveletKernel 0017 { 0018 public: 0019 static Eigen::Matrix<qreal, Eigen::Dynamic, Eigen::Dynamic> 0020 createHorizontalMatrix(qreal radius); 0021 0022 static Eigen::Matrix<qreal, Eigen::Dynamic, Eigen::Dynamic> 0023 createVerticalMatrix(qreal radius); 0024 0025 static KisConvolutionKernelSP 0026 createHorizontalKernel(qreal radius); 0027 0028 static KisConvolutionKernelSP 0029 createVerticalKernel(qreal radius); 0030 0031 static int kernelSizeFromRadius(qreal radius); 0032 0033 static void applyWavelet(KisPaintDeviceSP device, 0034 const QRect& rect, 0035 qreal xRadius, qreal yRadius, 0036 const QBitArray &channelFlags, 0037 KoUpdater *updater); 0038 }; 0039 0040 #endif /* __KIS_WAVELET_KERNEL_H */