File indexing completed on 2024-06-16 04:16:42

0001 /*
0002  *  SPDX-FileCopyrightText: 2010 Dmitry Kazakov <dimula73@gmail.com>
0003  *  SPDX-FileCopyrightText: 2010-2011 José Luis Vergara <pentalis@gmail.com>
0004  *
0005  *  SPDX-License-Identifier: GPL-2.0-or-later
0006  */
0007 
0008 #ifndef KIS_PHONG_BUMPMAP_FILTER_H
0009 #define KIS_PHONG_BUMPMAP_FILTER_H
0010 
0011 #include <kis_types.h>
0012 #include <filter/kis_filter.h>
0013 
0014 /**
0015  * This class is an implementation of the phong illumination model.
0016  * It uses a heightmap as an input mesh (normally taken from 1
0017  * channel of a colorspace) to achieve a bumpmapping effect with
0018  * multiple illumination sources.
0019  */
0020 class KisFilterPhongBumpmap : public KisFilter
0021 {
0022 public:
0023     KisFilterPhongBumpmap();
0024 
0025 public:
0026 
0027     void processImpl(KisPaintDeviceSP device,
0028                      const QRect& applyRect,
0029                      const KisFilterConfigurationSP config,
0030                      KoUpdater *progressUpdater
0031                      ) const override;
0032 
0033     QRect neededRect(const QRect &rect, const KisFilterConfigurationSP config, int lod) const override;
0034     QRect changedRect(const QRect &rect, const KisFilterConfigurationSP config, int lod) const override;
0035 
0036     KisConfigWidget *createConfigurationWidget(QWidget *parent, const KisPaintDeviceSP dev, bool useForMasks) const override;
0037     KisFilterConfigurationSP defaultConfiguration(KisResourcesInterfaceSP resourcesInterface) const override;
0038 private:
0039     //bool m_usenormalmap;
0040 };
0041 
0042 #endif  //KIS_PHONG_BUMPMAP_FILTER_H