| |
|
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| |
|
| | #include <App/PropertyStandard.h>
|
| |
|
| | #include "Dialogs/DlgMaterialPropertiesImp.h"
|
| | #include "ui_DlgMaterialProperties.h"
|
| | #include "ViewProvider.h"
|
| |
|
| | #include <Base/Tools.h>
|
| |
|
| |
|
| | using namespace Gui::Dialog;
|
| |
|
| |
|
| |
|
| |
|
| | DlgMaterialPropertiesImp::DlgMaterialPropertiesImp(QWidget* parent, Qt::WindowFlags fl)
|
| | : QDialog(parent, fl)
|
| | , ui(new Ui_DlgMaterialProperties)
|
| | {
|
| | ui->setupUi(this);
|
| | setupConnections();
|
| |
|
| | ui->ambientColor->setAutoChangeColor(true);
|
| | ui->diffuseColor->setAutoChangeColor(true);
|
| | ui->emissiveColor->setAutoChangeColor(true);
|
| | ui->specularColor->setAutoChangeColor(true);
|
| | }
|
| |
|
| | DlgMaterialPropertiesImp::~DlgMaterialPropertiesImp() = default;
|
| |
|
| | void DlgMaterialPropertiesImp::setupConnections()
|
| | {
|
| |
|
| | connect(ui->ambientColor, &ColorButton::changed,
|
| | this, &DlgMaterialPropertiesImp::onAmbientColorChanged);
|
| | connect(ui->diffuseColor, &ColorButton::changed,
|
| | this, &DlgMaterialPropertiesImp::onDiffuseColorChanged);
|
| | connect(ui->emissiveColor, &ColorButton::clicked,
|
| | this, &DlgMaterialPropertiesImp::onEmissiveColorChanged);
|
| | connect(ui->specularColor, &ColorButton::clicked,
|
| | this, &DlgMaterialPropertiesImp::onSpecularColorChanged);
|
| | connect(ui->shininess, qOverload<int>(&QSpinBox::valueChanged),
|
| | this, &DlgMaterialPropertiesImp::onShininessValueChanged);
|
| | connect(ui->transparency, qOverload<int>(&QSpinBox::valueChanged),
|
| | this, &DlgMaterialPropertiesImp::onTransparencyValueChanged);
|
| | connect(ui->buttonReset, &QPushButton::clicked,
|
| | this, &DlgMaterialPropertiesImp::onButtonReset);
|
| | connect(ui->buttonDefault, &QPushButton::clicked,
|
| | this, &DlgMaterialPropertiesImp::onButtonDefault);
|
| |
|
| | }
|
| |
|
| | void DlgMaterialPropertiesImp::setCustomMaterial(const App::Material& mat)
|
| | {
|
| | customMaterial = mat;
|
| | setButtonColors(customMaterial);
|
| | }
|
| |
|
| | App::Material DlgMaterialPropertiesImp::getCustomMaterial() const
|
| | {
|
| | return customMaterial;
|
| | }
|
| |
|
| | void DlgMaterialPropertiesImp::setDefaultMaterial(const App::Material& mat)
|
| | {
|
| | defaultMaterial = mat;
|
| | }
|
| |
|
| | App::Material DlgMaterialPropertiesImp::getDefaultMaterial() const
|
| | {
|
| | return defaultMaterial;
|
| | }
|
| |
|
| | |
| | |
| |
|
| | void DlgMaterialPropertiesImp::onAmbientColorChanged()
|
| | {
|
| | customMaterial.ambientColor.setValue(ui->ambientColor->color());
|
| | }
|
| |
|
| | |
| | |
| |
|
| | void DlgMaterialPropertiesImp::onDiffuseColorChanged()
|
| | {
|
| | customMaterial.diffuseColor.setValue(ui->diffuseColor->color());
|
| | }
|
| |
|
| | |
| | |
| |
|
| | void DlgMaterialPropertiesImp::onEmissiveColorChanged()
|
| | {
|
| | customMaterial.emissiveColor.setValue(ui->emissiveColor->color());
|
| | }
|
| |
|
| | |
| | |
| |
|
| | void DlgMaterialPropertiesImp::onSpecularColorChanged()
|
| | {
|
| | customMaterial.specularColor.setValue(ui->specularColor->color());
|
| | }
|
| |
|
| | |
| | |
| |
|
| | void DlgMaterialPropertiesImp::onShininessValueChanged(int sh)
|
| | {
|
| | customMaterial.shininess = Base::fromPercent(sh);
|
| | }
|
| |
|
| | |
| | |
| |
|
| | void DlgMaterialPropertiesImp::onTransparencyValueChanged(int sh)
|
| | {
|
| | customMaterial.transparency = Base::fromPercent(sh);
|
| | }
|
| |
|
| | |
| | |
| |
|
| | void DlgMaterialPropertiesImp::onButtonReset()
|
| | {
|
| | setCustomMaterial(getDefaultMaterial());
|
| | }
|
| |
|
| | |
| | |
| |
|
| | void DlgMaterialPropertiesImp::onButtonDefault()
|
| | {
|
| | App::Material mat = App::Material::getDefaultAppearance();
|
| | setCustomMaterial(mat);
|
| | }
|
| |
|
| | |
| | |
| |
|
| | void DlgMaterialPropertiesImp::setButtonColors(const App::Material& mat)
|
| | {
|
| | ui->ambientColor->setColor(mat.ambientColor.asValue<QColor>());
|
| | ui->diffuseColor->setColor(mat.diffuseColor.asValue<QColor>());
|
| | ui->emissiveColor->setColor(mat.emissiveColor.asValue<QColor>());
|
| | ui->specularColor->setColor(mat.specularColor.asValue<QColor>());
|
| | ui->shininess->blockSignals(true);
|
| | ui->shininess->setValue((int)(100.0F * (mat.shininess + 0.001F)));
|
| | ui->shininess->blockSignals(false);
|
| | ui->transparency->blockSignals(true);
|
| | ui->transparency->setValue((int)(100.0F * (mat.transparency + 0.001F)));
|
| | ui->transparency->blockSignals(false);
|
| | }
|
| |
|
| | #include "moc_DlgMaterialPropertiesImp.cpp"
|
| |
|