Krita Source Code Documentation
Loading...
Searching...
No Matches
KisPhongBumpmapConfigWidget Class Reference

#include <kis_phong_bumpmap_config_widget.h>

+ Inheritance diagram for KisPhongBumpmapConfigWidget:

Public Member Functions

KisPropertiesConfigurationSP configuration () const override
 
 KisPhongBumpmapConfigWidget (const KisPaintDeviceSP dev, QWidget *parent, Qt::WindowFlags f=Qt::WindowFlags())
 
void setConfiguration (const KisPropertiesConfigurationSP config) override
 
 ~KisPhongBumpmapConfigWidget () override
 
- Public Member Functions inherited from KisConfigWidget
virtual KoCanvasResourcesInterfaceSP canvasResourcesInterface () const
 
virtual void setCanvasResourcesInterface (KoCanvasResourcesInterfaceSP canvasResourcesInterface)
 
virtual void setView (KisViewManager *view)
 
 ~KisConfigWidget () override
 

Public Attributes

KisPhongBumpmapWidgetm_page
 

Private Slots

void slotDisableHeightChannelCombobox (bool normalmapchecked)
 

Private Attributes

KisPaintDeviceSP m_device
 

Additional Inherited Members

- Signals inherited from KisConfigWidget
void sigConfigurationItemChanged ()
 
void sigConfigurationUpdated ()
 
void sigDropLockedConfig (KisPropertiesConfigurationSP p)
 
void sigSaveLockedConfig (KisPropertiesConfigurationSP p)
 
- Protected Member Functions inherited from KisConfigWidget
 KisConfigWidget (QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags(), int delay=200)
 

Detailed Description

Definition at line 72 of file kis_phong_bumpmap_config_widget.h.

Constructor & Destructor Documentation

◆ KisPhongBumpmapConfigWidget()

KisPhongBumpmapConfigWidget::KisPhongBumpmapConfigWidget ( const KisPaintDeviceSP dev,
QWidget * parent,
Qt::WindowFlags f = Qt::WindowFlags() )

Definition at line 15 of file kis_phong_bumpmap_config_widget.cpp.

