File indexing completed on 2024-05-26 04:33:09

0001 /*
0002  *  SPDX-FileCopyrightText: 2010-2011 José Luis Vergara <pentalis@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef KIS_PHONG_BUMPMAP_CONFIG_WIDGET_H
0008 #define KIS_PHONG_BUMPMAP_CONFIG_WIDGET_H
0009 
0010 #include "ui_wdgphongbumpmap.h"
0011 #include "kis_paint_device.h"
0012 #include "kis_config_widget.h"
0013 #include "kis_image.h"
0014 
0015 
0016 class KisPhongBumpmapWidget : public QWidget, public Ui::WdgPhongBumpmap
0017 {
0018     Q_OBJECT
0019 
0020 public:
0021     KisPhongBumpmapWidget(QWidget *parent) : QWidget(parent)
0022     {
0023         setupUi(this);
0024         
0025         ambientReflectivityKisDoubleSliderSpinBox  -> setRange(0, 1, 2);
0026         diffuseReflectivityKisDoubleSliderSpinBox  -> setRange(0, 1, 2);
0027         specularReflectivityKisDoubleSliderSpinBox -> setRange(0, 1, 2);
0028         shininessExponentKisSliderSpinBox          -> setRange(1, 200);
0029 
0030         ambientReflectivityKisDoubleSliderSpinBox  -> setSingleStep(0.01);
0031         diffuseReflectivityKisDoubleSliderSpinBox  -> setSingleStep(0.01);
0032         specularReflectivityKisDoubleSliderSpinBox -> setSingleStep(0.01);
0033         
0034         ambientReflectivityKisDoubleSliderSpinBox  -> setValue(0.1);
0035         diffuseReflectivityKisDoubleSliderSpinBox  -> setValue(0.5);
0036         specularReflectivityKisDoubleSliderSpinBox -> setValue(0.5);
0037         shininessExponentKisSliderSpinBox          -> setValue(40);
0038 
0039         azimuthAngleSelector1->setDecimals(0);
0040         azimuthAngleSelector1->setRange(0, 359);
0041         azimuthAngleSelector1->setFlipOptionsMode(KisAngleSelector::FlipOptionsMode_MenuButton);
0042         azimuthAngleSelector2->setDecimals(0);
0043         azimuthAngleSelector2->setRange(0, 359);
0044         azimuthAngleSelector2->setFlipOptionsMode(KisAngleSelector::FlipOptionsMode_MenuButton);
0045         azimuthAngleSelector3->setDecimals(0);
0046         azimuthAngleSelector3->setRange(0, 359);
0047         azimuthAngleSelector3->setFlipOptionsMode(KisAngleSelector::FlipOptionsMode_MenuButton);
0048         azimuthAngleSelector4->setDecimals(0);
0049         azimuthAngleSelector4->setRange(0, 359);
0050         azimuthAngleSelector4->setFlipOptionsMode(KisAngleSelector::FlipOptionsMode_MenuButton);
0051 
0052         elevationAngleSelector1->setDecimals(0);
0053         elevationAngleSelector1->setRange(0, 90);
0054         elevationAngleSelector1->setWrapping(false);
0055         elevationAngleSelector1->setFlipOptionsMode(KisAngleSelector::FlipOptionsMode_NoFlipOptions);
0056         elevationAngleSelector2->setDecimals(0);
0057         elevationAngleSelector2->setRange(0, 90);
0058         elevationAngleSelector2->setWrapping(false);
0059         elevationAngleSelector2->setFlipOptionsMode(KisAngleSelector::FlipOptionsMode_NoFlipOptions);
0060         elevationAngleSelector3->setDecimals(0);
0061         elevationAngleSelector3->setRange(0, 90);
0062         elevationAngleSelector3->setWrapping(false);
0063         elevationAngleSelector3->setFlipOptionsMode(KisAngleSelector::FlipOptionsMode_NoFlipOptions);
0064         elevationAngleSelector4->setDecimals(0);
0065         elevationAngleSelector4->setRange(0, 90);
0066         elevationAngleSelector4->setWrapping(false);
0067         elevationAngleSelector4->setFlipOptionsMode(KisAngleSelector::FlipOptionsMode_NoFlipOptions);
0068 
0069     }
0070 };
0071 
0072 class KisPhongBumpmapConfigWidget : public KisConfigWidget
0073 {
0074     Q_OBJECT
0075 
0076 public:
0077     KisPhongBumpmapConfigWidget(const KisPaintDeviceSP dev, QWidget *parent, Qt::WindowFlags f = Qt::WindowFlags());
0078     ~KisPhongBumpmapConfigWidget() override {}
0079     void setConfiguration(const KisPropertiesConfigurationSP config) override;
0080     KisPropertiesConfigurationSP configuration() const override;
0081     KisPhongBumpmapWidget *m_page;
0082 
0083 private:
0084     KisPaintDeviceSP m_device;
0085 private Q_SLOTS:
0086     void slotDisableHeightChannelCombobox(bool normalmapchecked);
0087 };
0088 
0089 #endif  //KIS_PHONG_BUMPMAP_CONFIG_WIDGET_H