16 : KisConfigWidget(parent, f)
17 , m_device(dev)
18{
19 Q_ASSERT(m_device);
20 m_page = new KisPhongBumpmapWidget(this);
21
22 KisSizeGroup *matPropLabelsGroup = new KisSizeGroup(this);
23 matPropLabelsGroup->addWidget(m_page->lblAmbientReflectivity);
24 matPropLabelsGroup->addWidget(m_page->lblDiffuseReflectivity);
25 matPropLabelsGroup->addWidget(m_page->lblSpecularReflectivity);
26 matPropLabelsGroup->addWidget(m_page->lblSpecularShinyExp);
27
28 //Let widgets warn the preview of when they are updated
29 connect(m_page->azimuthAngleSelector1, SIGNAL(angleChanged(qreal)), SIGNAL(sigConfigurationItemChanged()));
30 connect(m_page->azimuthAngleSelector2, SIGNAL(angleChanged(qreal)), SIGNAL(sigConfigurationItemChanged()));
31 connect(m_page->azimuthAngleSelector3, SIGNAL(angleChanged(qreal)), SIGNAL(sigConfigurationItemChanged()));
32 connect(m_page->azimuthAngleSelector4, SIGNAL(angleChanged(qreal)), SIGNAL(sigConfigurationItemChanged()));
33
34 connect(m_page->lightKColorCombo1, SIGNAL(currentIndexChanged(int)), SIGNAL(sigConfigurationItemChanged()));
35 connect(m_page->lightKColorCombo2, SIGNAL(currentIndexChanged(int)), SIGNAL(sigConfigurationItemChanged()));
36 connect(m_page->lightKColorCombo3, SIGNAL(currentIndexChanged(int)), SIGNAL(sigConfigurationItemChanged()));
37 connect(m_page->lightKColorCombo4, SIGNAL(currentIndexChanged(int)), SIGNAL(sigConfigurationItemChanged()));
38
39 connect(m_page->elevationAngleSelector1, SIGNAL(angleChanged(qreal)), SIGNAL(sigConfigurationItemChanged()));
40 connect(m_page->elevationAngleSelector2, SIGNAL(angleChanged(qreal)), SIGNAL(sigConfigurationItemChanged()));
41 connect(m_page->elevationAngleSelector3, SIGNAL(angleChanged(qreal)), SIGNAL(sigConfigurationItemChanged()));
42 connect(m_page->elevationAngleSelector4, SIGNAL(angleChanged(qreal)), SIGNAL(sigConfigurationItemChanged()));
43
44 connect(m_page->useNormalMap, SIGNAL(toggled(bool)), SIGNAL(sigConfigurationItemChanged()));
45 connect(m_page->diffuseReflectivityGroup, SIGNAL(toggled(bool)), SIGNAL(sigConfigurationItemChanged()));
46 connect(m_page->specularReflectivityGroup, SIGNAL(toggled(bool)), SIGNAL(sigConfigurationItemChanged()));
47
48 connect(m_page->ambientReflectivityKisDoubleSliderSpinBox, SIGNAL(valueChanged(qreal)), SIGNAL(sigConfigurationItemChanged()));
49 connect(m_page->diffuseReflectivityKisDoubleSliderSpinBox, SIGNAL(valueChanged(qreal)), SIGNAL(sigConfigurationItemChanged()));
50 connect(m_page->specularReflectivityKisDoubleSliderSpinBox, SIGNAL(valueChanged(qreal)), SIGNAL(sigConfigurationItemChanged()));
51 connect(m_page->shininessExponentKisSliderSpinBox, SIGNAL(valueChanged(int)), SIGNAL(sigConfigurationItemChanged()));
52
53 connect(m_page->heightChannelComboBox, SIGNAL(currentIndexChanged(int)), SIGNAL(sigConfigurationItemChanged()));
54
55 connect(m_page->lightSourceGroupBox1, SIGNAL(toggled(bool)), SIGNAL(sigConfigurationItemChanged()));
56 connect(m_page->lightSourceGroupBox2, SIGNAL(toggled(bool)), SIGNAL(sigConfigurationItemChanged()));
57 connect(m_page->lightSourceGroupBox3, SIGNAL(toggled(bool)), SIGNAL(sigConfigurationItemChanged()));
58 connect(m_page->lightSourceGroupBox4, SIGNAL(toggled(bool)), SIGNAL(sigConfigurationItemChanged()));
59
60
61 QVBoxLayout *l = new QVBoxLayout(this);
62 Q_CHECK_PTR(l);
63
64 l->addWidget(m_page);
65
66 /* fill in the channel chooser */
68 for (quint8 ch = 0; ch < m_device->colorSpace()->colorChannelCount(); ch++)
69 m_page->heightChannelComboBox->addItem(channels.at(ch)->name());
70
71 connect(m_page->useNormalMap, SIGNAL(toggled(bool)), this, SLOT(slotDisableHeightChannelCombobox(bool)) );
72
73
74}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void sigConfigurationItemChanged()
KisConfigWidget(QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags(), int delay=200)
const KoColorSpace * colorSpace() const
void slotDisableHeightChannelCombobox(bool normalmapchecked)
void addWidget(QWidget *widget)
QList< KoChannelInfo * > channels

References KisSizeGroup::addWidget(), KoColorSpace::channels, KisPaintDevice::colorSpace(), connect(), m_device, m_page, KisConfigWidget::sigConfigurationItemChanged(), and slotDisableHeightChannelCombobox().

◆ ~KisPhongBumpmapConfigWidget()

KisPhongBumpmapConfigWidget::~KisPhongBumpmapConfigWidget ( )
inlineoverride

Definition at line 78 of file kis_phong_bumpmap_config_widget.h.

78{}

Member Function Documentation

◆ configuration()

KisPropertiesConfigurationSP KisPhongBumpmapConfigWidget::configuration ( ) const
overridevirtual
Returns
the configuration

Implements KisConfigWidget.

Definition at line 116 of file kis_phong_bumpmap_config_widget.cpp.

117{
119 config->setProperty(PHONG_HEIGHT_CHANNEL, m_page->heightChannelComboBox->currentText());
120 config->setProperty(USE_NORMALMAP_IS_ENABLED, m_page->useNormalMap->isChecked());
121
122 config->setProperty(PHONG_AMBIENT_REFLECTIVITY, m_page->ambientReflectivityKisDoubleSliderSpinBox->value());
123 config->setProperty(PHONG_DIFFUSE_REFLECTIVITY, m_page->diffuseReflectivityKisDoubleSliderSpinBox->value());
124 config->setProperty(PHONG_SPECULAR_REFLECTIVITY, m_page->specularReflectivityKisDoubleSliderSpinBox->value());
125 config->setProperty(PHONG_SHINYNESS_EXPONENT, m_page->shininessExponentKisSliderSpinBox->value());
126 config->setProperty(PHONG_DIFFUSE_REFLECTIVITY_IS_ENABLED, m_page->diffuseReflectivityGroup->isChecked());
127 config->setProperty(PHONG_SPECULAR_REFLECTIVITY_IS_ENABLED, m_page->specularReflectivityGroup->isChecked());
128 //config->setProperty(PHONG_SHINYNESS_EXPONENT_IS_ENABLED, m_page->specularReflectivityCheckBox->isChecked());
129 // Indexes are off by 1 simply because arrays start at 0 and the GUI naming scheme started at 1
130 config->setProperty(PHONG_ILLUMINANT_IS_ENABLED[0], m_page->lightSourceGroupBox1->isChecked());
131 config->setProperty(PHONG_ILLUMINANT_IS_ENABLED[1], m_page->lightSourceGroupBox2->isChecked());
132 config->setProperty(PHONG_ILLUMINANT_IS_ENABLED[2], m_page->lightSourceGroupBox3->isChecked());
133 config->setProperty(PHONG_ILLUMINANT_IS_ENABLED[3], m_page->lightSourceGroupBox4->isChecked());
134 config->setProperty(PHONG_ILLUMINANT_COLOR[0], m_page->lightKColorCombo1->color());
135 config->setProperty(PHONG_ILLUMINANT_COLOR[1], m_page->lightKColorCombo2->color());
136 config->setProperty(PHONG_ILLUMINANT_COLOR[2], m_page->lightKColorCombo3->color());
137 config->setProperty(PHONG_ILLUMINANT_COLOR[3], m_page->lightKColorCombo4->color());
138 config->setProperty(PHONG_ILLUMINANT_AZIMUTH[0], m_page->azimuthAngleSelector1->angle());
139 config->setProperty(PHONG_ILLUMINANT_AZIMUTH[1], m_page->azimuthAngleSelector2->angle());
140 config->setProperty(PHONG_ILLUMINANT_AZIMUTH[2], m_page->azimuthAngleSelector3->angle());
141 config->setProperty(PHONG_ILLUMINANT_AZIMUTH[3], m_page->azimuthAngleSelector4->angle());
142 config->setProperty(PHONG_ILLUMINANT_INCLINATION[0], m_page->elevationAngleSelector1->angle());
143 config->setProperty(PHONG_ILLUMINANT_INCLINATION[1], m_page->elevationAngleSelector2->angle());
144 config->setProperty(PHONG_ILLUMINANT_INCLINATION[2], m_page->elevationAngleSelector3->angle());
145 config->setProperty(PHONG_ILLUMINANT_INCLINATION[3], m_page->elevationAngleSelector4->angle());
146
147 // Read configuration
148 /*
149 QMap<QString, QVariant> rofl = QMap<QString, QVariant>(config->getProperties());
150
151 QMap<QString, QVariant>::const_iterator i;
152 for (i = rofl.constBegin(); i != rofl.constEnd(); ++i)
153 dbgKrita << i.key() << ":" << i.value();
154 */
155 return config;
156}
static KisResourcesInterfaceSP instance()
const QString PHONG_SPECULAR_REFLECTIVITY_IS_ENABLED
const QString PHONG_DIFFUSE_REFLECTIVITY_IS_ENABLED
const QString PHONG_HEIGHT_CHANNEL
const QString PHONG_ILLUMINANT_AZIMUTH[]
const QString PHONG_ILLUMINANT_INCLINATION[]
const QString PHONG_ILLUMINANT_COLOR[]
const QString PHONG_SHINYNESS_EXPONENT
const QString PHONG_DIFFUSE_REFLECTIVITY
const QString PHONG_ILLUMINANT_IS_ENABLED[]
const QString USE_NORMALMAP_IS_ENABLED
const QString PHONG_SPECULAR_REFLECTIVITY
const QString PHONG_AMBIENT_REFLECTIVITY

References KisGlobalResourcesInterface::instance(), m_page, PHONG_AMBIENT_REFLECTIVITY, PHONG_DIFFUSE_REFLECTIVITY, PHONG_DIFFUSE_REFLECTIVITY_IS_ENABLED, PHONG_HEIGHT_CHANNEL, PHONG_ILLUMINANT_AZIMUTH, PHONG_ILLUMINANT_COLOR, PHONG_ILLUMINANT_INCLINATION, PHONG_ILLUMINANT_IS_ENABLED, PHONG_SHINYNESS_EXPONENT, PHONG_SPECULAR_REFLECTIVITY, PHONG_SPECULAR_REFLECTIVITY_IS_ENABLED, and USE_NORMALMAP_IS_ENABLED.

◆ setConfiguration()

void KisPhongBumpmapConfigWidget::setConfiguration ( const KisPropertiesConfigurationSP config)
overridevirtual
Parameters
configthe configuration for this configuration widget.

Implements KisConfigWidget.

Definition at line 76 of file kis_phong_bumpmap_config_widget.cpp.

77{
78 if (!config) return;
79
80 QVariant tempcolor;
81 if (config->getBool(USE_NORMALMAP_IS_ENABLED)) {
82 m_page->heightChannelComboBox->setEnabled(false);
83 } else {
84 m_page->heightChannelComboBox->setEnabled(true);
85 }
86 m_page->ambientReflectivityKisDoubleSliderSpinBox->setValue( config->getDouble(PHONG_AMBIENT_REFLECTIVITY) );
87 m_page->diffuseReflectivityKisDoubleSliderSpinBox->setValue( config->getDouble(PHONG_DIFFUSE_REFLECTIVITY) );
88 m_page->specularReflectivityKisDoubleSliderSpinBox->setValue( config->getDouble(PHONG_SPECULAR_REFLECTIVITY) );
89 m_page->shininessExponentKisSliderSpinBox->setValue( config->getInt(PHONG_SHINYNESS_EXPONENT) );
90 m_page->useNormalMap->setChecked( config->getBool(USE_NORMALMAP_IS_ENABLED) );
91 m_page->diffuseReflectivityGroup->setChecked( config->getBool(PHONG_DIFFUSE_REFLECTIVITY_IS_ENABLED) );
92 m_page->specularReflectivityGroup->setChecked( config->getBool(PHONG_SPECULAR_REFLECTIVITY_IS_ENABLED) );
93 // NOTE: Indexes are off by 1 simply because arrays start at 0 and the GUI naming scheme started at 1
94 m_page->lightSourceGroupBox1->setChecked( config->getBool(PHONG_ILLUMINANT_IS_ENABLED[0]) );
95 m_page->lightSourceGroupBox2->setChecked( config->getBool(PHONG_ILLUMINANT_IS_ENABLED[1]) );
96 m_page->lightSourceGroupBox3->setChecked( config->getBool(PHONG_ILLUMINANT_IS_ENABLED[2]) );
97 m_page->lightSourceGroupBox4->setChecked( config->getBool(PHONG_ILLUMINANT_IS_ENABLED[3]) );
98 config->getProperty(PHONG_ILLUMINANT_COLOR[0], tempcolor);
99 m_page->lightKColorCombo1->setColor(tempcolor.value<QColor>());
100 config->getProperty(PHONG_ILLUMINANT_COLOR[1], tempcolor);
101 m_page->lightKColorCombo2->setColor(tempcolor.value<QColor>());
102 config->getProperty(PHONG_ILLUMINANT_COLOR[2], tempcolor);
103 m_page->lightKColorCombo3->setColor(tempcolor.value<QColor>());
104 config->getProperty(PHONG_ILLUMINANT_COLOR[3], tempcolor);
105 m_page->lightKColorCombo4->setColor(tempcolor.value<QColor>());
106 m_page->azimuthAngleSelector1->setAngle( config->getDouble(PHONG_ILLUMINANT_AZIMUTH[0]) );
107 m_page->azimuthAngleSelector2->setAngle( config->getDouble(PHONG_ILLUMINANT_AZIMUTH[1]) );
108 m_page->azimuthAngleSelector3->setAngle( config->getDouble(PHONG_ILLUMINANT_AZIMUTH[2]) );
109 m_page->azimuthAngleSelector4->setAngle( config->getDouble(PHONG_ILLUMINANT_AZIMUTH[3]) );
110 m_page->elevationAngleSelector1->setAngle( config->getDouble(PHONG_ILLUMINANT_INCLINATION[0]) );
111 m_page->elevationAngleSelector2->setAngle( config->getDouble(PHONG_ILLUMINANT_INCLINATION[1]) );
112 m_page->elevationAngleSelector3->setAngle( config->getDouble(PHONG_ILLUMINANT_INCLINATION[2]) );
113 m_page->elevationAngleSelector4->setAngle( config->getDouble(PHONG_ILLUMINANT_INCLINATION[3]) );
114}

References m_page, PHONG_AMBIENT_REFLECTIVITY, PHONG_DIFFUSE_REFLECTIVITY, PHONG_DIFFUSE_REFLECTIVITY_IS_ENABLED, PHONG_ILLUMINANT_AZIMUTH, PHONG_ILLUMINANT_COLOR, PHONG_ILLUMINANT_INCLINATION, PHONG_ILLUMINANT_IS_ENABLED, PHONG_SHINYNESS_EXPONENT, PHONG_SPECULAR_REFLECTIVITY, PHONG_SPECULAR_REFLECTIVITY_IS_ENABLED, and USE_NORMALMAP_IS_ENABLED.

◆ slotDisableHeightChannelCombobox

void KisPhongBumpmapConfigWidget::slotDisableHeightChannelCombobox ( bool normalmapchecked)
privateslot

Definition at line 158 of file kis_phong_bumpmap_config_widget.cpp.

158 {
159 if (normalmapchecked) {
160 m_page->heightChannelComboBox->setEnabled(false);
161 } else {
162 m_page->heightChannelComboBox->setEnabled(true);
163 }
164}

References m_page.

Member Data Documentation

◆ m_device

KisPaintDeviceSP KisPhongBumpmapConfigWidget::m_device
private

Definition at line 84 of file kis_phong_bumpmap_config_widget.h.

◆ m_page

KisPhongBumpmapWidget* KisPhongBumpmapConfigWidget::m_page

Definition at line 81 of file kis_phong_bumpmap_config_widget.h.


The documentation for this class was generated from the following files: