diff --git a/Makefile b/Makefile index 91d29c4..2b2250e 100644 --- a/Makefile +++ b/Makefile @@ -48,9 +48,6 @@ run:build run_cli:build LD_LIBRARY_PATH=$(LIBRARY_PATH) ${RUNNER} ${BUILDPATH}/interface/commandline/paysages-cli $(ARGS) -run_legacy:build - LD_LIBRARY_PATH=$(LIBRARY_PATH) ${RUNNER} ${BUILDPATH}/interface/desktop/paysages-gui $(ARGS) - profile:build LD_LIBRARY_PATH=${LIBRARY_PATH} perf record -g ${BUILDPATH}/interface/modeler/quickapp/paysages-modeler $(ARGS) perf report -g @@ -70,8 +67,8 @@ package:build cp $(BUILDPATH)/render/software/libpaysages_render_software.so* paysages3d-linux/lib/ cp $(BUILDPATH)/render/preview/libpaysages_render_preview.so* paysages3d-linux/lib/ cp $(BUILDPATH)/render/opengl/libpaysages_render_opengl.so* paysages3d-linux/lib/ - cp $(BUILDPATH)/interface/desktop/paysages-gui paysages3d-linux/lib/ - chmod +x paysages3d-linux/lib/paysages-gui + cp $(BUILDPATH)/interface/modeler/quickapp/paysages-modeler paysages3d-linux/lib/ + chmod +x paysages3d-linux/lib/paysages-modeler cp -r data paysages3d-linux/ cp dist/paysages3d.sh paysages3d-linux/ chmod +x paysages3d-linux/paysages3d.sh diff --git a/dist/paysages3d.sh b/dist/paysages3d.sh index b679c74..f016756 100644 --- a/dist/paysages3d.sh +++ b/dist/paysages3d.sh @@ -5,6 +5,6 @@ export LD_LIBRARY_PATH=${SCRIPT_PATH}/lib:"${LD_LIBRARY_PATH}" cd ${SCRIPT_PATH} COLLECT_NEEDED=$(ldd lib/paysages-gui | grep -c 'not found') [ $COLLECT_NEEDED -gt 0 ] && export LD_LIBRARY_PATH=${SCRIPT_PATH}/lib/collected:"${LD_LIBRARY_PATH}" -${SCRIPT_PATH}/lib/paysages-gui +${SCRIPT_PATH}/lib/paysages-modeler cd - > /dev/null diff --git a/src/interface/desktop/DesktopScenery.cpp b/src/interface/desktop/DesktopScenery.cpp deleted file mode 100644 index c64ce5b..0000000 --- a/src/interface/desktop/DesktopScenery.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include "DesktopScenery.h" - -#include "common/mainwindow.h" - -static DesktopScenery _main_scenery; - -void DesktopScenery::save(PackStream *stream) const -{ - Scenery::save(stream); - - MainWindow::instance()->guiSave(stream); -} - -void DesktopScenery::load(PackStream *stream) -{ - Scenery::load(stream); - - MainWindow::instance()->guiLoad(stream); -} - -DesktopScenery* DesktopScenery::getCurrent() -{ - return &_main_scenery; -} diff --git a/src/interface/desktop/DesktopScenery.h b/src/interface/desktop/DesktopScenery.h deleted file mode 100644 index 850345c..0000000 --- a/src/interface/desktop/DesktopScenery.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef DESKTOPSCENERY_H -#define DESKTOPSCENERY_H - -#include "desktop_global.h" - -#include "Scenery.h" - -class DesktopScenery: public Scenery -{ -public: - virtual void save(PackStream* stream) const override; - virtual void load(PackStream* stream) override; - - static DesktopScenery* getCurrent(); -}; - -#endif // DESKTOPSCENERY_H diff --git a/src/interface/desktop/WidgetCanvas.cpp b/src/interface/desktop/WidgetCanvas.cpp deleted file mode 100644 index a1a84b5..0000000 --- a/src/interface/desktop/WidgetCanvas.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include "WidgetCanvas.h" - -WidgetCanvas::WidgetCanvas(QWidget *parent) : - QWidget(parent) -{ -} diff --git a/src/interface/desktop/WidgetCanvas.h b/src/interface/desktop/WidgetCanvas.h deleted file mode 100644 index ad74ae3..0000000 --- a/src/interface/desktop/WidgetCanvas.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef WIDGETCANVAS_H -#define WIDGETCANVAS_H - -#include "desktop_global.h" - -#include - -namespace paysages { -namespace desktop { - -/*! - * \brief Widget to display the full content of a Canvas. - */ -class WidgetCanvas : public QWidget -{ - Q_OBJECT -public: - explicit WidgetCanvas(QWidget *parent = 0); - -signals: - -public slots: - -}; - -} -} - -#endif // WIDGETCANVAS_H diff --git a/src/interface/desktop/WidgetPreviewCanvas.cpp b/src/interface/desktop/WidgetPreviewCanvas.cpp deleted file mode 100644 index f52e72c..0000000 --- a/src/interface/desktop/WidgetPreviewCanvas.cpp +++ /dev/null @@ -1,77 +0,0 @@ -#include "WidgetPreviewCanvas.h" - -#include "tools.h" -#include "Canvas.h" -#include "CanvasPreview.h" - -#include - -WidgetPreviewCanvas::WidgetPreviewCanvas(QWidget *parent) : - QWidget(parent), canvas(NULL) -{ - pixbuf = new QImage(); - - startTimer(500); -} - -WidgetPreviewCanvas::~WidgetPreviewCanvas() -{ - delete pixbuf; -} - -void WidgetPreviewCanvas::setCanvas(const Canvas *canvas) -{ - if (not this->canvas) - { - this->canvas = canvas; - canvas->getPreview()->initLive(this); - } -} - -void WidgetPreviewCanvas::setToneMapping(const ColorProfile &profile) -{ - if (canvas) - { - canvas->getPreview()->setToneMapping(profile); - canvas->getPreview()->updateLive(this); - update(); - } -} - -void WidgetPreviewCanvas::paintEvent(QPaintEvent *) -{ - QPainter painter(this); - painter.drawImage(0, 0, *pixbuf); -} - -void WidgetPreviewCanvas::canvasResized(int width, int height) -{ - if (QSize(width, height) != this->size()) - { - setMaximumSize(width, height); - setMinimumSize(width, height); - resize(width, height); - - delete pixbuf; - pixbuf = new QImage(width, height, QImage::Format_ARGB32); - } -} - -void WidgetPreviewCanvas::canvasCleared(const Color &col) -{ - pixbuf->fill(colorToQColor(col)); -} - -void WidgetPreviewCanvas::canvasPainted(int x, int y, const Color &col) -{ - pixbuf->setPixel(x, pixbuf->height() - 1 - y, colorToQColor(col).rgb()); -} - -void WidgetPreviewCanvas::timerEvent(QTimerEvent *) -{ - if (canvas) - { - canvas->getPreview()->updateLive(this); - update(); - } -} diff --git a/src/interface/desktop/WidgetPreviewCanvas.h b/src/interface/desktop/WidgetPreviewCanvas.h deleted file mode 100644 index 3933d55..0000000 --- a/src/interface/desktop/WidgetPreviewCanvas.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef WIDGETPREVIEWCANVAS_H -#define WIDGETPREVIEWCANVAS_H - -#include "desktop_global.h" - -#include -#include "CanvasLiveClient.h" - -namespace paysages { -namespace desktop { - -/** - * Widget to display a live-updated preview of a Canvas software rendering. - */ -class WidgetPreviewCanvas : public QWidget, public CanvasLiveClient -{ - Q_OBJECT -public: - explicit WidgetPreviewCanvas(QWidget *parent = 0); - virtual ~WidgetPreviewCanvas(); - - /** - * Set the canvas to watch and display, null to stop watching. - * - * This function must be called from the graphics thread. - */ - void setCanvas(const Canvas *canvas); - - /** - * Set the tone mapping to apply to pixel colors. - */ - void setToneMapping(const ColorProfile &profile); - - virtual void paintEvent(QPaintEvent* event); - -protected: - virtual void canvasResized(int width, int height); - virtual void canvasCleared(const Color &col); - virtual void canvasPainted(int x, int y, const Color &col); - virtual void timerEvent(QTimerEvent *event); - -private: - QImage* pixbuf; - const Canvas *canvas; -}; - -} -} - -#endif // WIDGETPREVIEWCANVAS_H diff --git a/src/interface/desktop/baseform.cpp b/src/interface/desktop/baseform.cpp deleted file mode 100644 index 5b8faf4..0000000 --- a/src/interface/desktop/baseform.cpp +++ /dev/null @@ -1,532 +0,0 @@ -#include "baseform.h" - -#include "inputdouble.h" -#include "inputint.h" -#include "inputboolean.h" -#include "inputcolor.h" -#include "inputnoise.h" -#include "inputcurve.h" -#include "inputmaterial.h" -#include "inputenum.h" -#include "inputlayers.h" -#include "BasePreview.h" - -#include -#include -#include -#include -#include -#include -#include - -BaseForm::BaseForm(QWidget* parent, bool auto_apply, bool with_layers) : QWidget(parent) -{ - QWidget* control; - QWidget* layers; - QLabel* label; - - this->_auto_apply = auto_apply; - this->_with_layers = with_layers; - - setLayout(new QHBoxLayout()); - - control = new QWidget(this); - control->setLayout(new QVBoxLayout()); - control->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); - layout()->addWidget(control); - - _layer_count = 0; - - if (with_layers) - { - layers = new QWidget(this); - layers->setLayout(new QHBoxLayout()); - layers->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); - - label = new QLabel(tr("Layers : "), layers); - label->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - layers->layout()->addWidget(label); - - _layer_list = new QComboBox(layers); - layers->layout()->addWidget(_layer_list); - QObject::connect(_layer_list, SIGNAL(currentIndexChanged(int)), this, SLOT(layerListChanged())); - - _layer_new = new QPushButton(QIcon(getDataPath("images/layer_add.png")), "", layers); - _layer_new->setToolTip(tr("Add layer")); - _layer_new->setMaximumSize(30, 30); - layers->layout()->addWidget(_layer_new); - QObject::connect(_layer_new, SIGNAL(clicked()), this, SLOT(layerAddClicked())); - - _layer_del = new QPushButton(QIcon(getDataPath("images/layer_del.png")), "", layers); - _layer_del->setToolTip(tr("Delete layer")); - _layer_del->setMaximumSize(30, 30); - layers->layout()->addWidget(_layer_del); - QObject::connect(_layer_del, SIGNAL(clicked()), this, SLOT(layerDelClicked())); - - _layer_rename = new QPushButton(QIcon(getDataPath("images/layer_rename.png")), "", layers); - _layer_rename->setToolTip(tr("Rename layer")); - _layer_rename->setMaximumSize(30, 30); - layers->layout()->addWidget(_layer_rename); - QObject::connect(_layer_rename, SIGNAL(clicked()), this, SLOT(layerRenameClicked())); - - _layer_up = new QPushButton(QIcon(getDataPath("images/layer_up.png")), "", layers); - _layer_up->setToolTip(tr("Move layer upward")); - _layer_up->setMaximumSize(30, 30); - layers->layout()->addWidget(_layer_up); - QObject::connect(_layer_up, SIGNAL(clicked()), this, SLOT(layerUpClicked())); - - _layer_down = new QPushButton(QIcon(getDataPath("images/layer_down.png")), "", layers); - _layer_down->setToolTip(tr("Move layer downward")); - _layer_down->setMaximumSize(30, 30); - layers->layout()->addWidget(_layer_down); - QObject::connect(_layer_down, SIGNAL(clicked()), this, SLOT(layerDownClicked())); - - control->layout()->addWidget(layers); - control->layout()->setAlignment(_buttons, Qt::AlignTop); - } - - _previews = new QWidget(this); - _previews->setLayout(new QVBoxLayout()); - _previews->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - layout()->addWidget(_previews); - layout()->setAlignment(_previews, Qt::AlignTop); - - _form = new QWidget(this); - _form->setLayout(new QHBoxLayout()); - control->layout()->addWidget(_form); - control->layout()->setAlignment(_form, Qt::AlignTop); - - _form_labels = new QWidget(_form); - _form_labels->setLayout(new QVBoxLayout()); - _form->layout()->addWidget(_form_labels); - - _form_previews = new QWidget(_form); - _form_previews->setLayout(new QVBoxLayout()); - _form->layout()->addWidget(_form_previews); - - _form_controls = new QWidget(_form); - _form_controls->setLayout(new QVBoxLayout()); - _form->layout()->addWidget(_form_controls); - - _buttons = new QWidget(this); - _buttons->setLayout(new QHBoxLayout()); - control->layout()->addWidget(_buttons); - control->layout()->setAlignment(_buttons, Qt::AlignBottom); - - _button_revert = addButton(tr("Revert")); - _button_revert->setIcon(QIcon(getDataPath("images/cancel.png"))); - _button_revert->setEnabled(false); - connect(_button_revert, SIGNAL(clicked()), this, SLOT(revertConfig())); - _button_apply = addButton(tr("Apply")); - _button_apply->setIcon(QIcon(getDataPath("images/apply.png"))); - _button_apply->setEnabled(false); - connect(_button_apply, SIGNAL(clicked()), this, SLOT(applyConfig())); - _button_preset = addButton(tr("Load preset")); - _button_preset->setIcon(QIcon(getDataPath("images/auto.png"))); - _button_preset->hide(); - connect(_button_preset, SIGNAL(clicked()), this, SLOT(presetChoiceClicked())); - - _auto_update_previews = true; - - if (auto_apply) - { - hideButtons(); - } -} - -void BaseForm::hideButtons() -{ - _button_apply->hide(); - _button_revert->hide(); -} - -void BaseForm::savePack(PackStream* stream) -{ - // Save previews status - for (int i = 0; i < _previews_list.size(); i++) - { - _previews_list[i]->savePack(stream); - } -} - -void BaseForm::loadPack(PackStream* stream) -{ - // Load previews status - for (int i = 0; i < _previews_list.size(); i++) - { - _previews_list[i]->loadPack(stream); - } -} - -void BaseForm::configChangeEvent() -{ - if (_auto_apply) - { - applyConfig(); - } - else - { - _button_apply->setEnabled(true); - _button_revert->setEnabled(true); - } - - for (int i = 0; i < _inputs_list.size(); i++) - { - if (_with_layers && _layer_list->count() == 0) - { - _inputs_list[i]->checkVisibility(false); - } - else - { - _inputs_list[i]->checkVisibility(true); - } - } - - if (_auto_update_previews) - { - updatePreviews(); - } -} - -void BaseForm::autoPresetSelected(int) -{ - for (int i = 0; i < _inputs_list.size(); i++) - { - _inputs_list[i]->revert(); - } - updatePreviews(); - configChangeEvent(); -} - -void BaseForm::revertConfig() -{ - for (int i = 0; i < _inputs_list.size(); i++) - { - _inputs_list[i]->revert(); - } - - if (_with_layers) - { - rebuildLayerList(); - if (_layer_list->currentIndex() < 0 && _layer_list->count() > 0) - { - _layer_list->setCurrentIndex(0); - } - } - - for (int i = 0; i < _inputs_list.size(); i++) - { - if (_with_layers && _layer_list->count() == 0) - { - _inputs_list[i]->checkVisibility(false); - } - else - { - _inputs_list[i]->checkVisibility(true); - } - } - - updatePreviews(); - //configChangeEvent(); - - _button_apply->setEnabled(false); - _button_revert->setEnabled(false); -} - -void BaseForm::applyConfig() -{ - _button_apply->setEnabled(false); - _button_revert->setEnabled(false); - - emit(configApplied()); -} - -void BaseForm::rebuildLayerList() -{ - if (_with_layers) - { - int selected = _layer_list->currentIndex(); - _layer_list->clear(); - - _layer_names = getLayers(); - _layer_count = _layer_names.count(); - - for (int i = 0; i < _layer_count; i++) - { - _layer_list->addItem(QString(tr("Layer %1 - %2")).arg(i + 1).arg(_layer_names[i])); - } - if (selected >= 0) - { - if (selected >= _layer_count) - { - _layer_list->setCurrentIndex(_layer_count - 1); - } - else - { - _layer_list->setCurrentIndex(selected); - } - } - } -} - -void BaseForm::layerAddClicked() -{ - layerAddedEvent(); - - rebuildLayerList(); - _layer_list->setCurrentIndex(_layer_list->count() - 1); - - _button_apply->setEnabled(true); - _button_revert->setEnabled(true); -} - -void BaseForm::layerDelClicked() -{ - if (_layer_list->currentIndex() >= 0) - { - layerDeletedEvent(_layer_list->currentIndex()); - - rebuildLayerList(); - - _button_apply->setEnabled(true); - _button_revert->setEnabled(true); - } -} - -void BaseForm::layerUpClicked() -{ - if (_layer_list->currentIndex() < _layer_count - 1) - { - layerMovedEvent(_layer_list->currentIndex(), _layer_list->currentIndex() + 1); - - rebuildLayerList(); - - _layer_list->setCurrentIndex(_layer_list->currentIndex() + 1); - - _button_apply->setEnabled(true); - _button_revert->setEnabled(true); - } -} - -void BaseForm::layerDownClicked() -{ - if (_layer_list->currentIndex() > 0) - { - layerMovedEvent(_layer_list->currentIndex(), _layer_list->currentIndex() - 1); - - rebuildLayerList(); - - _layer_list->setCurrentIndex(_layer_list->currentIndex() - 1); - - _button_apply->setEnabled(true); - _button_revert->setEnabled(true); - } -} - -void BaseForm::layerRenameClicked() -{ - int layer = _layer_list->currentIndex(); - if (layer >= 0) - { - QString new_name = QInputDialog::getText(this, tr("Rename layer"), tr("New name: "), QLineEdit::Normal, _layer_names[layer]); - if (not new_name.isEmpty()) - { - layerRenamedEvent(layer, new_name); - - _button_apply->setEnabled(true); - _button_revert->setEnabled(true); - } - } -} - -void BaseForm::layerListChanged() -{ - bool changed = _button_apply->isEnabled(); - - layerSelectedEvent(_layer_list->currentIndex()); - - _button_apply->setEnabled(changed); - _button_revert->setEnabled(changed); -} - -void BaseForm::presetChoiceClicked() -{ - bool ok; - QString item = QInputDialog::getItem(this, tr("Choose a preset"), tr("Preset settings : "), _preset_list, 0, false, &ok); - - if (ok && !item.isEmpty()) - { - int preset = _preset_list.indexOf(item); - if (preset >= 0) - { - autoPresetSelected(preset); - } - } -} - -void BaseForm::addPreview(BasePreview* preview, QString label) -{ - QLabel* label_widget; - - label_widget = new QLabel(label, _previews); - label_widget->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); - - _previews->layout()->addWidget(label_widget); - _previews->layout()->addWidget(preview); - - preview->setMinimumSize(256, 256); - preview->setMaximumSize(256, 256); - preview->resize(256, 256); - - _previews_list.append(preview); -} - -QPushButton* BaseForm::addButton(QString label) -{ - QPushButton* button = new QPushButton(label); - _buttons->layout()->addWidget(button); - return button; -} - -void BaseForm::addAutoPreset(QString label) -{ - _preset_list.append(label); - _button_preset->show(); -} - -BaseInput* BaseForm::addInput(BaseInput* input) -{ - int row_height = 30; - - _form_labels->layout()->addWidget(input->label()); - _form_previews->layout()->addWidget(input->preview()); - _form_controls->layout()->addWidget(input->control()); - - input->label()->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed); - input->label()->setMinimumSize(150, row_height); - input->label()->setMaximumSize(250, row_height); - - input->preview()->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - input->preview()->setMinimumSize(100, row_height); - input->preview()->setMaximumSize(250, row_height); - - input->control()->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); - input->control()->setMinimumSize(280, row_height); - input->control()->setMaximumSize(700, row_height); - - connect(input, SIGNAL(valueChanged()), this, SLOT(configChangeEvent())); - - _inputs_list.append(input); - input->revert(); - - return input; -} - -BaseInput* BaseForm::addInputInt(QString label, int* value, int min, int max, int small_step, int large_step) -{ - return addInput(new InputInt(_form, label, value, min, max, small_step, large_step)); -} - -BaseInput* BaseForm::addInputDouble(QString label, double* value, double min, double max, double small_step, double large_step) -{ - return addInput(new InputDouble(_form, label, value, min, max, small_step, large_step)); -} - -BaseInput* BaseForm::addInputBoolean(QString label, int* value) -{ - return addInput(new InputBoolean(_form, label, value)); -} - -BaseInput* BaseForm::addInputColor(QString label, Color* value) -{ - return addInput(new InputColor(_form, label, value)); -} - -BaseInput* BaseForm::addInputNoise(QString label, NoiseGenerator* value) -{ - return addInput(new InputNoise(_form, label, value)); -} - -BaseInput* BaseForm::addInputCurve(QString label, Curve* value, double xmin, double xmax, double ymin, double ymax, QString xlabel, QString ylabel) -{ - return addInput(new InputCurve(_form, label, value, xmin, xmax, ymin, ymax, xlabel, ylabel)); -} - -BaseInput* BaseForm::addInputMaterial(QString label, SurfaceMaterial* material) -{ - return addInput(new InputMaterial(_form, label, material)); -} - -BaseInput* BaseForm::addInputEnum(QString label, int* value, const QStringList& values) -{ - return addInput(new InputEnum(_form, label, value, values)); -} - -void BaseForm::updatePreviews() -{ - for (int i = 0; i < _previews_list.size(); i++) - { - _previews_list[i]->redraw(); - } -} - -void BaseForm::disablePreviewsUpdate() -{ - _auto_update_previews = false; -} - -int BaseForm::currentLayer() -{ - if (_with_layers) - { - return _layer_list->currentIndex(); - } - else - { - return -1; - } -} - -QStringList BaseForm::getLayers() -{ - return QStringList(); -} - -void BaseForm::layerAddedEvent() -{ - rebuildLayerList(); -} - -void BaseForm::layerDeletedEvent(int) -{ - rebuildLayerList(); -} - -void BaseForm::layerMovedEvent(int, int) -{ - rebuildLayerList(); -} - -void BaseForm::layerRenamedEvent(int, QString) -{ - rebuildLayerList(); -} - -void BaseForm::layerSelectedEvent(int layer) -{ - for (int i = 0; i < _inputs_list.size(); i++) - { - _inputs_list[i]->revert(); - _inputs_list[i]->checkVisibility(layer >= 0); - } - - for (int i = 0; i < _previews_list.size(); i++) - { - _previews_list[i]->redraw(); - } - - _layer_del->setEnabled(layer >= 0); - _layer_rename->setEnabled(layer >= 0); - _layer_down->setEnabled(layer > 0); - _layer_up->setEnabled(layer >= 0 and layer < _layer_count - 1); -} diff --git a/src/interface/desktop/baseform.h b/src/interface/desktop/baseform.h deleted file mode 100644 index 78537ce..0000000 --- a/src/interface/desktop/baseform.h +++ /dev/null @@ -1,106 +0,0 @@ -#ifndef _PAYSAGES_QT_BASEFORM_H_ -#define _PAYSAGES_QT_BASEFORM_H_ - -#include "desktop_global.h" - -#include -#include - -class QPushButton; -class QComboBox; -class ColorGradation; - -namespace paysages { -namespace desktop { - -class BaseForm : public QWidget -{ - Q_OBJECT - -public: - BaseForm(QWidget* parent, bool auto_apply = false, bool with_layers = false); - void hideButtons(); - virtual void savePack(PackStream* stream); - virtual void loadPack(PackStream* stream); - -signals: - void configApplied(); - -public slots: - virtual void revertConfig(); - virtual void applyConfig(); - -protected slots: - virtual void configChangeEvent(); - virtual void autoPresetSelected(int preset); - -private slots: - void rebuildLayerList(); - void layerAddClicked(); - void layerDelClicked(); - void layerUpClicked(); - void layerDownClicked(); - void layerRenameClicked(); - void layerListChanged(); - void presetChoiceClicked(); - -protected: - void addPreview(BasePreview* preview, QString label); - QPushButton* addButton(QString label); - void addAutoPreset(QString label); - BaseInput* addInput(BaseInput* input); - BaseInput* addInputInt(QString label, int* value, int min, int max, int small_step, int large_step); - BaseInput* addInputDouble(QString label, double* value, double min, double max, double small_step, double large_step); - BaseInput* addInputBoolean(QString label, int* value); - BaseInput* addInputColor(QString label, Color* value); - BaseInput* addInputNoise(QString label, NoiseGenerator* value); - BaseInput* addInputCurve(QString label, Curve* value, double xmin, double xmax, double ymin, double ymax, QString xlabel, QString ylabel); - BaseInput* addInputMaterial(QString label, SurfaceMaterial* material); - BaseInput* addInputEnum(QString label, int* value, const QStringList& values); - - void updatePreviews(); - void disablePreviewsUpdate(); - - int currentLayer(); - virtual QStringList getLayers(); - - virtual void layerAddedEvent(); - virtual void layerDeletedEvent(int layer); - virtual void layerMovedEvent(int layer, int new_position); - virtual void layerRenamedEvent(int layer, QString new_name); - virtual void layerSelectedEvent(int layer); - -private: - bool _auto_apply; - QWidget* _form; - QWidget* _form_labels; - QWidget* _form_previews; - QWidget* _form_controls; - QWidget* _buttons; - QPushButton* _button_apply; - QPushButton* _button_revert; - QPushButton* _button_preset; - - QWidget* _previews; - QVector _previews_list; - bool _auto_update_previews; - - QVector _inputs_list; - - QStringList _preset_list; - - bool _with_layers; - QComboBox* _layer_list; - int _layer_count; - QStringList _layer_names; - QPushButton* _layer_new; - QPushButton* _layer_del; - QPushButton* _layer_up; - QPushButton* _layer_down; - QPushButton* _layer_rename; -}; - -} -} - -#endif diff --git a/src/interface/desktop/baseformlayer.cpp b/src/interface/desktop/baseformlayer.cpp deleted file mode 100644 index f188fa4..0000000 --- a/src/interface/desktop/baseformlayer.cpp +++ /dev/null @@ -1,145 +0,0 @@ -#include "baseformlayer.h" - -#include -#include "Layers.h" - -BaseFormLayer::BaseFormLayer(QWidget* parent, Layers* layers) : BaseForm(parent, false, true) -{ - _layers_original = NULL; - _layers_modified = NULL; - if (layers) - { - _layers_original = layers; - _layers_modified = _layers_original->newCopy(); - } -} - -BaseFormLayer::~BaseFormLayer() -{ - if (_layers_modified) - { - delete _layers_modified; - } -} - -void BaseFormLayer::revertConfig() -{ - if (_layers_original && _layers_modified) - { - _layers_original->copy(_layers_modified); - layerSelectedEvent(currentLayer()); - } - - BaseForm::revertConfig(); -} - -void BaseFormLayer::applyConfig() -{ - if (_layers_original && _layers_modified) - { - _layers_modified->copy(_layers_original); - } - - BaseForm::applyConfig(); -} - -void BaseFormLayer::setLayers(Layers* layers) -{ - _layers_original = layers; - if (_layers_modified) - { - delete _layers_modified; - } - _layers_modified = _layers_original->newCopy(); - revertConfig(); -} - -void BaseFormLayer::afterLayerAdded(void*) -{ -} - -void BaseFormLayer::configChangeEvent() -{ - if (_layers_modified) - { - layerWriteCurrentTo(_layers_modified->getLayer(currentLayer())); - _layers_modified->validate(); - } - - BaseForm::configChangeEvent(); -} - -QStringList BaseFormLayer::getLayers() -{ - QStringList result; - - if (_layers_modified) - { - for (int i = 0; i < _layers_modified->count(); i++) - { - result << QString::fromStdString(_layers_modified->getLayer(i)->getName()); - } - } - - return result; -} - -void BaseFormLayer::layerAddedEvent() -{ - if (_layers_modified) - { - QString layer_name = QInputDialog::getText(this, tr("Create layer"), tr("Layer name :"), QLineEdit::Normal, tr("Unnamed layer")); - if (not layer_name.isEmpty()) - { - int layer = _layers_modified->addLayer(); - if (layer >= 0) - { - _layers_modified->getLayer(layer)->setName(layer_name.toStdString()); - - BaseForm::layerAddedEvent(); - - afterLayerAdded(_layers_modified->getLayer(layer)); - } - } - } -} - -void BaseFormLayer::layerDeletedEvent(int layer) -{ - if (_layers_modified) - { - _layers_modified->removeLayer(layer); - } - - BaseForm::layerDeletedEvent(layer); -} - -void BaseFormLayer::layerMovedEvent(int layer, int new_position) -{ - if (_layers_modified) - { - _layers_modified->moveLayer(layer, new_position); - } - - BaseForm::layerMovedEvent(layer, new_position); -} - -void BaseFormLayer::layerRenamedEvent(int layer, QString new_name) -{ - if (_layers_modified) - { - _layers_modified->getLayer(layer)->setName(new_name.toStdString()); - } - - BaseForm::layerRenamedEvent(layer, new_name); -} - -void BaseFormLayer::layerSelectedEvent(int layer) -{ - if (_layers_modified && layer >= 0) - { - layerReadCurrentFrom(_layers_modified->getLayer(layer)); - } - - BaseForm::layerSelectedEvent(layer); -} diff --git a/src/interface/desktop/baseformlayer.h b/src/interface/desktop/baseformlayer.h deleted file mode 100644 index f89ece5..0000000 --- a/src/interface/desktop/baseformlayer.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef _PAYSAGES_QT_BASEFORMLAYER_H_ -#define _PAYSAGES_QT_BASEFORMLAYER_H_ - -/* Base form, with automatic layer control */ - -#include "baseform.h" -#include "Layers.h" - -class BaseFormLayer:public BaseForm -{ - Q_OBJECT - -public: - BaseFormLayer(QWidget* parent, Layers* layers=NULL); - ~BaseFormLayer(); - -public slots: - virtual void revertConfig(); - virtual void applyConfig(); - -protected: - void setLayers(Layers* layers); - virtual void layerReadCurrentFrom(void* layer_definition) = 0; - virtual void layerWriteCurrentTo(void* layer_definition) = 0; - virtual void afterLayerAdded(void* layer_definition); - -private: - virtual QStringList getLayers(); - virtual void layerAddedEvent(); - virtual void layerDeletedEvent(int layer); - virtual void layerMovedEvent(int layer, int new_position); - virtual void layerRenamedEvent(int layer, QString new_name); - virtual void layerSelectedEvent(int layer); - -protected slots: - virtual void configChangeEvent(); - -private: - Layers* _layers_original; - Layers* _layers_modified; -}; - -#endif diff --git a/src/interface/desktop/baseinput.cpp b/src/interface/desktop/baseinput.cpp deleted file mode 100644 index c7f7fd8..0000000 --- a/src/interface/desktop/baseinput.cpp +++ /dev/null @@ -1,93 +0,0 @@ -#include "baseinput.h" - -#include -#include - -BaseInput::BaseInput(QWidget* form, QString label): - QObject(form) -{ - _label = new QLabel(label); - - _label->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - _label->setWordWrap(true); - - _visibility_value = NULL; - _enabled_value = NULL; - - _visible = true; - _enabled = true; -} - -void BaseInput::setVisibilityCondition(int* value, int condition) -{ - _visibility_value = value; - _visibility_condition = condition; -} - -void BaseInput::setEnabledCondition(int* value, int condition) -{ - _enabled_value = value; - _enabled_condition = condition; -} - -void BaseInput::updatePreview() -{ -} - -void BaseInput::applyValue() -{ - updatePreview(); - emit(valueChanged()); -} - -void BaseInput::revert() -{ - updatePreview(); -} - -void BaseInput::checkVisibility(bool enabled) -{ - if (!_visibility_value || *_visibility_value == _visibility_condition) - { - if (not _visible) - { - _visible = true; - - _label->show(); - _preview->show(); - _control->show(); - } - } - else - { - if (_visible) - { - _visible = false; - - _label->hide(); - _preview->hide(); - _control->hide(); - } - } - - if (enabled && (!_enabled_value || *_enabled_value == _enabled_condition)) - { - if (not _enabled) - { - _enabled = true; - - _preview->setEnabled(true); - _control->setEnabled(true); - } - } - else - { - if (_enabled) - { - _enabled = false; - - _preview->setEnabled(false); - _control->setEnabled(false); - } - } -} diff --git a/src/interface/desktop/baseinput.h b/src/interface/desktop/baseinput.h deleted file mode 100644 index c107f83..0000000 --- a/src/interface/desktop/baseinput.h +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef _PAYSAGES_QT_BASEINPUT_H_ -#define _PAYSAGES_QT_BASEINPUT_H_ - -#include "desktop_global.h" - -#include -class QWidget; -class QLabel; - -namespace paysages { -namespace desktop { - -class BaseInput:public QObject -{ - Q_OBJECT - -public: - BaseInput(QWidget* form, QString label); - inline QLabel* label() {return _label;} - inline QWidget* preview() {return _preview;} - inline QWidget* control() {return _control;} - void setVisibilityCondition(int* value, int condition); - void setEnabledCondition(int* value, int condition); - -public slots: - virtual void updatePreview(); - virtual void revert(); - virtual void applyValue(); - void checkVisibility(bool enabled); - -signals: - void valueChanged(); - -protected: - QLabel* _label; - QWidget* _preview; - QWidget* _control; - int* _visibility_value; - int _visibility_condition; - int* _enabled_value; - int _enabled_condition; - bool _visible; - bool _enabled; -}; - -} -} - -#endif diff --git a/src/interface/desktop/common/freeformhelper.cpp b/src/interface/desktop/common/freeformhelper.cpp deleted file mode 100644 index aee47fa..0000000 --- a/src/interface/desktop/common/freeformhelper.cpp +++ /dev/null @@ -1,294 +0,0 @@ -#include "freeformhelper.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "mainwindow.h" -#include "dialogrender.h" -#include "dialogexplorer.h" -#include "RenderConfig.h" -#include "DesktopScenery.h" -#include "BasePreview.h" -#include "SoftwareCanvasRenderer.h" -#include "CameraDefinition.h" -#include "tools.h" - -Q_DECLARE_METATYPE(double*) - -FreeFormHelper::FreeFormHelper(QWidget* form_widget) - :QObject() -{ - _form_widget = form_widget; - _data_changed = false; - - _button_apply = NULL; - _button_revert = NULL; - _button_presets = NULL; -} - -FreeFormHelper::~FreeFormHelper() -{ -} - -bool FreeFormHelper::eventFilter(QObject* object, QEvent* event) -{ - if (event->type() == QEvent::Resize && object == _form_widget) - { - QSize form_size = ((QResizeEvent*) event)->size(); - QSize preview_size; - - if (form_size.width() > 1400 && form_size.height() > 900) - { - preview_size = QSize(320, 320); - } - else if (form_size.width() < 1100 || form_size.height() < 750) - { - preview_size = QSize(200, 200); - } - else - { - preview_size = QSize(260, 260); - } - - for (int i = 0; i < _previews.size(); i++) - { - if (_previews[i]->size() != preview_size) - { - _previews[i]->setMinimumSize(preview_size); - _previews[i]->setMaximumSize(preview_size); - _previews[i]->resize(preview_size); - } - } - } - return false; -} - -void FreeFormHelper::startManaging() -{ - _form_widget->installEventFilter(this); - connect(MainWindow::instance(), SIGNAL(refreshed()), this, SLOT(processGlobalRefresh())); - - connect(this, SIGNAL(needLocalRefreshing()), _form_widget, SLOT(refreshFromLocalData())); - connect(this, SIGNAL(needGlobalRefreshing()), _form_widget, SLOT(refreshFromFellowData())); - connect(this, SIGNAL(needReverting()), _form_widget, SLOT(updateLocalDataFromScenery())); - connect(this, SIGNAL(needCommitting()), _form_widget, SLOT(commitLocalDataToScenery())); - connect(this, SIGNAL(needAlterRenderer(SoftwareRenderer*)), _form_widget, SLOT(alterRenderer(SoftwareRenderer*))); - - processGlobalRefresh(); -} - -void FreeFormHelper::addPreview(BasePreview* preview, Base2dPreviewRenderer* renderer) -{ - _previews.append(preview); - preview->setRenderer(renderer); -} - -void FreeFormHelper::addDoubleInputSlider(WidgetSliderDecimal* slider, double* value, double min, double max, double small_step, double large_step) -{ - _inputs_decimal.append(slider); - - slider->setDecimalRange(min, max, small_step, large_step); - slider->setDecimalValue(*value); - - slider->setProperty("data_pointer", QVariant::fromValue(value)); - - connect(slider, SIGNAL(decimalValueChanged(double)), this, SLOT(processDecimalChange(double))); -} - -void FreeFormHelper::setApplyButton(QPushButton* button) -{ - _button_apply = button; - button->setEnabled(_data_changed); - - connect(button, SIGNAL(clicked()), this, SLOT(processApplyClicked())); -} - -void FreeFormHelper::setRevertButton(QPushButton* button) -{ - _button_revert = button; - button->setEnabled(_data_changed); - - connect(button, SIGNAL(clicked()), this, SLOT(processRevertClicked())); -} - -void FreeFormHelper::setExploreButton(QPushButton* button) -{ - _button_explore = button; - - button->setToolTip(tr("Explore the scenery in 3D, with current changes applied")); - - connect(button, SIGNAL(clicked()), this, SLOT(processExploreClicked())); -} - -void FreeFormHelper::setRenderButton(QPushButton* button) -{ - _button_render = button; - - button->setToolTip(tr("Quick render preview, with current changes applied")); - - connect(button, SIGNAL(clicked()), this, SLOT(processRenderClicked())); -} - -void FreeFormHelper::setLabelText(QLabel* label, QString text) -{ - label->setText(text); -} - -void FreeFormHelper::addPreset(const QString& name) -{ - _presets << name; -} - -void FreeFormHelper::setPresetButton(QPushButton* button) -{ - _button_presets = button; - connect(button, SIGNAL(clicked()), this, SLOT(processPresetClicked())); -} - -void FreeFormHelper::openDialog(QDialog* dialog) -{ - if (dialog->exec()) - { - processDataChange(); - } -} - -void FreeFormHelper::gotoMainTab(int position) -{ - MainWindow::instance()->openTab(position); -} - -void FreeFormHelper::processDataChange() -{ - _data_changed = true; - if (_button_apply) - { - _button_apply->setEnabled(true); - } - if (_button_revert) - { - _button_revert->setEnabled(true); - } - - for (int i = 0; i < _previews.size(); i++) - { - _previews[i]->redraw(); - } - - emit needLocalRefreshing(); -} - -void FreeFormHelper::processGlobalRefresh() -{ - emit needGlobalRefreshing(); - - processRevertClicked(); -} - -void FreeFormHelper::processRevertClicked() -{ - emit needReverting(); - - for (int i = 0; i < _previews.size(); i++) - { - _previews[i]->redraw(); - } - - for (int i = 0; i < _inputs_decimal.size(); i++) - { - WidgetSliderDecimal* slider = _inputs_decimal.at(i); - double* pointer = slider->property("data_pointer").value(); - - if (pointer) - { - slider->setDecimalValue(*pointer); - } - } - - _data_changed = false; - if (_button_apply) - { - _button_apply->setEnabled(false); - } - if (_button_revert) - { - _button_revert->setEnabled(false); - } - - emit needLocalRefreshing(); -} - -void FreeFormHelper::processApplyClicked() -{ - emit needCommitting(); - - MainWindow::instance()->refreshAll(); -} - -void FreeFormHelper::processExploreClicked() -{ - SoftwareRenderer renderer(DesktopScenery::getCurrent()); - - emit needAlterRenderer(&renderer); - - CameraDefinition camera; - DesktopScenery::getCurrent()->getCamera(&camera); - - DialogExplorer* dialog = new DialogExplorer(_form_widget, &camera, false, renderer.getScenery()); - dialog->exec(); - delete dialog; -} - -void FreeFormHelper::processRenderClicked() -{ - RenderConfig params(400, 300, 1, 3); - - SoftwareCanvasRenderer renderer; - renderer.setConfig(params); - renderer.setScenery(DesktopScenery::getCurrent()); - - emit needAlterRenderer(&renderer); - - DialogRender dialog(_form_widget, &renderer); - dialog.startRender(); -} - -void FreeFormHelper::processDecimalChange(double value) -{ - QObject* signal_sender = sender(); - - if (signal_sender && signal_sender->inherits("WidgetSliderDecimal")) - { - WidgetSliderDecimal* slider = (WidgetSliderDecimal*)signal_sender; - double* pointer = slider->property("data_pointer").value(); - - if (pointer) - { - *pointer = value; - } - - processDataChange(); - } -} - -void FreeFormHelper::processPresetClicked() -{ - bool ok; - QString item = QInputDialog::getItem(_form_widget, tr("Choose a preset"), tr("Preset settings : "), _presets, 0, false, &ok); - - if (ok && !item.isEmpty()) - { - int preset = _presets.indexOf(item); - if (preset >= 0) - { - emit presetSelected(preset); - processDataChange(); - } - } -} diff --git a/src/interface/desktop/common/freeformhelper.h b/src/interface/desktop/common/freeformhelper.h deleted file mode 100644 index e326156..0000000 --- a/src/interface/desktop/common/freeformhelper.h +++ /dev/null @@ -1,81 +0,0 @@ -#ifndef FREEFORMHELPER_H -#define FREEFORMHELPER_H - -#include "desktop_global.h" - -#include -#include - -#include "widgetsliderdecimal.h" - -class QSlider; -class QPushButton; -class QLabel; - -class FreeFormHelper:public QObject -{ - Q_OBJECT - -public: - FreeFormHelper(QWidget* form_widget); - ~FreeFormHelper(); - - void startManaging(); - - void addPreview(BasePreview* preview, Base2dPreviewRenderer* renderer); - void addDoubleInputSlider(WidgetSliderDecimal* slider, double* value, double min=0.0, double max=1.0, double small_step=0.0, double large_step=0.0); - void setApplyButton(QPushButton* button); - void setRevertButton(QPushButton* button); - void setExploreButton(QPushButton* button); - void setRenderButton(QPushButton* button); - void setLabelText(QLabel* label, QString text); - - void setPresetButton(QPushButton* button); - void addPreset(const QString& name); - - void openDialog(QDialog* dialog); - void gotoMainTab(int position); - -signals: - void revertClicked(); - void applyClicked(); - - void presetSelected(int position); - - void needLocalRefreshing(); - void needGlobalRefreshing(); - void needReverting(); - void needCommitting(); - void needAlterRenderer(SoftwareRenderer* renderer); - -public slots: - void processDataChange(); - void processGlobalRefresh(); - void processRevertClicked(); - void processApplyClicked(); - void processExploreClicked(); - void processRenderClicked(); - void processDecimalChange(double value); - void processPresetClicked(); - -protected: - bool eventFilter(QObject* object, QEvent* event); - -private: - QWidget* _form_widget; - - bool _data_changed; - - QPushButton* _button_presets; - QStringList _presets; - - QVector _previews; - QVector _inputs_decimal; - - QPushButton* _button_apply; - QPushButton* _button_revert; - QPushButton* _button_explore; - QPushButton* _button_render; -}; - -#endif diff --git a/src/interface/desktop/common/freelayerhelper.cpp b/src/interface/desktop/common/freelayerhelper.cpp deleted file mode 100644 index 4d8ccaf..0000000 --- a/src/interface/desktop/common/freelayerhelper.cpp +++ /dev/null @@ -1,158 +0,0 @@ -#include "freelayerhelper.h" - -#include -#include - -FreeLayerHelper::FreeLayerHelper(Layers* layers, bool reverse) -{ - _table = NULL; - _selected = -1; - _layers = layers; - _reverse = reverse; -} - -FreeLayerHelper::~FreeLayerHelper() -{ -} - -void FreeLayerHelper::refreshLayers() -{ - if (_table) - { - int selected = _selected; - - emit tableUpdateNeeded(); - - int n = _layers->count(); - if (n == 0) - { - _selected = -1; - } - - if (selected < 0) - { - _table->clearSelection(); - emit selectionChanged(-1); - } - else - { - if (selected >= n) - { - selected = n - 1; - } - - _table->setCurrentCell(selected, 0); - } - } -} - -void FreeLayerHelper::setLayerTable(QTableWidget* table) -{ - _table = table; - - connect(table, SIGNAL(currentCellChanged(int, int, int, int)), this, SLOT(tableSelectionChanged(int, int))); - - refreshLayers(); -} - -void FreeLayerHelper::setAddButton(QPushButton* button) -{ - connect(button, SIGNAL(clicked()), this, SLOT(addLayer())); -} - -void FreeLayerHelper::setDelButton(QPushButton* button) -{ - connect(button, SIGNAL(clicked()), this, SLOT(deleteLayer())); -} - -void FreeLayerHelper::setDownButton(QPushButton* button) -{ - if (_reverse) - { - connect(button, SIGNAL(clicked()), this, SLOT(moveLayerDown())); - } - else - { - connect(button, SIGNAL(clicked()), this, SLOT(moveLayerUp())); - } -} - -void FreeLayerHelper::setUpButton(QPushButton* button) -{ - if (_reverse) - { - connect(button, SIGNAL(clicked()), this, SLOT(moveLayerUp())); - } - else - { - connect(button, SIGNAL(clicked()), this, SLOT(moveLayerDown())); - } -} - -void FreeLayerHelper::setEditButton(QPushButton* button) -{ - connect(button, SIGNAL(clicked()), this, SLOT(startEditing())); -} - -void FreeLayerHelper::addLayer() -{ - _selected = _layers->addLayer(NULL); - emit(layersChanged()); - refreshLayers(); -} - -void FreeLayerHelper::deleteLayer() -{ - if (_selected >= 0) - { - _layers->removeLayer(_selected); - emit(layersChanged()); - refreshLayers(); - } -} - -void FreeLayerHelper::moveLayerDown() -{ - if (_selected > 0) - { - _layers->moveLayer(_selected, _selected - 1); - _selected--; - emit(layersChanged()); - refreshLayers(); - } -} - -void FreeLayerHelper::moveLayerUp() -{ - if (_selected >= 0 && _selected < _layers->count() - 1) - { - _layers->moveLayer(_selected, _selected + 1); - _selected++; - emit(layersChanged()); - refreshLayers(); - } -} - -void FreeLayerHelper::startEditing() -{ - if (_selected >= 0 && _selected < _layers->count()) - { - emit(editRequired(_selected)); - } -} - -void FreeLayerHelper::tableSelectionChanged(int row, int) -{ - int n = _layers->count(); - - if (n == 0 or row >= n) - { - _selected = -1; - } - else - { - _selected = _reverse ? n - 1 - row : row; - } - - emit(selectionChanged(_selected)); -} diff --git a/src/interface/desktop/common/freelayerhelper.h b/src/interface/desktop/common/freelayerhelper.h deleted file mode 100644 index 0cbec29..0000000 --- a/src/interface/desktop/common/freelayerhelper.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef _EDITING_COMMON_FREELAYERHELPER_H_ -#define _EDITING_COMMON_FREELAYERHELPER_H_ - -#include -#include "Layers.h" - -class QTableWidget; -class QPushButton; - -class FreeLayerHelper : public QObject { - Q_OBJECT - -public: - FreeLayerHelper(Layers* layers, bool reverse=false); - ~FreeLayerHelper(); - - void refreshLayers(); - void setLayerTable(QTableWidget* table); - void setAddButton(QPushButton* button); - void setDelButton(QPushButton* button); - void setDownButton(QPushButton* button); - void setUpButton(QPushButton* button); - void setEditButton(QPushButton* button); - -signals: - void selectionChanged(int layer); - void layersChanged(); - void tableUpdateNeeded(); - void editRequired(int layer); - -public slots: - void addLayer(); - void deleteLayer(); - void moveLayerDown(); - void moveLayerUp(); - void startEditing(); - void tableSelectionChanged(int row, int col); - -private: - QTableWidget* _table; - Layers* _layers; - int _selected; - bool _reverse; -}; - -#endif - diff --git a/src/interface/desktop/common/mainwindow.cpp b/src/interface/desktop/common/mainwindow.cpp deleted file mode 100644 index 3a1873c..0000000 --- a/src/interface/desktop/common/mainwindow.cpp +++ /dev/null @@ -1,286 +0,0 @@ -#include "mainwindow.h" -#include "ui_mainwindow.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "BasePreview.h" -#include "PreviewOsd.h" -#include "PreviewOsdItem.h" -#include "CameraDefinition.h" -#include "formclouds.h" -#include "formatmosphere.h" -#include "formwater.h" -#include "formrender.h" - -#include "terrain/mainterrainform.h" - -#include "dialogrender.h" -#include "dialogexplorer.h" - -#include "DesktopScenery.h" -#include "PackStream.h" -#include "tools.h" - -MainWindow* MainWindow::_instance = NULL; - -int main(int argc, char** argv) -{ - MainWindow* window; - int result; - - QApplication app(argc, argv); - - QTranslator qtTranslator; - QTranslator myTranslator; - - QString i18ndir = QString::fromStdString(DataFile::findDir("i18n")); - if (not i18ndir.isEmpty() and myTranslator.load("paysages_" + QLocale::system().name(), i18ndir)) - { - app.installTranslator(&myTranslator); - - qtTranslator.load("qt_" + QLocale::system().name()); - app.installTranslator(&qtTranslator); - } - else - { - qtTranslator.load("qt_en"); - app.installTranslator(&qtTranslator); - } - - //splash->showMessage(app.tr("Preloading..."), Qt::AlignCenter, Qt::white); - app.processEvents(); - - BasePreview::initDrawers(); - - window = new MainWindow(); - window->show(); - //window->showMaximized(); - - result = app.exec(); - - BasePreview::stopDrawers(); - - delete window; - - return result; -} - -MainWindow::MainWindow() : - QMainWindow(), - ui(new Ui::MainWindow) -{ - _instance = this; - ui->setupUi(this); - - BaseForm* form; - - connect(ui->action_explore, SIGNAL(triggered()), this, SLOT(explore3D())); - connect(ui->action_quick_render, SIGNAL(triggered()), this, SLOT(quickPreview())); - connect(ui->action_final_render, SIGNAL(triggered()), this, SLOT(finalRender())); - connect(ui->action_last_render, SIGNAL(triggered()), this, SLOT(showLastRender())); - connect(ui->action_file_new, SIGNAL(triggered()), this, SLOT(fileNew())); - connect(ui->action_file_save, SIGNAL(triggered()), this, SLOT(fileSave())); - connect(ui->action_file_load, SIGNAL(triggered()), this, SLOT(fileLoad())); - connect(ui->action_about, SIGNAL(triggered()), this, SLOT(showAboutDialog())); - - form = new FormWater(ui->tabs); - ui->tabs->addTab(form, QIcon(getDataPath("images/tab_water.png")), tr("Water")); - QObject::connect(form, SIGNAL(configApplied()), this, SLOT(refreshAll()), Qt::QueuedConnection); - _forms.append(form); - - form = new FormAtmosphere(ui->tabs); - ui->tabs->addTab(form, QIcon(getDataPath("images/tab_atmosphere.png")), tr("Atmosphere")); - QObject::connect(form, SIGNAL(configApplied()), this, SLOT(refreshAll()), Qt::QueuedConnection); - _forms.append(form); - - form = new FormClouds(ui->tabs); - ui->tabs->addTab(form, QIcon(getDataPath("images/tab_clouds.png")), tr("Clouds")); - QObject::connect(form, SIGNAL(configApplied()), this, SLOT(refreshAll()), Qt::QueuedConnection); - _forms.append(form); - - _form_render = new FormRender(ui->tabs); - ui->tabs->addTab(_form_render, QIcon(getDataPath("images/tab_render.png")), tr("Render")); - _forms.append(_form_render); - - ui->tabs->setCurrentIndex(0); - - // TODO Decide this according to platform / screen size - ui->toolBar->hide(); - ui->tool_panel->hide(); - //ui->menuBar->hide(); - - // FIXME AutoPreset has already been called by paysagesInit but we need to redo it here because - // the auto apply on FormRender overwrites the camera. Delete this when the render form is no longer a BaseForm. - DesktopScenery::getCurrent()->autoPreset(0); - refreshAll(); -} - -MainWindow::~MainWindow() -{ - delete ui; -} - -bool MainWindow::event(QEvent* event) -{ - if (event->type() == QEvent::WindowActivate) - { - BasePreview::reviveAll(); - } - - return QMainWindow::event(event); -} - -void MainWindow::refreshAll() -{ - logDebug("[MainWindow] Refreshing whole UI"); - - // Refresh all tabs - for (int i = 0; i < _forms.size(); i++) - { - _forms[i]->revertConfig(); - } - - // Refresh preview OSD - PreviewOsd* osd = PreviewOsd::getInstance(QString("geolocation")); - osd->clearItems(); - PreviewOsdItem* item = osd->newItem(50, 50); - item->drawCamera(DesktopScenery::getCurrent()->getCamera()); - item->setToolTip(QString(tr("Camera"))); - - emit refreshed(); -} - -void MainWindow::openTab(int position) -{ - ui->tabs->setCurrentIndex(position); -} - -void MainWindow::fileNew() -{ - if (QMessageBox::question(this, tr("Paysages 3D - New scenery"), tr("Do you want to start a new scenery ? Any unsaved changes will be lost."), QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::Yes) - { - DesktopScenery::getCurrent()->autoPreset(0); - refreshAll(); - } -} - -void MainWindow::fileSave() -{ - QString filepath = QFileDialog::getSaveFileName(this, tr("Paysages 3D - Choose a file to save the scenery"), QString(), tr("Paysages 3D Scenery (*.p3d)")); - if (!filepath.isNull()) - { - if (!filepath.toLower().endsWith(".p3d")) - { - filepath = filepath.append(".p3d"); - } - - Scenery::FileOperationResult result = DesktopScenery::getCurrent()->saveGlobal(filepath.toStdString()); - switch (result) - { - case Scenery::FILE_OPERATION_OK: - break; - case Scenery::FILE_OPERATION_IOERROR: - QMessageBox::critical(this, tr("Paysages 3D - File saving error"), tr("Can't write specified file : %1").arg(filepath)); - break; - default: - QMessageBox::critical(this, tr("Paysages 3D - File saving error"), tr("Unexpected error while saving file : %1").arg(filepath)); - } - } -} - -void MainWindow::fileLoad() -{ - if (QMessageBox::question(this, tr("Paysages 3D - Load scenery"), tr("Do you want to load a scenery from file ? Any unsaved changes will be lost."), QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::Yes) - { - QString filepath = QFileDialog::getOpenFileName(this, tr("Paysages 3D - Choose a scenery file to load"), QString(), tr("Paysages 3D Scenery (*.p3d)")); - if (!filepath.isNull()) - { - Scenery::FileOperationResult result = DesktopScenery::getCurrent()->loadGlobal(filepath.toStdString()); - switch (result) - { - case Scenery::FILE_OPERATION_OK: - refreshAll(); - break; - case Scenery::FILE_OPERATION_IOERROR: - QMessageBox::critical(this, tr("Paysages 3D - File loading error"), tr("Can't read specified file : %1").arg(filepath)); - break; - case Scenery::FILE_OPERATION_APP_MISMATCH: - QMessageBox::critical(this, tr("Paysages 3D - File loading error"), tr("This file doesn't look like a Paysages 3D file : %1").arg(filepath)); - break; - case Scenery::FILE_OPERATION_VERSION_MISMATCH: - QMessageBox::critical(this, tr("Paysages 3D - File loading error"), tr("This file was created with an incompatible Paysages 3D version : %1").arg(filepath)); - break; - default: - QMessageBox::critical(this, tr("Paysages 3D - File loading error"), tr("Unexpected error while loading file : %1").arg(filepath)); - } - } - } -} - -void MainWindow::showAboutDialog() -{ - QMessageBox::about(this, tr("Paysages 3D"), tr("A 3D landscape editing and rendering software.\n\nAuthors :\nProgramming - Michael Lemaire\n\nCredits :\nQt - http://qt-project.org/\nDevIL - http://openil.sourceforge.net/\nGLib - http://www.gtk.org/\n")); -} - -void MainWindow::quickPreview() -{ - _form_render->startQuickRender(); -} - -void MainWindow::finalRender() -{ - _form_render->startRender(); -} - -void MainWindow::showLastRender() -{ - _form_render->showRender(); -} - -void MainWindow::explore3D() -{ - CameraDefinition* camera = new CameraDefinition; - int result; - - DesktopScenery::getCurrent()->getCamera(camera); - - DialogExplorer* dialog = new DialogExplorer(this, camera, true); - result = dialog->exec(); - - delete dialog; - - if (result == QDialog::Accepted) - { - DesktopScenery::getCurrent()->setCamera(camera); - refreshAll(); - } - - delete camera; -} - -void MainWindow::guiSave(PackStream* stream) -{ - // Save all tabs status - for (int i = 0; i < _forms.size(); i++) - { - _forms[i]->savePack(stream); - } -} - -void MainWindow::guiLoad(PackStream* stream) -{ - // Load all tabs status - for (int i = 0; i < _forms.size(); i++) - { - _forms[i]->loadPack(stream); - } -} diff --git a/src/interface/desktop/common/mainwindow.h b/src/interface/desktop/common/mainwindow.h deleted file mode 100644 index ebe1066..0000000 --- a/src/interface/desktop/common/mainwindow.h +++ /dev/null @@ -1,65 +0,0 @@ -#ifndef MAINWINDOW_H -#define MAINWINDOW_H - -#include "desktop_global.h" - -#include - -#include -class FormRender; - -namespace Ui { -class MainWindow; -} - -class MainWindow; - -class MainWindow : public QMainWindow -{ - Q_OBJECT - -public: - MainWindow(); - ~MainWindow(); - - virtual bool event(QEvent* event); - - void guiSave(PackStream* stream); - void guiLoad(PackStream* stream); - - static inline MainWindow* instance() - { - return _instance; - } - -protected: - -public slots: - void refreshAll(); - - void openTab(int position); - - void fileNew(); - void fileSave(); - void fileLoad(); - - void showAboutDialog(); - - void quickPreview(); - void finalRender(); - void showLastRender(); - - void explore3D(); - -signals: - void refreshed(); - -private: - static MainWindow* _instance; - Ui::MainWindow *ui; - - QVector _forms; - FormRender* _form_render; -}; - -#endif // MAINWINDOW_H diff --git a/src/interface/desktop/common/mainwindow.ui b/src/interface/desktop/common/mainwindow.ui deleted file mode 100644 index 6a676eb..0000000 --- a/src/interface/desktop/common/mainwindow.ui +++ /dev/null @@ -1,585 +0,0 @@ - - - MainWindow - - - - 0 - 0 - 946 - 651 - - - - Paysages 3D - - - - :/logo/images/logo_32.png:/logo/images/logo_32.png - - - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - - - <html><head/><body><p><span style=" font-size:14pt; font-weight:600;">Paysages 3D</span></p><p><img src=":/logo/images/logo_32.png"/></p></body></html> - - - Qt::RichText - - - Qt::AlignCenter - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - Preview - - - true - - - - - - - 3D - - - - - - - Top - - - - - - - - - QFrame::Panel - - - QFrame::Raised - - - 3 - - - - 0 - - - QLayout::SetMinimumSize - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 200 - 150 - - - - - 400 - 300 - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Actions - - - - - - Explore in 3D - - - - :/buttons/logo/images/explore.png:/buttons/logo/images/explore.png - - - F2 - - - - - - - Render - - - - :/buttons/logo/images/render.png:/buttons/logo/images/render.png - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - File - - - - - - New - - - - :/buttons/logo/images/new.png:/buttons/logo/images/new.png - - - - - - - Save - - - - :/buttons/logo/images/save.png:/buttons/logo/images/save.png - - - - - - - Load - - - - :/buttons/logo/images/load.png:/buttons/logo/images/load.png - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - 1 - - - - 32 - 32 - - - - - - :/tabs/images/tab_terrain.png:/tabs/images/tab_terrain.png - - - Lanscape shape - - - - - - :/tabs/images/tab_textures.png:/tabs/images/tab_textures.png - - - Textures - - - - - - - - - toolBar - - - false - - - Qt::LeftToolBarArea - - - - 32 - 32 - - - - Qt::ToolButtonTextUnderIcon - - - false - - - LeftToolBarArea - - - false - - - - - - - - - - - - - - - 0 - 0 - 946 - 20 - - - - - File - - - - - - - - Actions - - - - - - - - - Help - - - - - - - - - - - :/buttons/logo/images/explore.png:/buttons/logo/images/explore.png - - - Explore in 3D - - - Start exploring your scenery in real-time 3D - - - F2 - - - - - - :/buttons/logo/images/new.png:/buttons/logo/images/new.png - - - New scene - - - Create a virgin scene - - - Ctrl+N - - - - - - :/buttons/logo/images/load.png:/buttons/logo/images/load.png - - - Load scene - - - Load a scenery from a file - - - Ctrl+O - - - - - - :/buttons/logo/images/save.png:/buttons/logo/images/save.png - - - Save scene - - - Save a scenery to a file - - - Ctrl+S - - - - - - :/buttons/logo/images/render.png:/buttons/logo/images/render.png - - - Quick render - - - Start a quick render - - - F5 - - - - - - :/buttons/logo/images/render.png:/buttons/logo/images/render.png - - - Final render - - - Start the final rendering processs - - - Ctrl+F5 - - - - - - :/buttons/logo/images/about.png:/buttons/logo/images/about.png - - - About - - - Display information on this software - - - F1 - - - - - - :/buttons/logo/images/render.png:/buttons/logo/images/render.png - - - Show last render - - - Display the last render done - - - F6 - - - - - - MainTerrainForm - QWidget -
terrain/mainterrainform.h
- 1 -
- - MainTexturesForm - QWidget -
textures/maintexturesform.h
- 1 -
-
- - - - - - button_explore - clicked() - action_explore - trigger() - - - 127 - 380 - - - -1 - -1 - - - - - button_render - clicked() - action_final_render - trigger() - - - 213 - 425 - - - -1 - -1 - - - - - button_file_new - clicked() - action_file_new - trigger() - - - 213 - 522 - - - -1 - -1 - - - - - button_file_load - clicked() - action_file_load - trigger() - - - 213 - 588 - - - -1 - -1 - - - - - button_file_save - clicked() - action_file_save - trigger() - - - 213 - 555 - - - -1 - -1 - - - - -
diff --git a/src/interface/desktop/common/widgetglobalformbuttons.cpp b/src/interface/desktop/common/widgetglobalformbuttons.cpp deleted file mode 100644 index 3f0c17e..0000000 --- a/src/interface/desktop/common/widgetglobalformbuttons.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include "widgetglobalformbuttons.h" -#include "ui_widgetglobalformbuttons.h" - -WidgetGlobalFormButtons::WidgetGlobalFormButtons(QWidget *parent) : - QWidget(parent), - ui(new Ui::WidgetGlobalFormButtons) -{ - ui->setupUi(this); - - connect(ui->button_ok, SIGNAL(clicked()), this, SIGNAL(okClicked())); - connect(ui->button_cancel, SIGNAL(clicked()), this, SIGNAL(cancelClicked())); - connect(ui->button_revert, SIGNAL(clicked()), this, SIGNAL(revertClicked())); -} - -WidgetGlobalFormButtons::~WidgetGlobalFormButtons() -{ - delete ui; -} diff --git a/src/interface/desktop/common/widgetglobalformbuttons.h b/src/interface/desktop/common/widgetglobalformbuttons.h deleted file mode 100644 index 0c00f66..0000000 --- a/src/interface/desktop/common/widgetglobalformbuttons.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef WIDGETGLOBALFORMBUTTONS_H -#define WIDGETGLOBALFORMBUTTONS_H - -#include - -namespace Ui { -class WidgetGlobalFormButtons; -} - -class WidgetGlobalFormButtons : public QWidget -{ - Q_OBJECT - -public: - explicit WidgetGlobalFormButtons(QWidget *parent = 0); - ~WidgetGlobalFormButtons(); - -signals: - void okClicked(); - void revertClicked(); - void cancelClicked(); - -private: - Ui::WidgetGlobalFormButtons *ui; -}; - -#endif // WIDGETGLOBALFORMBUTTONS_H diff --git a/src/interface/desktop/common/widgetglobalformbuttons.ui b/src/interface/desktop/common/widgetglobalformbuttons.ui deleted file mode 100644 index e8c5c32..0000000 --- a/src/interface/desktop/common/widgetglobalformbuttons.ui +++ /dev/null @@ -1,85 +0,0 @@ - - - WidgetGlobalFormButtons - - - - 0 - 0 - 560 - 43 - - - - - 16777215 - 50 - - - - Form - - - - - - - 0 - 25 - - - - Cancel - - - - :/buttons/logo/images/cancel.png:/buttons/logo/images/cancel.png - - - - - - - - 0 - 25 - - - - Revert modifications - - - - :/buttons/logo/images/revert.png:/buttons/logo/images/revert.png - - - - - - - - 0 - 25 - - - - Validate - - - - :/buttons/logo/images/apply.png:/buttons/logo/images/apply.png - - - - - - - - - - - applyClicked() - revertClicked() - cancelClicked() - - diff --git a/src/interface/desktop/common/widgetsliderdecimal.cpp b/src/interface/desktop/common/widgetsliderdecimal.cpp deleted file mode 100644 index 84b8a68..0000000 --- a/src/interface/desktop/common/widgetsliderdecimal.cpp +++ /dev/null @@ -1,67 +0,0 @@ -#include "widgetsliderdecimal.h" - -#include - -WidgetSliderDecimal::WidgetSliderDecimal(QWidget *parent) : - QSlider(parent) -{ - _min = 0.0; - _max = 1.0; - _step = 0.01; - _value = 0.0; - - connect(this, SIGNAL(valueChanged(int)), this, SLOT(processIntValue(int))); -} - -void WidgetSliderDecimal::setDecimalRange(double min, double max, double precision, double tick_precision) -{ - double range = max - min; - if (range < 0.000001) - { - max = min + 0.000001; - range = max - min; - } - if (precision < 0.000001) - { - precision = range / 1000.0; - } - - _min = min; - _max = max; - _step = precision; - - setMinimum(0); - setMaximum(round(range / precision)); - - if (tick_precision < 0.000001) - { - tick_precision = 20.0 * range / precision; - } - setTickInterval(round(tick_precision / precision)); -} - -void WidgetSliderDecimal::setDecimalValue(double value) -{ - _value = value; - setValue(round((value - _min) / _step)); -} - -void WidgetSliderDecimal::processIntValue(int value) -{ - double result; - if (value == maximum()) - { - result = _max; - } - else - { - result = _min + ((double)value) * _step; - } - if (fabs(result) < 0.0000001) - { - result = 0.0; - } - _value = result; - - emit decimalValueChanged(result); -} diff --git a/src/interface/desktop/common/widgetsliderdecimal.h b/src/interface/desktop/common/widgetsliderdecimal.h deleted file mode 100644 index 9ee32d7..0000000 --- a/src/interface/desktop/common/widgetsliderdecimal.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef WIDGETSLIDERDECIMAL_H -#define WIDGETSLIDERDECIMAL_H - -#include - -class WidgetSliderDecimal : public QSlider -{ - Q_OBJECT -public: - explicit WidgetSliderDecimal(QWidget *parent = 0); - - void setDecimalRange(double min, double max, double precision=0.0, double tick_interval=0.0); - void setDecimalValue(double value); - inline double decimalValue() {return _value;} - -signals: - void decimalValueChanged(double value); - -public slots: - void processIntValue(int value); - -private: - double _min; - double _max; - double _step; - double _value; -}; - -#endif // WIDGETSLIDERDECIMAL_H diff --git a/src/interface/desktop/desktop.pro b/src/interface/desktop/desktop.pro deleted file mode 100644 index e6a47d2..0000000 --- a/src/interface/desktop/desktop.pro +++ /dev/null @@ -1,154 +0,0 @@ -TEMPLATE = app -CONFIG += qt - -QT += core gui opengl - -TARGET = paysages-gui - -unix:LIBS += -lGLU - -include(../../common.pri) - -HEADERS += \ - terrain/widgetheightmap.h \ - widgetcurveeditor.h \ - tools.h \ - previewmaterial.h \ - inputnoise.h \ - inputmaterial.h \ - inputlayers.h \ - inputint.h \ - inputenum.h \ - inputdouble.h \ - inputcurve.h \ - inputcolor.h \ - inputcamera.h \ - inputboolean.h \ - formwater.h \ - formrender.h \ - formclouds.h \ - formatmosphere.h \ - dialogrender.h \ - dialognoise.h \ - dialoglayers.h \ - dialogexplorer.h \ - dialogcurve.h \ - baseinput.h \ - baseformlayer.h \ - baseform.h \ - terrain/dialogterrainpainting.h \ - common/widgetglobalformbuttons.h \ - terrain/paintingbrush.h \ - terrain/mainterrainform.h \ - common/freeformhelper.h \ - common/widgetsliderdecimal.h \ - terrain/widgetterrainbasenoisepreview.h \ - common/mainwindow.h \ - terrain/dialogbaseterrainnoise.h \ - textures/maintexturesform.h \ - common/freelayerhelper.h \ - lighting/DialogMaterialEditor.h \ - lighting/SmallPreviewColor.h \ - lighting/SmallPreviewHues.h \ - textures/DialogTexturesLayer.h \ - desktop_global.h \ - DesktopScenery.h \ - WidgetCanvas.h \ - WidgetPreviewCanvas.h - -SOURCES += \ - terrain/widgetheightmap.cpp \ - widgetcurveeditor.cpp \ - tools.cpp \ - previewmaterial.cpp \ - inputnoise.cpp \ - inputmaterial.cpp \ - inputlayers.cpp \ - inputint.cpp \ - inputenum.cpp \ - inputdouble.cpp \ - inputcurve.cpp \ - inputcolor.cpp \ - inputcamera.cpp \ - inputboolean.cpp \ - formwater.cpp \ - formrender.cpp \ - formclouds.cpp \ - formatmosphere.cpp \ - dialogrender.cpp \ - dialognoise.cpp \ - dialoglayers.cpp \ - dialogexplorer.cpp \ - dialogcurve.cpp \ - baseinput.cpp \ - baseformlayer.cpp \ - baseform.cpp \ - terrain/dialogterrainpainting.cpp \ - common/widgetglobalformbuttons.cpp \ - terrain/paintingbrush.cpp \ - terrain/mainterrainform.cpp \ - common/freeformhelper.cpp \ - common/widgetsliderdecimal.cpp \ - terrain/widgetterrainbasenoisepreview.cpp \ - common/mainwindow.cpp \ - terrain/dialogbaseterrainnoise.cpp \ - textures/maintexturesform.cpp \ - common/freelayerhelper.cpp \ - lighting/DialogMaterialEditor.cpp \ - lighting/SmallPreviewColor.cpp \ - lighting/SmallPreviewHues.cpp \ - textures/DialogTexturesLayer.cpp \ - DesktopScenery.cpp \ - WidgetCanvas.cpp \ - WidgetPreviewCanvas.cpp - -FORMS += \ - terrain/dialogterrainpainting.ui \ - common/widgetglobalformbuttons.ui \ - terrain/mainterrainform.ui \ - common/mainwindow.ui \ - terrain/dialogbaseterrainnoise.ui \ - textures/maintexturesform.ui \ - lighting/DialogMaterialEditor.ui \ - textures/DialogTexturesLayer.ui - -RESOURCES += \ - ../../../data/ui_pictures.qrc - -TRANSLATIONS = ../../../data/i18n/paysages_fr.ts - -win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../system/release/ -lpaysages_system -else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../../system/debug/ -lpaysages_system -else:unix: LIBS += -L$$OUT_PWD/../../system/ -lpaysages_system -INCLUDEPATH += $$PWD/../../system -DEPENDPATH += $$PWD/../../system - -win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../basics/release/ -lpaysages_basics -else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../../basics/debug/ -lpaysages_basics -else:unix: LIBS += -L$$OUT_PWD/../../basics/ -lpaysages_basics -INCLUDEPATH += $$PWD/../../basics -DEPENDPATH += $$PWD/../../basics - -win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../definition/release/ -lpaysages_definition -else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../../definition/debug/ -lpaysages_definition -else:unix: LIBS += -L$$OUT_PWD/../../definition/ -lpaysages_definition -INCLUDEPATH += $$PWD/../../definition -DEPENDPATH += $$PWD/../../definition - -win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../render/software/release/ -lpaysages_render_software -else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../../render/software/debug/ -lpaysages_render_software -else:unix: LIBS += -L$$OUT_PWD/../../render/software/ -lpaysages_render_software -INCLUDEPATH += $$PWD/../../render/software -DEPENDPATH += $$PWD/../../render/software - -win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../render/preview/release/ -lpaysages_render_preview -else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../../render/preview/debug/ -lpaysages_render_preview -else:unix: LIBS += -L$$OUT_PWD/../../render/preview/ -lpaysages_render_preview -INCLUDEPATH += $$PWD/../../render/preview -DEPENDPATH += $$PWD/../../render/preview - -win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../render/opengl/release/ -lpaysages_render_opengl -else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../../render/opengl/debug/ -lpaysages_render_opengl -else:unix: LIBS += -L$$OUT_PWD/../../render/opengl/ -lpaysages_render_opengl -INCLUDEPATH += $$PWD/../../render/opengl -DEPENDPATH += $$PWD/../../render/opengl diff --git a/src/interface/desktop/desktop_global.h b/src/interface/desktop/desktop_global.h deleted file mode 100644 index 79c0d46..0000000 --- a/src/interface/desktop/desktop_global.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef EDITING_GLOBAL_H -#define EDITING_GLOBAL_H - -#include "definition_global.h" -#include "software_global.h" -#include "opengl_global.h" -#include "preview_global.h" - -namespace paysages { -namespace desktop { - class BaseInput; - class BaseForm; - - class WidgetCanvas; - class WidgetPreviewCanvas; -} -} - -using namespace paysages::desktop; - -#endif // EDITING_GLOBAL_H diff --git a/src/interface/desktop/dialogcurve.cpp b/src/interface/desktop/dialogcurve.cpp deleted file mode 100644 index d331630..0000000 --- a/src/interface/desktop/dialogcurve.cpp +++ /dev/null @@ -1,104 +0,0 @@ -#include "dialogcurve.h" - -#include -#include -#include -#include "Curve.h" -#include "baseform.h" -#include "tools.h" -#include "widgetcurveeditor.h" - -/**************** Dialog ****************/ -DialogCurve::DialogCurve(QWidget *parent, Curve* curve, double xmin, double xmax, double ymin, double ymax, QString xlabel, QString ylabel) : QDialog(parent) -{ - QWidget* buttons; - QWidget* form; - QGridLayout* form_layout; - QLabel* label; - - _base = curve; - _current = new Curve; - _base->copy(_current); - - setLayout(new QVBoxLayout()); - - form = new QWidget(this); - form_layout = new QGridLayout(); - form->setLayout(form_layout); - layout()->addWidget(form); - - label = new QLabel(tr("This is the curve editor.\nClick on points and drag them to move them.\nDouble click to add a new point.\nRight click on a point to delete it."), form); - label->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Minimum); - label->setMinimumWidth(150); - label->setMaximumWidth(200); - label->setWordWrap(true); - form_layout->addWidget(label, 0, 1); - _curve_editor = new WidgetCurveEditor(form, xmin, xmax, ymin, ymax); - _curve_editor->setAxisLabels(xlabel, ylabel); - _curve_editor->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding); - form_layout->addWidget(_curve_editor, 0, 0); - - buttons = new QWidget(this); - layout()->addWidget(buttons); - buttons->setLayout(new QHBoxLayout()); - - _button_cancel = new QPushButton(tr("Cancel"), buttons); - _button_cancel->setIcon(QIcon(getDataPath("images/cancel.png"))); - buttons->layout()->addWidget(_button_cancel); - QObject::connect(_button_cancel, SIGNAL(clicked()), this, SLOT(reject())); - - _button_revert = new QPushButton(tr("Revert"), buttons); - _button_revert->setIcon(QIcon(getDataPath("images/revert.png"))); - buttons->layout()->addWidget(_button_revert); - QObject::connect(_button_revert, SIGNAL(clicked()), this, SLOT(revert())); - - _button_accept = new QPushButton(tr("Validate"), buttons); - _button_accept->setIcon(QIcon(getDataPath("images/apply.png"))); - buttons->layout()->addWidget(_button_accept); - QObject::connect(_button_accept, SIGNAL(clicked()), this, SLOT(accept())); - - setWindowTitle(tr("Paysages 3D - Curve editor")); - resize(900, 600); - - revert(); -} - -DialogCurve::~DialogCurve() -{ - delete _current; -} - -bool DialogCurve::getCurve(QWidget* parent, Curve* curve, double xmin, double xmax, double ymin, double ymax, QString xlabel, QString ylabel) -{ - int result; - - DialogCurve* dialog = new DialogCurve(parent, curve, xmin, xmax, ymin, ymax, xlabel, ylabel); - result = dialog->exec(); - - delete dialog; - - return (result != 0) ? true : false; -} - -void DialogCurve::closeEvent(QCloseEvent*) -{ - reject(); -} - -void DialogCurve::accept() -{ - _curve_editor->getCurve(_current); - _current->copy(_base); - QDialog::accept(); -} - -void DialogCurve::revert() -{ - _base->copy(_current); - revertToCurrent(); -} - -void DialogCurve::revertToCurrent() -{ - _curve_editor->setCurve(_current); -} diff --git a/src/interface/desktop/dialogcurve.h b/src/interface/desktop/dialogcurve.h deleted file mode 100644 index b57c112..0000000 --- a/src/interface/desktop/dialogcurve.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef _PAYSAGES_QT_DIALOGCURVE_H_ -#define _PAYSAGES_QT_DIALOGCURVE_H_ - -#include "desktop_global.h" - -#include - -class QPushButton; -class WidgetCurveEditor; - -class DialogCurve : public QDialog -{ - Q_OBJECT -public: - explicit DialogCurve(QWidget* parent, Curve* curve, double xmin, double xmax, double ymin, double ymax, QString xlabel, QString ylabel); - ~DialogCurve(); - - static bool getCurve(QWidget* parent, Curve* curve, double xmin, double xmax, double ymin, double ymax, QString xlabel, QString ylabel); - -public slots: - virtual void accept(); - void revert(); - -protected: - virtual void closeEvent(QCloseEvent* e); - -private: - void revertToCurrent(); - -private: - Curve* _base; - Curve* _current; - WidgetCurveEditor* _curve_editor; - QPushButton* _button_accept; - QPushButton* _button_revert; - QPushButton* _button_cancel; -}; - -#endif diff --git a/src/interface/desktop/dialogexplorer.cpp b/src/interface/desktop/dialogexplorer.cpp deleted file mode 100644 index 6e9d079..0000000 --- a/src/interface/desktop/dialogexplorer.cpp +++ /dev/null @@ -1,86 +0,0 @@ -#include "dialogexplorer.h" - -#include -#include -#include -#include -#include -#include "WidgetExplorer.h" -#include "DesktopScenery.h" -#include "CameraDefinition.h" - -DialogExplorer::DialogExplorer(QWidget* parent, CameraDefinition* camera, bool camera_validable, Scenery* scenery) : QDialog(parent) -{ - QWidget* panel; - QPushButton* button; - QLabel* label; - - setModal(true); - setWindowTitle(tr("Paysages 3D - Explore")); - setLayout(new QHBoxLayout()); - - if (!scenery) - { - scenery = DesktopScenery::getCurrent(); - } - - _wanderer = new WidgetExplorer(this, camera, scenery); - layout()->addWidget(_wanderer); - - panel = new QWidget(this); - panel->setLayout(new QVBoxLayout()); - panel->setMaximumWidth(230); - - label = new QLabel(tr("Field of vision"), panel); - label->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); - panel->layout()->addWidget(label); - _fov = new QSlider(Qt::Horizontal, panel); - _fov->setRange(0, 1000); - _fov->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed); - connect(_fov, SIGNAL(valueChanged(int)), this, SLOT(fovChanged(int))); - panel->layout()->addWidget(_fov); - - panel->layout()->addWidget(new QLabel(tr("COMMANDS\n\nLeft click : Look around\nRight click : Pan (adjust framing)\nWheel : Move forward/backward\nHold SHIFT : Faster\nHold CTRL : Slower"), panel)); - - button = new QPushButton(tr("Reset camera"), panel); - panel->layout()->addWidget(button); - QObject::connect(button, SIGNAL(clicked()), this, SLOT(resetCamera())); - - if (camera_validable) - { - button = new QPushButton(tr("Validate as render camera"), panel); - panel->layout()->addWidget(button); - QObject::connect(button, SIGNAL(clicked()), this, SLOT(validateCamera())); - } - - button = new QPushButton(tr("Close"), panel); - panel->layout()->addWidget(button); - QObject::connect(button, SIGNAL(clicked()), this, SLOT(reject())); - - layout()->addWidget(panel); - - resize(900, 600); - resetCamera(); -} - -DialogExplorer::~DialogExplorer() -{ -} - -void DialogExplorer::validateCamera() -{ - _wanderer->validateCamera(); - accept(); -} - -void DialogExplorer::resetCamera() -{ - _wanderer->resetCamera(); - _fov->setValue((int)(1000.0 * (_wanderer->getCurrentCamera()->getPerspective().yfov - 0.7) / 1.0)); -} - -void DialogExplorer::fovChanged(int value) -{ - _wanderer->setCameraFov(0.7 + 1.0 * ((double)value) / 1000.0); -} - diff --git a/src/interface/desktop/dialogexplorer.h b/src/interface/desktop/dialogexplorer.h deleted file mode 100644 index cd3e544..0000000 --- a/src/interface/desktop/dialogexplorer.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef _PAYSAGES_QT_DIALOGEXPLORER_H_ -#define _PAYSAGES_QT_DIALOGEXPLORER_H_ - -#include "desktop_global.h" - -#include - -class QSlider; - -class DialogExplorer : public QDialog -{ - Q_OBJECT -public: - explicit DialogExplorer(QWidget *parent, CameraDefinition* camera, bool camera_validable=false, Scenery* scenery=0); - ~DialogExplorer(); - -protected slots: - void validateCamera(); - void resetCamera(); - void fovChanged(int value); - -private: - WidgetExplorer* _wanderer; - QSlider* _fov; -}; - -#endif diff --git a/src/interface/desktop/dialoglayers.cpp b/src/interface/desktop/dialoglayers.cpp deleted file mode 100644 index 707efb7..0000000 --- a/src/interface/desktop/dialoglayers.cpp +++ /dev/null @@ -1,76 +0,0 @@ -#include "dialoglayers.h" - -#include -#include -#include -#include -#include "baseformlayer.h" - -/**************** Dialog form ****************/ -DialogLayers::DialogLayers(QWidget *parent, Layers* layers, QString title, FormLayerBuilder form_builder) : DialogWithPreview(parent) -{ - QPushButton* button; - QWidget* buttons; - - _layers = layers; - - setLayout(new QVBoxLayout()); - - _form = form_builder(this, _layers); - _form->hideButtons(); - layout()->addWidget(_form); - - buttons = new QWidget(this); - buttons->setLayout(new QHBoxLayout()); - layout()->addWidget(buttons); - layout()->setAlignment(buttons, Qt::AlignBottom); - - button = new QPushButton(tr("Cancel"), buttons); - button->setIcon(QIcon(getDataPath("images/cancel.png"))); - buttons->layout()->addWidget(button); - QObject::connect(button, SIGNAL(clicked()), this, SLOT(reject())); - - button = new QPushButton(tr("Reset"), buttons); - button->setIcon(QIcon(getDataPath("images/revert.png"))); - buttons->layout()->addWidget(button); - QObject::connect(button, SIGNAL(clicked()), this, SLOT(revert())); - - button = new QPushButton(tr("Validate"), buttons); - button->setIcon(QIcon(getDataPath("images/apply.png"))); - buttons->layout()->addWidget(button); - QObject::connect(button, SIGNAL(clicked()), this, SLOT(accept())); - - setWindowTitle(tr("Paysages 3D - ") + title); -} - -DialogLayers::~DialogLayers() -{ -} - -bool DialogLayers::editLayers(QWidget* parent, Layers* layers, QString title, FormLayerBuilder form_builder) -{ - int result; - - DialogLayers* dialog = new DialogLayers(parent, layers, title, form_builder); - result = dialog->exec(); - - delete dialog; - - return result != 0; -} - -void DialogLayers::closeEvent(QCloseEvent*) -{ - reject(); -} - -void DialogLayers::accept() -{ - _form->applyConfig(); - QDialog::accept(); -} - -void DialogLayers::revert() -{ - _form->revertConfig(); -} diff --git a/src/interface/desktop/dialoglayers.h b/src/interface/desktop/dialoglayers.h deleted file mode 100644 index 9fb08a2..0000000 --- a/src/interface/desktop/dialoglayers.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef _PAYSAGES_QT_DIALOGLAYERS_H_ -#define _PAYSAGES_QT_DIALOGLAYERS_H_ - -/* Dialog for generic layers control */ - -#include -#include "tools.h" - -#include "Layers.h" - -class DialogLayers; -class BaseFormLayer; - -typedef BaseFormLayer* (*FormLayerBuilder)(DialogLayers* parent, Layers* layers); - -class DialogLayers : public DialogWithPreview -{ - Q_OBJECT -public: - explicit DialogLayers(QWidget* parent, Layers* layers, QString title, FormLayerBuilder form_builder); - ~DialogLayers(); - - static bool editLayers(QWidget* parent, Layers* layers, QString title, FormLayerBuilder form_builder); - -public slots: - virtual void accept(); - void revert(); - -protected: - virtual void closeEvent(QCloseEvent* e); - -private: - BaseFormLayer* _form; - Layers* _layers; -}; - -#endif diff --git a/src/interface/desktop/dialognoise.cpp b/src/interface/desktop/dialognoise.cpp deleted file mode 100644 index 57a826e..0000000 --- a/src/interface/desktop/dialognoise.cpp +++ /dev/null @@ -1,352 +0,0 @@ -#include "dialognoise.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "BasePreview.h" - -/**************** Previews ****************/ -class PreviewLevel:public BasePreview -{ -public: - PreviewLevel(QWidget* parent, NoiseGenerator* noise): BasePreview(parent) - { - _noise_original = noise; - _noise_preview = new NoiseGenerator(); - _level = -1; - - configScaling(0.15, 6.0, 0.09, 6.0); - } - - void setLevel(int row) - { - _level = row; - redraw(); - } -protected: - void updateData() - { - _noise_original->copy(_noise_preview); - } - Color getColor(double x, double y) - { - if ((_level >= 0) && (-y > _noise_preview->get1DLevel(_level, x))) - { - return COLOR_WHITE; - } - else - { - return COLOR_BLACK; - } - } -private: - NoiseGenerator* _noise_original; - NoiseGenerator* _noise_preview; - int _level; -}; - -class PreviewTotal:public BasePreview -{ -public: - PreviewTotal(QWidget* parent, NoiseGenerator* noise): BasePreview(parent) - { - _noise_original = noise; - _noise_preview = new NoiseGenerator(); - - configScaling(0.15, 6.0, 0.09, 6.0); - } -protected: - void updateData() - { - _noise_original->copy(_noise_preview); - } - Color getColor(double x, double y) - { - if (-y > _noise_preview->get1DTotal(x)) - { - return COLOR_WHITE; - } - else - { - return COLOR_BLACK; - } - } -private: - NoiseGenerator* _noise_original; - NoiseGenerator* _noise_preview; -}; - -/**************** Dialog form ****************/ -DialogNoise::DialogNoise(QWidget *parent, NoiseGenerator* value): - DialogWithPreview(parent) -{ - QWidget* function; - QWidget* previews; - QWidget* form; - QWidget* buttons; - QPushButton* button; - QLabel* label; - - _base = value; - _current = new NoiseGenerator(); - - setLayout(new QHBoxLayout()); - - previews = new QWidget(this); - previews->setLayout(new QVBoxLayout()); - layout()->addWidget(previews); - layout()->setAlignment(previews, Qt::AlignTop); - - previewLevel = new PreviewLevel(previews, _current); - label = new QLabel(tr("Level preview")); - label->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - previews->layout()->addWidget(label); - previews->layout()->addWidget(previewLevel); - - previewTotal = new PreviewTotal(previews, _current); - label = new QLabel(tr("Total preview")); - label->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - previews->layout()->addWidget(label); - previews->layout()->addWidget(previewTotal); - - form = new QWidget(this); - form->setLayout(new QVBoxLayout()); - layout()->addWidget(form); - - function = new QWidget(form); - function->setLayout(new QHBoxLayout()); - form->layout()->addWidget(function); - - function->layout()->addWidget(new QLabel(tr("Noise function"))); - function_algo = new QComboBox(function); - function_algo->addItems(QStringList(tr("Simplex (best)")) << tr("Perlin (fast)") << tr("Naive (slow)")); - function->layout()->addWidget(function_algo); - function->layout()->addWidget(new QLabel(tr("Ridge factor"))); - function_ridge = new QSlider(Qt::Horizontal, function); - function_ridge->setRange(-10, 10); - function_ridge->setTickInterval(10); - function_ridge->setTickPosition(QSlider::TicksBelow); - function_ridge->setMinimumWidth(150); - function->layout()->addWidget(function_ridge); - QObject::connect(function_algo, SIGNAL(currentIndexChanged(int)), this, SLOT(functionChanged())); - QObject::connect(function_ridge, SIGNAL(valueChanged(int)), this, SLOT(functionChanged())); - - form->layout()->addWidget(new QLabel(tr("Noise components"))); - levels = new QListWidget(form); - form->layout()->addWidget(levels); - QObject::connect(levels, SIGNAL(currentRowChanged(int)), this, SLOT(levelChanged(int))); - - buttons = new QWidget(form); - buttons->setLayout(new QHBoxLayout()); - form->layout()->addWidget(buttons); - - button = new QPushButton(tr("Add component"), buttons); - buttons->layout()->addWidget(button); - QObject::connect(button, SIGNAL(clicked()), this, SLOT(addLevel())); - - button = new QPushButton(tr("Remove component"), buttons); - buttons->layout()->addWidget(button); - QObject::connect(button, SIGNAL(clicked()), this, SLOT(removeLevel())); - - form->layout()->addWidget(new QLabel(tr("Component height"))); - slider_height = new QSlider(form); - slider_height->setOrientation(Qt::Horizontal); - slider_height->setMinimumWidth(150); - //slider_height->setMaximumWidth(400); - slider_height->setMinimum(0); - slider_height->setMaximum(1000); - slider_height->setTickInterval(100); - slider_height->setTickPosition(QSlider::TicksBelow); - form->layout()->addWidget(slider_height); - QObject::connect(slider_height, SIGNAL(valueChanged(int)), this, SLOT(heightChanged(int))); - - form->layout()->addWidget(new QLabel(tr("Component scaling"))); - slider_scaling = new QSlider(form); - slider_scaling->setOrientation(Qt::Horizontal); - slider_scaling->setMinimumWidth(150); - //slider_scaling->setMaximumWidth(400); - slider_scaling->setMinimum(1); - slider_scaling->setMaximum(1000); - slider_scaling->setTickInterval(100); - slider_scaling->setTickPosition(QSlider::TicksBelow); - form->layout()->addWidget(slider_scaling); - QObject::connect(slider_scaling, SIGNAL(valueChanged(int)), this, SLOT(scalingChanged(int))); - - buttons = new QWidget(form); - buttons->setLayout(new QHBoxLayout()); - form->layout()->addWidget(buttons); - - button = new QPushButton(tr("Cancel"), buttons); - button->setIcon(QIcon(getDataPath("images/cancel.png"))); - buttons->layout()->addWidget(button); - QObject::connect(button, SIGNAL(clicked()), this, SLOT(reject())); - - button = new QPushButton(tr("Revert"), buttons); - button->setIcon(QIcon(getDataPath("images/revert.png"))); - buttons->layout()->addWidget(button); - QObject::connect(button, SIGNAL(clicked()), this, SLOT(revert())); - - button = new QPushButton(tr("Validate"), buttons); - button->setIcon(QIcon(getDataPath("images/apply.png"))); - buttons->layout()->addWidget(button); - QObject::connect(button, SIGNAL(clicked()), this, SLOT(accept())); - - setWindowTitle(tr("Paysages 3D - Noise editor")); - - revert(); -} - -DialogNoise::~DialogNoise() -{ - delete previewLevel; - delete previewTotal; - - delete _current; -} - -bool DialogNoise::getNoise(QWidget* parent, NoiseGenerator* noise) -{ - int result; - - DialogNoise* dialog = new DialogNoise(parent, noise); - result = dialog->exec(); - - delete dialog; - - return (result != 0) ? true : false; -} - -void DialogNoise::closeEvent(QCloseEvent*) -{ - reject(); -} - -void DialogNoise::accept() -{ - _current->copy(_base); - QDialog::accept(); -} - -void DialogNoise::revert() -{ - _base->copy(_current); - - revertToCurrent(); -} - -void DialogNoise::revertToCurrent() -{ - int i, n; - int selected; - NoiseGenerator::NoiseFunction function; - - selected = levels->currentRow(); - - levels->clear(); - n = _current->getLevelCount(); - for (i = 0; i < n; i++) - { - levels->addItem(QString(tr("Component %1")).arg(i + 1)); - } - - if (n > 0) - { - if (selected < 0) - { - selected = 0; - } - if (selected >= n) - { - selected = n - 1; - } - levels->setCurrentRow(selected); - } - - function = _current->getFunction(); - function_algo->setCurrentIndex((int)function.algorithm); - function_ridge->setValue(round(function.ridge_factor * 20.0)); - - previewLevel->redraw(); - previewTotal->redraw(); -} - -void DialogNoise::addLevel() -{ - NoiseGenerator::NoiseLevel level; - - level.amplitude = 0.1; - level.frequency = 0.1; - - _current->addLevel(level); - - revertToCurrent(); - - levels->setCurrentRow(levels->count() - 1); -} - -void DialogNoise::removeLevel() -{ - int row; - - row = levels->currentRow(); - - _current->removeLevel(_current_level); - - revertToCurrent(); - - if (row >= levels->count()) - { - row--; - } - levels->setCurrentRow(row); -} - -void DialogNoise::functionChanged() -{ - NoiseGenerator::NoiseFunction function; - - function.algorithm = (NoiseGenerator::NoiseFunctionAlgorithm)function_algo->currentIndex(); - function.ridge_factor = (double)function_ridge->value() * 0.05; - - _current->setFunction(&function); - _current->validate(); - - previewLevel->redraw(); - previewTotal->redraw(); -} - -void DialogNoise::levelChanged(int row) -{ - if (_current->getLevel(row, &_current_level_params)) - { - _current_level = row; - ((PreviewLevel*)previewLevel)->setLevel(row); - - slider_height->setValue(_current_level_params.amplitude * 1000.0); - slider_scaling->setValue(_current_level_params.frequency * 1000.0); - } - // TODO else ... -} - -void DialogNoise::heightChanged(int value) -{ - _current_level_params.amplitude = ((double)value) / 1000.0; - _current->setLevel(_current_level, _current_level_params); - previewLevel->redraw(); - previewTotal->redraw(); -} - -void DialogNoise::scalingChanged(int value) -{ - _current_level_params.frequency = ((double)value) / 1000.0; - _current->setLevel(_current_level, _current_level_params); - previewLevel->redraw(); - previewTotal->redraw(); -} diff --git a/src/interface/desktop/dialognoise.h b/src/interface/desktop/dialognoise.h deleted file mode 100644 index 781e0d5..0000000 --- a/src/interface/desktop/dialognoise.h +++ /dev/null @@ -1,52 +0,0 @@ -#ifndef _PAYSAGES_QT_DIALOGNOISE_H_ -#define _PAYSAGES_QT_DIALOGNOISE_H_ - -#include "desktop_global.h" - -#include -#include -#include "tools.h" -#include "NoiseGenerator.h" - -class DialogNoise : public DialogWithPreview -{ - Q_OBJECT -public: - explicit DialogNoise(QWidget* parent, NoiseGenerator* noise); - ~DialogNoise(); - - static bool getNoise(QWidget* parent, NoiseGenerator* noise); - -public slots: - virtual void accept(); - void revert(); - -protected: - virtual void closeEvent(QCloseEvent* e); - -private: - void revertToCurrent(); - -private slots: - void addLevel(); - void removeLevel(); - void functionChanged(); - void levelChanged(int row); - void heightChanged(int value); - void scalingChanged(int value); - -private: - NoiseGenerator* _base; - NoiseGenerator* _current; - int _current_level; - NoiseGenerator::NoiseLevel _current_level_params; - BasePreview* previewLevel; - BasePreview* previewTotal; - QComboBox* function_algo; - QSlider* function_ridge; - QListWidget* levels; - QSlider* slider_height; - QSlider* slider_scaling; -}; - -#endif diff --git a/src/interface/desktop/dialogrender.cpp b/src/interface/desktop/dialogrender.cpp deleted file mode 100644 index 58293b7..0000000 --- a/src/interface/desktop/dialogrender.cpp +++ /dev/null @@ -1,189 +0,0 @@ -#include "dialogrender.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "tools.h" - -#include "Scenery.h" -#include "ColorProfile.h" -#include "SoftwareCanvasRenderer.h" -#include "WidgetPreviewCanvas.h" -#include "Canvas.h" - -class RenderThread:public QThread -{ -public: - RenderThread(DialogRender* dialog, SoftwareCanvasRenderer* renderer):QThread() - { - _dialog = dialog; - _renderer = renderer; - } - void run() - { - _renderer->render(); - _dialog->tellRenderEnded(); - } -private: - DialogRender* _dialog; - SoftwareCanvasRenderer* _renderer; -}; - -DialogRender::DialogRender(QWidget *parent, SoftwareCanvasRenderer* renderer): - QDialog(parent, Qt::WindowTitleHint | Qt::WindowMaximizeButtonHint | Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint) -{ - pixbuf_lock = new QMutex(); - pixbuf = new QImage(1, 1, QImage::Format_ARGB32); - _render_thread = NULL; - canvas_renderer = renderer; - - setModal(true); - setWindowTitle(tr("Paysages 3D - Render")); - setLayout(new QVBoxLayout()); - - canvas_preview = new WidgetPreviewCanvas(this); - canvas_preview->setCanvas(canvas_renderer->getCanvas()); - layout()->addWidget(canvas_preview); - - // Status bar - _info = new QWidget(this); - _info->setLayout(new QHBoxLayout()); - layout()->addWidget(_info); - - _timer = new QLabel(QString("0:00.00"), _info); - _info->layout()->addWidget(_timer); - - _progress = new QProgressBar(_info); - _progress->setMaximumHeight(12); - _progress->setMinimum(0); - _progress->setMaximum(1000); - _progress->setValue(0); - _info->layout()->addWidget(_progress); - - // Action bar - _actions = new QWidget(this); - _actions->setLayout(new QHBoxLayout()); - layout()->addWidget(_actions); - - _actions->layout()->addWidget(new QLabel(tr("Tone-mapping: "), _actions)); - _tonemapping_control = new QComboBox(_actions); - _tonemapping_control->addItems(QStringList(tr("Uncharted")) << tr("Reinhard")); - _actions->layout()->addWidget(_tonemapping_control); - - _actions->layout()->addWidget(new QLabel(tr("Exposure: "), _actions)); - _actions->hide(); - _exposure_control = new QSlider(Qt::Horizontal, _actions); - _exposure_control->setMinimumWidth(200); - _exposure_control->setRange(0, 1000); - _exposure_control->setValue(200); - _actions->layout()->addWidget(_exposure_control); - - _save_button = new QPushButton(QIcon(getDataPath("images/save.png")), tr("Save picture"), _actions); - _actions->layout()->addWidget(_save_button); - - // Connections - connect(this, SIGNAL(renderEnded()), this, SLOT(applyRenderEnded())); - connect(_save_button, SIGNAL(clicked()), this, SLOT(saveRender())); - connect(_tonemapping_control, SIGNAL(currentIndexChanged(int)), this, SLOT(toneMappingChanged())); - connect(_exposure_control, SIGNAL(valueChanged(int)), this, SLOT(toneMappingChanged())); - - toneMappingChanged(); -} - -DialogRender::~DialogRender() -{ - if (_render_thread) - { - canvas_renderer->interrupt(); - _render_thread->wait(); - - delete _render_thread; - } - delete pixbuf; - delete pixbuf_lock; -} - -void DialogRender::tellRenderEnded() -{ - emit renderEnded(); -} - -void DialogRender::startRender() -{ - _started = time(NULL); - - _render_thread = new RenderThread(this, canvas_renderer); - _render_thread->start(); - - startTimer(100); - - exec(); -} - -void DialogRender::applyRenderEnded() -{ - _info->hide(); - _actions->show(); -} - -void DialogRender::saveRender() -{ - QString filepath; - - filepath = QFileDialog::getSaveFileName(this, tr("Paysages 3D - Choose a filename to save the last render"), QString(), tr("Images (*.png *.jpg)")); - if (!filepath.isNull()) - { - if (!filepath.toLower().endsWith(".jpg") && !filepath.toLower().endsWith(".jpeg") && !filepath.toLower().endsWith(".png")) - { - filepath = filepath.append(".png"); - } - if (canvas_renderer->saveToDisk(filepath.toStdString())) - { - QMessageBox::information(this, "Message", QString(tr("The picture %1 has been saved.")).arg(filepath)); - } - else - { - QMessageBox::critical(this, "Message", QString(tr("Can't write to file : %1")).arg(filepath)); - } - } -} - -void DialogRender::toneMappingChanged() -{ - ColorProfile profile((ColorProfile::ToneMappingOperator)_tonemapping_control->currentIndex(), ((double)_exposure_control->value()) * 0.01); - canvas_preview->setToneMapping(profile); -} - -void DialogRender::loadLastRender() -{ - renderEnded(); - toneMappingChanged(); - - exec(); -} - -void DialogRender::timerEvent(QTimerEvent *) -{ - double diff = difftime(time(NULL), _started); - int hours = (int)floor(diff / 3600.0); - int minutes = (int)floor((diff - 3600.0 * hours) / 60.0); - int seconds = (int)floor(diff - 3600.0 * hours - 60.0 * minutes); - _timer->setText(tr("%1:%2.%3").arg(hours).arg(minutes, 2, 10, QLatin1Char('0')).arg(seconds, 2, 10, QLatin1Char('0'))); - - _progress->setValue((int)(canvas_renderer->getProgress() * 1000.0)); - _progress->update(); -} - diff --git a/src/interface/desktop/dialogrender.h b/src/interface/desktop/dialogrender.h deleted file mode 100644 index 57b33e3..0000000 --- a/src/interface/desktop/dialogrender.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef _PAYSAGES_QT_DIALOGRENDER_H_ -#define _PAYSAGES_QT_DIALOGRENDER_H_ - -#include "desktop_global.h" - -#include -#include - -class QThread; -class QProgressBar; -class QSlider; -class QComboBox; -class QLabel; -class QScrollArea; -class QMutex; - -class DialogRender : public QDialog -{ - Q_OBJECT -public: - explicit DialogRender(QWidget *parent, SoftwareCanvasRenderer *renderer); - ~DialogRender(); - - void tellRenderEnded(); - void startRender(); - void loadLastRender(); - - virtual void timerEvent(QTimerEvent *event) override; - - QImage* pixbuf; - QMutex* pixbuf_lock; - -private slots: - void saveRender(); - void applyRenderEnded(); - void toneMappingChanged(); - -signals: - void renderEnded(); - -private: - SoftwareCanvasRenderer* canvas_renderer; - WidgetPreviewCanvas* canvas_preview; - - QWidget* _info; - QWidget* _actions; - QComboBox* _tonemapping_control; - QSlider* _exposure_control; - QPushButton* _save_button; - QThread* _render_thread; - QLabel* _timer; - QProgressBar* _progress; - time_t _started; -}; - -#endif diff --git a/src/interface/desktop/formatmosphere.cpp b/src/interface/desktop/formatmosphere.cpp deleted file mode 100644 index 1285244..0000000 --- a/src/interface/desktop/formatmosphere.cpp +++ /dev/null @@ -1,82 +0,0 @@ -#include "formatmosphere.h" - -#include "tools.h" - -#include -#include -#include - -#include "AtmosphereColorPreviewRenderer.h" -#include "DesktopScenery.h" -#include "BasePreview.h" -#include "AtmosphereDefinition.h" - -static AtmosphereDefinition* _definition; - -/**************** Form ****************/ -FormAtmosphere::FormAtmosphere(QWidget *parent): - BaseForm(parent) -{ - addAutoPreset(tr("Clear day")); - addAutoPreset(tr("Clear sunset")); - addAutoPreset(tr("Hazy morning")); - addAutoPreset(tr("Foggy")); - addAutoPreset(tr("Stormy")); - - _definition = new AtmosphereDefinition(NULL); - - previewWest = new BasePreview(this); - previewWestRenderer = new AtmosphereColorPreviewRenderer(_definition, M_PI / 2.0); - addPreview(previewWest, QString(tr("West preview"))); - previewWest->setRenderer(previewWestRenderer); - - previewEast = new BasePreview(this); - previewEastRenderer = new AtmosphereColorPreviewRenderer(_definition, -M_PI / 2.0); - addPreview(previewEast, QString(tr("East preview"))); - previewEast->setRenderer(previewEastRenderer); - - //addInputEnum(tr("Color model"), (int*)&_definition->model, QStringList(tr("Simplified model (with weather)")) << tr("Complex model")); - addInputInt(tr("Day time (hour)"), &_definition->hour, 0, 23, 1, 10); - addInputInt(tr("Day time (minute)"), &_definition->minute, 0, 59, 1, 10); - //addInputColor(tr("Sun color"), &_definition->sun_color); - addInputDouble(tr("Sun radius"), &_definition->sun_radius, 0.0, 5.0, 0.05, 0.5); - //addInputDouble(tr("Influence of skydome on lighting"), &_definition->dome_lighting, 0.0, 2.0, 0.01, 0.1); - addInputDouble(tr("Humidity"), &_definition->humidity, 0.0, 1.0, 0.01, 0.1); - addInputDouble(tr("Moon radius"), &_definition->moon_radius, 0.5, 3.0, 0.03, 0.3); - addInputDouble(tr("Moon location (horizontal)"), &_definition->moon_phi, 0.0, M_PI * 2.0, 0.05, 0.5); - addInputDouble(tr("Moon location (vertical)"), &_definition->moon_theta, -0.1, M_PI * 0.5, 0.02, 0.2); - - revertConfig(); -} - -FormAtmosphere::~FormAtmosphere() -{ - delete previewWest; - delete previewWestRenderer; - delete previewEast; - delete previewEastRenderer; -} - -void FormAtmosphere::revertConfig() -{ - DesktopScenery::getCurrent()->getAtmosphere(_definition); - BaseForm::revertConfig(); -} - -void FormAtmosphere::applyConfig() -{ - DesktopScenery::getCurrent()->setAtmosphere(_definition); - BaseForm::applyConfig(); -} - -void FormAtmosphere::configChangeEvent() -{ - _definition->validate(); - BaseForm::configChangeEvent(); -} - -void FormAtmosphere::autoPresetSelected(int preset) -{ - _definition->applyPreset((AtmosphereDefinition::AtmospherePreset)preset); - BaseForm::autoPresetSelected(preset); -} diff --git a/src/interface/desktop/formatmosphere.h b/src/interface/desktop/formatmosphere.h deleted file mode 100644 index f053ea8..0000000 --- a/src/interface/desktop/formatmosphere.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef _PAYSAGES_QT_FORMATMOSPHERE_H_ -#define _PAYSAGES_QT_FORMATMOSPHERE_H_ - -#include "desktop_global.h" - -#include "baseform.h" -class QWidget; - -class FormAtmosphere : public BaseForm -{ - Q_OBJECT - -public: - explicit FormAtmosphere(QWidget *parent = 0); - virtual ~FormAtmosphere(); - -public slots: - virtual void revertConfig(); - virtual void applyConfig(); - -protected slots: - virtual void configChangeEvent(); - virtual void autoPresetSelected(int preset); - -private: - BasePreview* previewEast; - Base2dPreviewRenderer* previewEastRenderer; - BasePreview* previewWest; - Base2dPreviewRenderer* previewWestRenderer; -}; - -#endif diff --git a/src/interface/desktop/formclouds.cpp b/src/interface/desktop/formclouds.cpp deleted file mode 100644 index 19a1706..0000000 --- a/src/interface/desktop/formclouds.cpp +++ /dev/null @@ -1,81 +0,0 @@ -#include "formclouds.h" - -#include "DesktopScenery.h" -#include "BasePreview.h" -#include "CloudsDefinition.h" -#include "CloudLayerDefinition.h" -#include "CloudsCoveragePreviewRenderer.h" -#include "CloudsAspectPreviewRenderer.h" - -#include "tools.h" - -/**************** Form ****************/ -FormClouds::FormClouds(QWidget *parent): - BaseFormLayer(parent) -{ - _definition = new CloudsDefinition(NULL); - _layer = new CloudLayerDefinition(NULL); - - _previewCoverageRenderer = new CloudsCoveragePreviewRenderer(_layer); - _previewCoverage = new BasePreview(parent); - addPreview(_previewCoverage, tr("Layer coverage (no lighting)")); - _previewCoverage->setRenderer(_previewCoverageRenderer); - - _previewColorRenderer = new CloudsAspectPreviewRenderer(_layer); - _previewColor = new BasePreview(parent); - addPreview(_previewColor, tr("Appearance")); - _previewColor->setRenderer(_previewColorRenderer); - - QStringList cloud_models; - cloud_models << tr("Stratus") - << tr("Nimbo-stratus") - << tr("Cumulus") - << tr("Strato-cumulus") - << tr("Alto-cumulus") - << tr("Alto-stratus") - << tr("Cumulo-nimbus") - << tr("Cirro-cumulus") - << tr("Cirro-stratus") - << tr("Cirrus"); - - addInputEnum(tr("Clouds model"), (int*)&_layer->type, cloud_models); - addInputDouble(tr("Altitude"), &_layer->altitude, 0.0, 1.0, 0.01, 0.1); - addInputDouble(tr("Scaling"), &_layer->scaling, 0.0, 1.0, 0.01, 0.1); - addInputDouble(tr("Coverage"), &_layer->coverage, 0.0, 1.0, 0.01, 0.1); - - setLayers(_definition); -} - -FormClouds::~FormClouds() -{ - delete _layer; - delete _definition; - - delete _previewCoverage; - delete _previewCoverageRenderer; - - delete _previewColor; - delete _previewColorRenderer; -} - -void FormClouds::revertConfig() -{ - DesktopScenery::getCurrent()->getClouds(_definition); - BaseFormLayer::revertConfig(); -} - -void FormClouds::applyConfig() -{ - BaseFormLayer::applyConfig(); - DesktopScenery::getCurrent()->setClouds(_definition); -} - -void FormClouds::layerReadCurrentFrom(void* layer_definition) -{ - ((CloudLayerDefinition*)layer_definition)->copy(_layer); -} - -void FormClouds::layerWriteCurrentTo(void* layer_definition) -{ - _layer->copy((CloudLayerDefinition*)layer_definition); -} diff --git a/src/interface/desktop/formclouds.h b/src/interface/desktop/formclouds.h deleted file mode 100644 index daebcd0..0000000 --- a/src/interface/desktop/formclouds.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef _PAYSAGES_QT_FORMCLOUDS_H_ -#define _PAYSAGES_QT_FORMCLOUDS_H_ - -#include "desktop_global.h" - -#include "baseformlayer.h" -class QWidget; - -class FormClouds : public BaseFormLayer -{ - Q_OBJECT - -public: - explicit FormClouds(QWidget *parent = 0); - ~FormClouds(); - -public slots: - virtual void revertConfig(); - virtual void applyConfig(); - -protected: - virtual void layerReadCurrentFrom(void* layer_definition); - virtual void layerWriteCurrentTo(void* layer_definition); - -private: - CloudsDefinition* _definition; - CloudLayerDefinition* _layer; - - BasePreview* _previewCoverage; - CloudsCoveragePreviewRenderer* _previewCoverageRenderer; - - BasePreview* _previewColor; - CloudsAspectPreviewRenderer* _previewColorRenderer; -}; - -#endif diff --git a/src/interface/desktop/formrender.cpp b/src/interface/desktop/formrender.cpp deleted file mode 100644 index 2b9150f..0000000 --- a/src/interface/desktop/formrender.cpp +++ /dev/null @@ -1,140 +0,0 @@ -#include "formrender.h" - -#include - -#include "dialogrender.h" -#include "inputcamera.h" -#include "tools.h" -#include "DesktopScenery.h" -#include "PackStream.h" -#include "SoftwareCanvasRenderer.h" -#include "BasePreview.h" -#include "CloudsDefinition.h" -#include "CameraDefinition.h" -#include "SceneryTopDownPreviewRenderer.h" - -/**************** Form ****************/ -FormRender::FormRender(QWidget *parent) : -BaseForm(parent, true) -{ - QPushButton* button; - - _params.quality = 5; - _params.width = 800; - _params.height = 600; - _params.antialias = 1; - _camera = new CameraDefinition; - - _renderer_inited = false; - - disablePreviewsUpdate(); - - _preview_landscape = new BasePreview(this); - _preview_landscape_renderer = new SceneryTopDownPreviewRenderer(DesktopScenery::getCurrent()); - addPreview(_preview_landscape, QString(tr("Top-down preview"))); - _preview_landscape->setRenderer(_preview_landscape_renderer); - - addInput(new InputCamera(this, tr("Camera"), _camera)); - addInputInt(tr("Quality"), &_params.quality, 1, 10, 1, 1); - addInputInt(tr("Image width"), &_params.width, 100, 4000, 10, 100); - addInputInt(tr("Image height"), &_params.height, 100, 3000, 10, 100); - addInputInt(tr("Anti aliasing"), &_params.antialias, 1, 4, 1, 1); - - button = addButton(tr("Start new render")); - connect(button, SIGNAL(clicked()), this, SLOT(startRender())); - button = addButton(tr("Show last render")); - connect(button, SIGNAL(clicked()), this, SLOT(showRender())); - - revertConfig(); -} - -FormRender::~FormRender() -{ - delete _camera; - if (_renderer_inited) - { - delete _renderer; - } -} - -void FormRender::savePack(PackStream* stream) -{ - BaseForm::savePack(stream); - - stream->write(&_params.width); - stream->write(&_params.height); - stream->write(&_params.antialias); - stream->write(&_params.quality); -} - -void FormRender::loadPack(PackStream* stream) -{ - BaseForm::loadPack(stream); - - stream->read(&_params.width); - stream->read(&_params.height); - stream->read(&_params.antialias); - stream->read(&_params.quality); - - revertConfig(); -} - -void FormRender::revertConfig() -{ - DesktopScenery::getCurrent()->getCamera(_camera); - BaseForm::revertConfig(); -} - -void FormRender::applyConfig() -{ - DesktopScenery::getCurrent()->setCamera(_camera); - BaseForm::applyConfig(); -} - -void FormRender::configChangeEvent() -{ - _camera->validate(); - BaseForm::configChangeEvent(); -} - -void FormRender::startQuickRender() -{ - if (_renderer_inited) - { - delete _renderer; - } - - RenderConfig config(400, 300, 1, 3); - - _renderer = new SoftwareCanvasRenderer(); - _renderer->setScenery(DesktopScenery::getCurrent()); - _renderer->setConfig(config); - _renderer_inited = true; - - DialogRender dialog(this, _renderer); - dialog.startRender(); -} - -void FormRender::startRender() -{ - if (_renderer_inited) - { - delete _renderer; - } - _renderer = new SoftwareCanvasRenderer(); - _renderer->setScenery(DesktopScenery::getCurrent()); - _renderer->setConfig(_params); - _renderer_inited = true; - - DialogRender dialog(this, _renderer); - dialog.startRender(); -} - -void FormRender::showRender() -{ - if (_renderer_inited) - { - DialogRender dialog(this, _renderer); - dialog.loadLastRender(); - } -} diff --git a/src/interface/desktop/formrender.h b/src/interface/desktop/formrender.h deleted file mode 100644 index 8404f62..0000000 --- a/src/interface/desktop/formrender.h +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef _PAYSAGES_QT_FORMRENDER_H_ -#define _PAYSAGES_QT_FORMRENDER_H_ - -#include "desktop_global.h" - -#include "baseform.h" - -#include "RenderConfig.h" - -class FormRender : public BaseForm -{ - Q_OBJECT - -public: - explicit FormRender(QWidget *parent = 0); - ~FormRender(); - - virtual void savePack(PackStream* stream); - virtual void loadPack(PackStream* stream); - -public slots: - virtual void revertConfig(); - virtual void applyConfig(); - void startQuickRender(); - void startRender(); - void showRender(); - -protected slots: - virtual void configChangeEvent(); - -private: - RenderConfig _params; - CameraDefinition* _camera; - SoftwareCanvasRenderer* _renderer; - bool _renderer_inited; - BasePreview* _preview_landscape; - Base2dPreviewRenderer* _preview_landscape_renderer; -}; - -#endif diff --git a/src/interface/desktop/formwater.cpp b/src/interface/desktop/formwater.cpp deleted file mode 100644 index c6adefb..0000000 --- a/src/interface/desktop/formwater.cpp +++ /dev/null @@ -1,88 +0,0 @@ -#include "formwater.h" - -#include -#include -#include - -#include "tools.h" -#include "DesktopScenery.h" -#include "BasePreview.h" -#include "CameraDefinition.h" -#include "WaterDefinition.h" -#include "WaterCoveragePreviewRenderer.h" -#include "WaterAspectPreviewRenderer.h" - -static WaterDefinition* _definition; - -/**************** Form ****************/ -FormWater::FormWater(QWidget *parent) : -BaseForm(parent) -{ - addAutoPreset(tr("Lake surface")); - addAutoPreset(tr("Standard sea")); - - _definition = new WaterDefinition(NULL); - - previewCoverage = new BasePreview(this); - previewCoverageRenderer = new WaterCoveragePreviewRenderer(_definition); - addPreview(previewCoverage, tr("Coverage preview")); - previewCoverage->setRenderer(previewCoverageRenderer); - - previewColor = new BasePreview(this); - previewColorRenderer = new WaterAspectPreviewRenderer(_definition); - addPreview(previewColor, tr("Rendered preview")); - previewColor->setRenderer(previewColorRenderer); - - //addInputDouble(tr("Height"), &_definition->height, -15.0, 15.0, 0.1, 1.0); - addInputMaterial(tr("Surface material"), _definition->material); - addInputColor(tr("Depth color"), _definition->depth_color); - addInputDouble(tr("Transparency"), &_definition->transparency, 0.0, 1.0, 0.001, 0.1); - addInputDouble(tr("Reflection"), &_definition->reflection, 0.0, 1.0, 0.001, 0.1); - addInputDouble(tr("Transparency distance"), &_definition->transparency_depth, 0.0, 20.0, 0.1, 1.0); - addInputDouble(tr("Light-through distance"), &_definition->lighting_depth, 0.0, 20.0, 0.1, 1.0); - addInputDouble(tr("Waves scaling"), &_definition->scaling, 0.02, 2.0, 0.02, 0.2); - addInputDouble(tr("Waves height"), &_definition->waves_height, 0.0, 2.0, 0.02, 0.2); - addInputDouble(tr("Waves detail"), &_definition->detail_height, 0.0, 0.3, 0.003, 0.03); - addInputDouble(tr("Waves turbulence"), &_definition->turbulence, 0.0, 0.5, 0.005, 0.05); - addInputDouble(tr("Foam coverage"), &_definition->foam_coverage, 0.0, 1.0, 0.01, 0.1); - addInputMaterial(tr("Foam material"), _definition->foam_material); - - revertConfig(); -} - -FormWater::~FormWater() -{ - delete _definition; - - delete previewCoverageRenderer; - delete previewCoverage; - - delete previewColorRenderer; - delete previewColor; -} - -void FormWater::revertConfig() -{ - previewCoverageRenderer->setTerrain(DesktopScenery::getCurrent()->getTerrain()); - DesktopScenery::getCurrent()->getWater(_definition); - BaseForm::revertConfig(); -} - -void FormWater::applyConfig() -{ - DesktopScenery::getCurrent()->setWater(_definition); - BaseForm::applyConfig(); -} - -void FormWater::configChangeEvent() -{ - _definition->validate(); - BaseForm::configChangeEvent(); -} - -void FormWater::autoPresetSelected(int preset) -{ - _definition->applyPreset((WaterDefinition::WaterPreset)preset); - BaseForm::autoPresetSelected(preset); -} - diff --git a/src/interface/desktop/formwater.h b/src/interface/desktop/formwater.h deleted file mode 100644 index fe67464..0000000 --- a/src/interface/desktop/formwater.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef _PAYSAGES_QT_FORMWATER_H_ -#define _PAYSAGES_QT_FORMWATER_H_ - -#include "desktop_global.h" - -#include "baseform.h" -class QWidget; - -class FormWater : public BaseForm -{ - Q_OBJECT - -public: - explicit FormWater(QWidget *parent = 0); - virtual ~FormWater(); - -public slots: - virtual void revertConfig(); - virtual void applyConfig(); - -protected slots: - virtual void configChangeEvent(); - virtual void autoPresetSelected(int preset); - -private: - BasePreview* previewCoverage; - WaterCoveragePreviewRenderer* previewCoverageRenderer; - - BasePreview* previewColor; - WaterAspectPreviewRenderer* previewColorRenderer; -}; - -#endif diff --git a/src/interface/desktop/inputboolean.cpp b/src/interface/desktop/inputboolean.cpp deleted file mode 100644 index 27d8b0f..0000000 --- a/src/interface/desktop/inputboolean.cpp +++ /dev/null @@ -1,59 +0,0 @@ -#include "inputboolean.h" - -#include -#include "math.h" - -InputBoolean::InputBoolean(QWidget* form, QString label, int* value) : BaseInput(form, label) -{ - this->value = value; - - checkbox = new QCheckBox(form); - - connect(checkbox, SIGNAL(stateChanged(int)), this, SLOT(applyValue())); - - _preview = new QLabel(form); - ((QLabel*)_preview)->setAlignment(Qt::AlignCenter); - _control = checkbox; -} - -void InputBoolean::updatePreview() -{ - if (checkbox->checkState() == Qt::Checked) - { - ((QLabel*)_preview)->setText(tr("Yes")); - } - else - { - ((QLabel*)_preview)->setText(tr("No")); - } - - BaseInput::updatePreview(); -} - -void InputBoolean::applyValue() -{ - if (checkbox->checkState() == Qt::Checked) - { - *value = 1; - } - else - { - *value = 0; - } - - BaseInput::applyValue(); -} - -void InputBoolean::revert() -{ - if (*value) - { - checkbox->setCheckState(Qt::Checked); - } - else - { - checkbox->setCheckState(Qt::Unchecked); - } - - BaseInput::revert(); -} diff --git a/src/interface/desktop/inputboolean.h b/src/interface/desktop/inputboolean.h deleted file mode 100644 index fad8910..0000000 --- a/src/interface/desktop/inputboolean.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef _PAYSAGES_QT_INPUTBOOLEAN_H_ -#define _PAYSAGES_QT_INPUTBOOLEAN_H_ - -#include -#include -#include "baseinput.h" - -class InputBoolean:public BaseInput -{ - Q_OBJECT - -public: - InputBoolean(QWidget* form, QString label, int* value); - -public slots: - virtual void updatePreview(); - virtual void applyValue(); - virtual void revert(); - -private: - QCheckBox* checkbox; - int* value; -}; - -#endif diff --git a/src/interface/desktop/inputcamera.cpp b/src/interface/desktop/inputcamera.cpp deleted file mode 100644 index 74d0c46..0000000 --- a/src/interface/desktop/inputcamera.cpp +++ /dev/null @@ -1,52 +0,0 @@ -#include "inputcamera.h" - -#include -#include -#include -#include - -#include "dialogexplorer.h" - -InputCamera::InputCamera(QWidget* form, QString label, CameraDefinition* value):BaseInput(form, label) -{ - _value = value; - - _preview = new QWidget(form); - - _control = new QPushButton(tr("Edit"), form); - _control->setMaximumWidth(150); - - connect((QPushButton*)_control, SIGNAL(clicked()), this, SLOT(editCamera())); -} - -void InputCamera::updatePreview() -{ - //_preview->update(); - - BaseInput::updatePreview(); -} - -void InputCamera::applyValue() -{ - BaseInput::applyValue(); -} - -void InputCamera::revert() -{ - BaseInput::revert(); -} - -void InputCamera::editCamera() -{ - int result; - - DialogExplorer* dialog = new DialogExplorer(_control, _value, true); - result = dialog->exec(); - - delete dialog; - - if (result == QDialog::Accepted) - { - applyValue(); - } -} diff --git a/src/interface/desktop/inputcamera.h b/src/interface/desktop/inputcamera.h deleted file mode 100644 index f159456..0000000 --- a/src/interface/desktop/inputcamera.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef _PAYSAGES_QT_INPUTCAMERA_H_ -#define _PAYSAGES_QT_INPUTCAMERA_H_ - -#include "desktop_global.h" - -#include "baseinput.h" -#include - -class QWidget; - -class InputCamera:public BaseInput -{ - Q_OBJECT - -public: - InputCamera(QWidget* form, QString label, CameraDefinition* value); - -public slots: - virtual void updatePreview(); - virtual void applyValue(); - virtual void revert(); - -private slots: - void editCamera(); - -private: - CameraDefinition* _value; -}; - -#endif diff --git a/src/interface/desktop/inputcolor.cpp b/src/interface/desktop/inputcolor.cpp deleted file mode 100644 index f6c0e10..0000000 --- a/src/interface/desktop/inputcolor.cpp +++ /dev/null @@ -1,54 +0,0 @@ -#include "inputcolor.h" - -#include -#include -#include -#include -#include "Color.h" - -#include "lighting/SmallPreviewColor.h" -#include "tools.h" - -InputColor::InputColor(QWidget* form, QString label, Color* value): - BaseInput(form, label), - _original(value) -{ - _edited = new Color(); - - _preview = new SmallPreviewColor(form, _edited); - _preview->setMinimumSize(50, 20); - _control = new QPushButton(tr("Edit"), form); - _control->setMaximumWidth(150); - - connect((QPushButton*)_control, SIGNAL(clicked()), this, SLOT(chooseColor())); -} - -void InputColor::updatePreview() -{ - _preview->update(); - BaseInput::updatePreview(); -} - -void InputColor::applyValue() -{ - *_original = *_edited; - BaseInput::applyValue(); -} - -void InputColor::revert() -{ - *_edited = *_original; - BaseInput::revert(); -} - -void InputColor::chooseColor() -{ - QColor col = QColorDialog::getColor(colorToQColor(*_edited), _control); - if (col.isValid()) - { - _edited->r = col.redF(); - _edited->g = col.greenF(); - _edited->b = col.blueF(); - applyValue(); - } -} diff --git a/src/interface/desktop/inputcolor.h b/src/interface/desktop/inputcolor.h deleted file mode 100644 index 6191784..0000000 --- a/src/interface/desktop/inputcolor.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef _PAYSAGES_QT_INPUTCOLOR_H_ -#define _PAYSAGES_QT_INPUTCOLOR_H_ - -#include -#include "baseinput.h" - -class InputColor:public BaseInput -{ - Q_OBJECT - -public: - InputColor(QWidget* form, QString label, Color* value); - -public slots: - virtual void updatePreview(); - virtual void applyValue(); - virtual void revert(); - -private slots: - void chooseColor(); - -private: - Color* _original; - Color* _edited; -}; - -#endif diff --git a/src/interface/desktop/inputcurve.cpp b/src/interface/desktop/inputcurve.cpp deleted file mode 100644 index 63f2198..0000000 --- a/src/interface/desktop/inputcurve.cpp +++ /dev/null @@ -1,94 +0,0 @@ -#include "inputcurve.h" - -#include -#include -#include -#include "Curve.h" -#include "dialogcurve.h" - -class CurveSmallPreview:public QWidget -{ -public: - CurveSmallPreview(QWidget* parent, Curve* curve, double xmin, double xmax, double ymin, double ymax) : QWidget(parent) - { - _curve = curve; - _xmin = xmin; - _xmax = xmax; - _ymin = ymin; - _ymax = ymax; - } - - void paintEvent(QPaintEvent*) - { - if (!_curve) - { - return; - } - - QPainter painter(this); - int width = this->width(); - int height = this->height(); - double position, value, prev_value, next_value; - - painter.fillRect(rect(), QColor(255, 255, 255)); - for (int x = 0; x < width; x++) - { - painter.setPen(QColor(0, 0, 0)); - position = _xmin + (_xmax - _xmin) * (double)x / (double)(width - 1); - value = (_curve->getValue(position) - _ymin) * (_ymax - _ymin); - prev_value = (_curve->getValue(position - (_xmax - _xmin) / (double)(width - 1)) - _ymin) * (_ymax - _ymin); - next_value = (_curve->getValue(position + (_xmax - _xmin) / (double)(width - 1)) - _ymin) * (_ymax - _ymin); - - painter.drawLine(x, height - 1 - (int)((value + (prev_value - value) / 2.0) * (double)(height - 1)), x, height - 1 - (int)((value + (next_value - value) / 2.0) * (double)(height - 1))); - painter.drawPoint(x, height - 1 - (int)(value * (double)(height - 1))); - } - } - Curve* _curve; - double _xmin; - double _xmax; - double _ymin; - double _ymax; -}; - -InputCurve::InputCurve(QWidget* form, QString label, Curve* value, double xmin, double xmax, double ymin, double ymax, QString xlabel, QString ylabel) : BaseInput(form, label) -{ - _value = value; - _xmin = xmin; - _xmax = xmax; - _ymin = ymin; - _ymax = ymax; - _xlabel = xlabel; - _ylabel = ylabel; - - _preview = new CurveSmallPreview(form, value, xmin, xmax, ymin, ymax); - _preview->setMinimumSize(100, 40); - _control = new QPushButton(tr("Edit"), form); - _control->setMaximumWidth(150); - - connect((QPushButton*)_control, SIGNAL(clicked()), this, SLOT(editCurve())); -} - -void InputCurve::updatePreview() -{ - _preview->update(); - - BaseInput::updatePreview(); -} - -void InputCurve::applyValue() -{ - BaseInput::applyValue(); -} - -void InputCurve::revert() -{ - BaseInput::revert(); -} - -void InputCurve::editCurve() -{ - if (DialogCurve::getCurve(_control, _value, _xmin, _xmax, _ymin, _ymax, _xlabel, _ylabel)) - { - applyValue(); - } -} diff --git a/src/interface/desktop/inputcurve.h b/src/interface/desktop/inputcurve.h deleted file mode 100644 index 9c211c0..0000000 --- a/src/interface/desktop/inputcurve.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef _PAYSAGES_QT_INPUTCURVE_H_ -#define _PAYSAGES_QT_INPUTCURVE_H_ - -#include "desktop_global.h" - -#include -#include "baseinput.h" - -class InputCurve:public BaseInput -{ - Q_OBJECT - -public: - InputCurve(QWidget* form, QString label, Curve* value, double xmin, double xmax, double ymin, double ymax, QString xlabel, QString ylabel); - -public slots: - virtual void updatePreview(); - virtual void applyValue(); - virtual void revert(); - -private slots: - void editCurve(); - -private: - Curve* _value; - double _xmin; - double _xmax; - double _ymin; - double _ymax; - QString _xlabel; - QString _ylabel; -}; - -#endif diff --git a/src/interface/desktop/inputdouble.cpp b/src/interface/desktop/inputdouble.cpp deleted file mode 100644 index 01e6d0e..0000000 --- a/src/interface/desktop/inputdouble.cpp +++ /dev/null @@ -1,76 +0,0 @@ -#include "inputdouble.h" - -#include -#include "math.h" - -InputDouble::InputDouble(QWidget* form, QString label, double* value, double min, double max, double small_step, double large_step): - BaseInput(form, label) -{ - _value = value; - _min = min; - _max = max; - _small_step = small_step; - _large_step = large_step; - - _slider = new QSlider(form); - - _slider->setOrientation(Qt::Horizontal); - _slider->setMinimumWidth(200); - _slider->setMaximumWidth(400); - - _slider->setMinimum(0); - _slider->setMaximum(round((max - min) / small_step)); - _slider->setValue(round((*value - min) / small_step)); - - _slider->setTickInterval(round(large_step / small_step)); - _slider->setTickPosition(QSlider::TicksBelow); - - connect(_slider, SIGNAL(valueChanged(int)), this, SLOT(applyValue())); - - _preview = new QLabel(form); - ((QLabel*)_preview)->setAlignment(Qt::AlignCenter); - _control = _slider; -} - -void InputDouble::updatePreview() -{ - ((QLabel*)_preview)->setText(QString::number(*_value, 'g', 3)); - - BaseInput::updatePreview(); -} - -double InputDouble::getValue() -{ - double result; - int ivalue = _slider->value(); - if (ivalue == _slider->maximum()) - { - result = _max; - } - else - { - result = _min + ((double)ivalue) * _small_step; - } - if (fabs(result) < 0.0000001) - { - result = 0.0; - } - return result; -} - -void InputDouble::applyValue() -{ - *_value = getValue(); - BaseInput::applyValue(); -} - -void InputDouble::revert() -{ - double value = round((*_value - _min) / _small_step); - if (value != _slider->value()) - { - _slider->setValue(value); - } - - BaseInput::revert(); -} diff --git a/src/interface/desktop/inputdouble.h b/src/interface/desktop/inputdouble.h deleted file mode 100644 index 89115c5..0000000 --- a/src/interface/desktop/inputdouble.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef _PAYSAGES_QT_INPUTDOUBLE_H_ -#define _PAYSAGES_QT_INPUTDOUBLE_H_ - -#include -#include -#include "baseinput.h" - -class InputDouble:public BaseInput -{ - Q_OBJECT - -public: - InputDouble(QWidget* form, QString label, double* value, double min, double max, double small_step, double large_step); - -public slots: - virtual void updatePreview(); - virtual void applyValue(); - virtual void revert(); - -protected: - double getValue(); - -private: - QSlider* _slider; - double* _value; - double _min; - double _max; - double _small_step; - double _large_step; -}; - -#endif diff --git a/src/interface/desktop/inputenum.cpp b/src/interface/desktop/inputenum.cpp deleted file mode 100644 index 804ea33..0000000 --- a/src/interface/desktop/inputenum.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "inputenum.h" - -#include -#include - -InputEnum::InputEnum(QWidget* form, QString label, int* value, const QStringList& values) : BaseInput(form, label) -{ - _value = value; - - _preview = new QWidget(form); - _control = new QComboBox(form); - ((QComboBox*)_control)->addItems(values); - - connect(_control, SIGNAL(currentIndexChanged(int)), this, SLOT(applyValue())); -} - -void InputEnum::applyValue() -{ - *_value = ((QComboBox*)_control)->currentIndex(); - - BaseInput::applyValue(); -} - -void InputEnum::revert() -{ - if (*_value != ((QComboBox*)_control)->currentIndex()) - { - ((QComboBox*)_control)->setCurrentIndex(*_value); - } - - BaseInput::revert(); -} diff --git a/src/interface/desktop/inputenum.h b/src/interface/desktop/inputenum.h deleted file mode 100644 index ef3747f..0000000 --- a/src/interface/desktop/inputenum.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef _PAYSAGES_QT_INPUTENUM_H_ -#define _PAYSAGES_QT_INPUTENUM_H_ - -#include -#include -#include "baseinput.h" - -class InputEnum:public BaseInput -{ - Q_OBJECT - -public: - InputEnum(QWidget* form, QString label, int* value, const QStringList& values); - -public slots: - virtual void applyValue(); - virtual void revert(); - -private: - int* _value; -}; - -#endif diff --git a/src/interface/desktop/inputint.cpp b/src/interface/desktop/inputint.cpp deleted file mode 100644 index 15ded3d..0000000 --- a/src/interface/desktop/inputint.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include "inputint.h" - -#include - -InputInt::InputInt(QWidget* form, QString label, int* value, int min, int max, int small_step, int large_step): - InputDouble(form, label, &_dvalue, (double)min, (double)max, (double)small_step, (double)large_step) -{ - _value = value; - _dvalue = (double)(*value); -} - -void InputInt::updatePreview() -{ - ((QLabel*)_preview)->setText(QString("%1").arg(_dvalue, 0, 'f', 0)); -} - -void InputInt::applyValue() -{ - *_value = (int)getValue(); - - InputDouble::applyValue(); -} - -void InputInt::revert() -{ - _dvalue = (double)(*_value); - - InputDouble::revert(); -} diff --git a/src/interface/desktop/inputint.h b/src/interface/desktop/inputint.h deleted file mode 100644 index 493e00d..0000000 --- a/src/interface/desktop/inputint.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef _PAYSAGES_QT_INPUTINT_H_ -#define _PAYSAGES_QT_INPUTINT_H_ - -#include -#include -#include "inputdouble.h" - -class InputInt:public InputDouble -{ - Q_OBJECT - -public: - InputInt(QWidget* form, QString label, int* value, int min, int max, int small_step, int large_step); - -public slots: - virtual void updatePreview(); - virtual void applyValue(); - virtual void revert(); - -private: - int* _value; - double _dvalue; -}; - -#endif diff --git a/src/interface/desktop/inputlayers.cpp b/src/interface/desktop/inputlayers.cpp deleted file mode 100644 index 8ad151b..0000000 --- a/src/interface/desktop/inputlayers.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include "inputlayers.h" - -#include -#include -#include "dialoglayers.h" - -InputLayers::InputLayers(QWidget* form, QString label, Layers* value, FormLayerBuilder form_builder): - BaseInput(form, label) -{ - _value = value; - _form_builder = form_builder; - - _preview = new QLabel(form); - ((QLabel*)_preview)->setAlignment(Qt::AlignCenter); - _control = new QPushButton(tr("Editer"), form); - - connect(_control, SIGNAL(clicked()), this, SLOT(editLayers())); -} - -void InputLayers::updatePreview() -{ - ((QLabel*)_preview)->setText(tr("%1 layers").arg(_value->count())); - - BaseInput::updatePreview(); -} - -void InputLayers::editLayers() -{ - if (DialogLayers::editLayers(_control, _value, _label->text(), _form_builder)) - { - applyValue(); - } -} diff --git a/src/interface/desktop/inputlayers.h b/src/interface/desktop/inputlayers.h deleted file mode 100644 index e66c44f..0000000 --- a/src/interface/desktop/inputlayers.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef _PAYSAGES_QT_INPUTLAYERS_H_ -#define _PAYSAGES_QT_INPUTLAYERS_H_ - -#include -#include "baseinput.h" -#include "dialoglayers.h" -#include "Layers.h" - -class InputLayers:public BaseInput -{ - Q_OBJECT - -public: - InputLayers(QWidget* form, QString label, Layers* value, FormLayerBuilder form_builder); - -public slots: - virtual void updatePreview(); - void editLayers(); - -private: - Layers* _value; - FormLayerBuilder _form_builder; -}; - -#endif diff --git a/src/interface/desktop/inputmaterial.cpp b/src/interface/desktop/inputmaterial.cpp deleted file mode 100644 index 89cd77d..0000000 --- a/src/interface/desktop/inputmaterial.cpp +++ /dev/null @@ -1,47 +0,0 @@ -#include "inputmaterial.h" - -#include -#include -#include -#include - -#include "lighting/DialogMaterialEditor.h" -#include "previewmaterial.h" - -InputMaterial::InputMaterial(QWidget* form, QString label, SurfaceMaterial* value) : BaseInput(form, label) -{ - _value = value; - - _preview = new SmallMaterialPreview(form, value); - _preview->setMinimumSize(100, 40); - - _control = new QPushButton(tr("Edit"), form); - _control->setMaximumWidth(150); - - connect((QPushButton*)_control, SIGNAL(clicked()), this, SLOT(editMaterial())); -} - -void InputMaterial::updatePreview() -{ - _preview->update(); - - BaseInput::updatePreview(); -} - -void InputMaterial::applyValue() -{ - BaseInput::applyValue(); -} - -void InputMaterial::revert() -{ - BaseInput::revert(); -} - -void InputMaterial::editMaterial() -{ - if (DialogMaterialEditor::getMaterial(_control, _value)) - { - applyValue(); - } -} diff --git a/src/interface/desktop/inputmaterial.h b/src/interface/desktop/inputmaterial.h deleted file mode 100644 index c076677..0000000 --- a/src/interface/desktop/inputmaterial.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef _PAYSAGES_QT_INPUTMATERIAL_H_ -#define _PAYSAGES_QT_INPUTMATERIAL_H_ - -#include -#include "baseinput.h" - -class InputMaterial:public BaseInput -{ - Q_OBJECT - -public: - InputMaterial(QWidget* form, QString label, SurfaceMaterial* value); - -public slots: - virtual void updatePreview(); - virtual void applyValue(); - virtual void revert(); - -private slots: - void editMaterial(); - -private: - SurfaceMaterial* _value; -}; - -#endif diff --git a/src/interface/desktop/inputnoise.cpp b/src/interface/desktop/inputnoise.cpp deleted file mode 100644 index 89987f4..0000000 --- a/src/interface/desktop/inputnoise.cpp +++ /dev/null @@ -1,82 +0,0 @@ -#include "inputnoise.h" - -#include -#include -#include -#include - -#include "dialognoise.h" - -class NoiseSmallPreview:public QWidget -{ -public: - NoiseSmallPreview(QWidget* parent, NoiseGenerator* noise): - QWidget(parent), - noise(noise) - { - } - - void paintEvent(QPaintEvent*) - { - if (!noise) - { - return; - } - - QPainter painter(this); - int width = this->width(); - int height = this->height(); - double value, factor; - double minvalue, maxvalue; - - noise->getRange(&minvalue, &maxvalue); - - for (int x = 0; x < width; x++) - { - factor = ((double)(height / 2)) / maxvalue; - value = -noise->get1DTotal(((double)x) / factor) * factor; - painter.setPen(Qt::white); - painter.drawLine(x, 0, x, height / 2 + value); - painter.setPen(Qt::black); - painter.drawLine(x, height / 2 + value + 1, x, height); - } - } - NoiseGenerator* noise; -}; - -InputNoise::InputNoise(QWidget* form, QString label, NoiseGenerator* value): - BaseInput(form, label), - _value(value) -{ - _preview = new NoiseSmallPreview(form, value); - _preview->setMinimumSize(100, 40); - _control = new QPushButton(tr("Edit"), form); - _control->setMaximumWidth(150); - - connect((QPushButton*)_control, SIGNAL(clicked()), this, SLOT(editNoise())); -} - -void InputNoise::updatePreview() -{ - _preview->update(); - - BaseInput::updatePreview(); -} - -void InputNoise::applyValue() -{ - BaseInput::applyValue(); -} - -void InputNoise::revert() -{ - BaseInput::revert(); -} - -void InputNoise::editNoise() -{ - if (DialogNoise::getNoise(_control, _value)) - { - applyValue(); - } -} diff --git a/src/interface/desktop/inputnoise.h b/src/interface/desktop/inputnoise.h deleted file mode 100644 index b071615..0000000 --- a/src/interface/desktop/inputnoise.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef _PAYSAGES_QT_INPUTNOISE_H_ -#define _PAYSAGES_QT_INPUTNOISE_H_ - -#include "desktop_global.h" - -#include "baseinput.h" - -#include -class QWidget; - -class InputNoise:public BaseInput -{ - Q_OBJECT - -public: - InputNoise(QWidget* form, QString label, NoiseGenerator* value); - -public slots: - virtual void updatePreview(); - virtual void applyValue(); - virtual void revert(); - -private slots: - void editNoise(); - -private: - NoiseGenerator* _value; -}; - -#endif diff --git a/src/interface/desktop/lighting/DialogMaterialEditor.cpp b/src/interface/desktop/lighting/DialogMaterialEditor.cpp deleted file mode 100644 index 1e7bcec..0000000 --- a/src/interface/desktop/lighting/DialogMaterialEditor.cpp +++ /dev/null @@ -1,79 +0,0 @@ -#include "DialogMaterialEditor.h" -#include "ui_DialogMaterialEditor.h" - -#include "common/freeformhelper.h" - -DialogMaterialEditor::DialogMaterialEditor(QWidget *parent, SurfaceMaterial* material) : -QDialog(parent), -ui(new Ui::DialogMaterialEditor), -preview_lighted(&edited) -{ - ui->setupUi(this); - - original = material; - edited = *original; - - form_helper = new FreeFormHelper(this); - - form_helper->addPreview(ui->preview_lighted, &preview_lighted); - - form_helper->addDoubleInputSlider(ui->slider_hue, &edited.base.h); - form_helper->addDoubleInputSlider(ui->slider_lightness, &edited.base.l); - form_helper->addDoubleInputSlider(ui->slider_saturation, &edited.base.s); - - form_helper->addDoubleInputSlider(ui->slider_hardness, &edited.hardness); - form_helper->addDoubleInputSlider(ui->slider_reflection, &edited.reflection); - form_helper->addDoubleInputSlider(ui->slider_specularity, &edited.shininess); - - form_helper->addDoubleInputSlider(ui->slider_receive_shadows, &edited.receive_shadows); - - form_helper->setRevertButton(ui->button_revert); - - form_helper->startManaging(); - - ui->preview_color->setColor(&edited._rgb); - - connect(ui->button_apply, SIGNAL(clicked()), this, SLOT(accept())); - connect(ui->button_cancel, SIGNAL(clicked()), this, SLOT(reject())); -} - -DialogMaterialEditor::~DialogMaterialEditor() -{ - delete form_helper; - delete ui; -} - -bool DialogMaterialEditor::getMaterial(QWidget* parent, SurfaceMaterial* material) -{ - DialogMaterialEditor dialog(parent, material); - bool validated = dialog.exec() != 0; - if (validated) - { - *material = dialog.edited; - } - return validated; -} - -void DialogMaterialEditor::refreshFromLocalData() -{ - edited.validate(); - ui->preview_color->update(); -} - -void DialogMaterialEditor::refreshFromFellowData() -{ -} - -void DialogMaterialEditor::updateLocalDataFromScenery() -{ - // Revert - edited = *original; -} - -void DialogMaterialEditor::commitLocalDataToScenery() -{ -} - -void DialogMaterialEditor::alterRenderer(SoftwareRenderer*) -{ -} diff --git a/src/interface/desktop/lighting/DialogMaterialEditor.h b/src/interface/desktop/lighting/DialogMaterialEditor.h deleted file mode 100644 index 0e73751..0000000 --- a/src/interface/desktop/lighting/DialogMaterialEditor.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef DIALOGMATERIALEDITOR_H -#define DIALOGMATERIALEDITOR_H - -#include "desktop_global.h" - -#include - -#include "previewmaterial.h" -#include "SurfaceMaterial.h" - -namespace Ui { -class DialogMaterialEditor; -} - -class FreeFormHelper; - -class DialogMaterialEditor : public QDialog -{ - Q_OBJECT - -public: - DialogMaterialEditor(QWidget *parent, SurfaceMaterial* material); - ~DialogMaterialEditor(); - - static bool getMaterial(QWidget* parent, SurfaceMaterial* material); - -public slots: - void refreshFromLocalData(); - void refreshFromFellowData(); - void updateLocalDataFromScenery(); - void commitLocalDataToScenery(); - void alterRenderer(SoftwareRenderer* renderer); - -private: - Ui::DialogMaterialEditor *ui; - - SurfaceMaterial* original; - SurfaceMaterial edited; - - MaterialPreviewRenderer preview_lighted; - - FreeFormHelper* form_helper; -}; - -#endif // DIALOGMATERIALEDITOR_H diff --git a/src/interface/desktop/lighting/DialogMaterialEditor.ui b/src/interface/desktop/lighting/DialogMaterialEditor.ui deleted file mode 100644 index 2cd6599..0000000 --- a/src/interface/desktop/lighting/DialogMaterialEditor.ui +++ /dev/null @@ -1,416 +0,0 @@ - - - DialogMaterialEditor - - - Qt::ApplicationModal - - - - 0 - 0 - 1139 - 627 - - - - Paysages 3D - Material editor - - - true - - - - - - 20 - - - - - Material diffusion - - - true - - - - - - - true - - - - This controls the way the surface diffuses its inner color in all directions, when a light source reaches it - - - - - - - QFormLayout::AllNonFixedFieldsGrow - - - - - Base color - - - - - - - - - - 80 - 30 - - - - - - - - - - Qt::Horizontal - - - - - - - - 600 - 40 - - - - - - - - - - - - Colorfulness (saturation) - - - - - - - Qt::Horizontal - - - - - - - Diffuse factor (lightness) - - - - - - - Qt::Horizontal - - - - - - - Hardness to light - - - - - - - Qt::Horizontal - - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Light reflection - - - true - - - - - - - true - - - - Amount and direction of light that is directly reflected from an incoming source (useful for shiny things) - - - - - - - - - Reflection factor - - - - - - - Specularity - - - - - - - Qt::Horizontal - - - - - - - Qt::Horizontal - - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Ambient lighting - - - true - - - - - - - true - - - - Influence of the environment on the material color - - - - - - - - - Receive shadows - - - - - - - Qt::Horizontal - - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - Qt::Vertical - - - - - - - - - Lighted preview - - - true - - - - - - - 0 - 0 - - - - - 200 - 200 - - - - - 200 - 200 - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - Actions - - - true - - - - - - Cancel - - - - :/buttons/logo/images/cancel.png:/buttons/logo/images/cancel.png - - - - - - - Revert - - - - :/buttons/logo/images/revert.png:/buttons/logo/images/revert.png - - - - - - - Ok - - - - :/buttons/logo/images/apply.png:/buttons/logo/images/apply.png - - - - - - - - - - - - - BasePreview - QWidget -
BasePreview.h
- 1 -
- - WidgetSliderDecimal - QSlider -
common/widgetsliderdecimal.h
-
- - SmallPreviewColor - QWidget -
lighting/SmallPreviewColor.h
- 1 -
- - SmallPreviewHues - QWidget -
lighting/SmallPreviewHues.h
- 1 -
-
- - - - -
diff --git a/src/interface/desktop/lighting/SmallPreviewColor.cpp b/src/interface/desktop/lighting/SmallPreviewColor.cpp deleted file mode 100644 index 3362536..0000000 --- a/src/interface/desktop/lighting/SmallPreviewColor.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include "SmallPreviewColor.h" - -#include - -#include "tools.h" - -SmallPreviewColor::SmallPreviewColor(QWidget* parent, Color* color) : DrawingWidget(parent) -{ - _color = color; -} - -void SmallPreviewColor::setColor(Color* color) -{ - _color = color; - update(); -} - -void SmallPreviewColor::doDrawing(QPainter* painter) -{ - if (_color) - { - painter->fillRect(rect(), colorToQColor(*_color)); - } -} diff --git a/src/interface/desktop/lighting/SmallPreviewColor.h b/src/interface/desktop/lighting/SmallPreviewColor.h deleted file mode 100644 index ccc643f..0000000 --- a/src/interface/desktop/lighting/SmallPreviewColor.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef SMALLPREVIEWCOLOR_H -#define SMALLPREVIEWCOLOR_H - -#include "software_global.h" - -#include "DrawingWidget.h" - -class SmallPreviewColor: public DrawingWidget -{ - Q_OBJECT -public: - SmallPreviewColor(QWidget* parent, Color* color = 0); - void setColor(Color* color); -protected: - virtual void doDrawing(QPainter* painter); -private: - Color* _color; -}; - -#endif /* SMALLPREVIEWCOLOR_H */ - diff --git a/src/interface/desktop/lighting/SmallPreviewHues.cpp b/src/interface/desktop/lighting/SmallPreviewHues.cpp deleted file mode 100644 index bd7a2d1..0000000 --- a/src/interface/desktop/lighting/SmallPreviewHues.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include "SmallPreviewHues.h" - -#include - -#include "tools.h" -#include "ColorHSL.h" - -SmallPreviewHues::SmallPreviewHues(QWidget* parent) : DrawingWidget(parent) -{ -} - -void SmallPreviewHues::doDrawing(QPainter* painter) -{ - int x; - ColorHSL colhsl; - - colhsl.s = 1.0; - colhsl.l = 0.5; - colhsl.a = 1.0; - - for (x = 0; x < width(); x++) - { - colhsl.h = (double)x / (double)(width() - 1); - painter->setPen(colorToQColor(colorFromHSL(colhsl))); - painter->drawLine(x, 0, x, height() - 1); - } -} diff --git a/src/interface/desktop/lighting/SmallPreviewHues.h b/src/interface/desktop/lighting/SmallPreviewHues.h deleted file mode 100644 index 831d260..0000000 --- a/src/interface/desktop/lighting/SmallPreviewHues.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef SMALLPREVIEWHUES_H -#define SMALLPREVIEWHUES_H - -#include "DrawingWidget.h" - -class SmallPreviewHues: public DrawingWidget -{ - Q_OBJECT -public: - SmallPreviewHues(QWidget* parent); -protected: - virtual void doDrawing(QPainter* painter); -}; - -#endif /* SMALLPREVIEWHUES_H */ - diff --git a/src/interface/desktop/previewmaterial.cpp b/src/interface/desktop/previewmaterial.cpp deleted file mode 100644 index ac7c08e..0000000 --- a/src/interface/desktop/previewmaterial.cpp +++ /dev/null @@ -1,118 +0,0 @@ -#include "previewmaterial.h" - -#include -#include -#include "tools.h" -#include "SoftwareRenderer.h" -#include "BasePreview.h" -#include "CameraDefinition.h" -#include "ColorProfile.h" -#include "LightComponent.h" -#include "LightingManager.h" - -/***** Shared renderer *****/ -MaterialPreviewRenderer::MaterialPreviewRenderer(SurfaceMaterial* material) -{ - _light = new LightComponent; - _light->color.r = 3.0; - _light->color.g = 3.0; - _light->color.b = 3.0; - _light->direction.x = -0.5; - _light->direction.y = -0.5; - _light->direction.z = -0.5; - _light->direction = _light->direction.normalize(); - _light->altered = 0; - _light->reflection = 1.0; - - _material = material; - - render_camera->setLocation(Vector3(0.0, 0.0, 10.0)); - - _color_profile = new ColorProfile; - _color_profile->setToneMapping(ColorProfile::TONE_MAPPING_UNCHARTED, 1.0); -} - -MaterialPreviewRenderer::~MaterialPreviewRenderer() -{ - delete _color_profile; - delete _light; -} - -void MaterialPreviewRenderer::bindEvent(BasePreview* preview) -{ - preview->configScaling(0.05, 2.0, 0.05, 2.0); -} - -Color MaterialPreviewRenderer::getColor2D(double x, double y, double) -{ - double dist = sqrt(x * x + y * y); - Vector3 point; - Color color; - - if (dist >= 1.0) - { - return COLOR_TRANSPARENT; - } - else - { - point.x = x; - point.y = -y; - if (dist == 0) - { - point.z = 1.0; - } - else - { - point.z = fabs(acos(dist)); - } - - point = point.normalize(); - color = getLightingManager()->applyFinalComponent(*_light, getCameraLocation(point), point, point, *_material); - if (dist > 0.95) - { - color.a = (1.0 - dist) / 0.05; - } - return _color_profile->apply(color); - } -} - -/***** Small static preview *****/ - -SmallMaterialPreview::SmallMaterialPreview(QWidget* parent, SurfaceMaterial* material): -QWidget(parent), -_renderer(material) -{ -} - -Color SmallMaterialPreview::getColor(double x, double y) -{ - return _renderer.getColor2D(x, y, 1.0); -} - -void SmallMaterialPreview::paintEvent(QPaintEvent*) -{ - QPainter painter(this); - int width = this->width(); - int height = this->height(); - double factor, dx, dy; - - if (width > height) - { - factor = 2.0 / (double) height; - } - else - { - factor = 2.0 / (double) width; - } - dx = factor * (double) width / 2.0; - dy = factor * (double) height / 2.0; - - for (int x = 0; x < width; x++) - { - for (int y = 0; y < height; y++) - { - painter.setPen(colorToQColor(_renderer.getColor2D((double) x * factor - dx, (double) y * factor - dy, 1.0))); - painter.drawPoint(x, y); - } - } -} diff --git a/src/interface/desktop/previewmaterial.h b/src/interface/desktop/previewmaterial.h deleted file mode 100644 index 3a01fd1..0000000 --- a/src/interface/desktop/previewmaterial.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef _PAYSAGES_QT_PREVIEWMATERIAL_H_ -#define _PAYSAGES_QT_PREVIEWMATERIAL_H_ - -#include "desktop_global.h" - -#include "Base2dPreviewRenderer.h" -#include - -class MaterialPreviewRenderer:public Base2dPreviewRenderer { -public: - MaterialPreviewRenderer(SurfaceMaterial* material); - virtual ~MaterialPreviewRenderer(); - - virtual void bindEvent(BasePreview* preview); - virtual Color getColor2D(double x, double y, double scaling); - -private: - SurfaceMaterial* _material; - LightComponent* _light; - ColorProfile* _color_profile; -}; - -class SmallMaterialPreview:public QWidget -{ -public: - SmallMaterialPreview(QWidget* parent, SurfaceMaterial* material); - - Color getColor(double x, double y); - -protected: - virtual void paintEvent(QPaintEvent* event); - -private: - MaterialPreviewRenderer _renderer; -}; - -#endif diff --git a/src/interface/desktop/terrain/dialogbaseterrainnoise.cpp b/src/interface/desktop/terrain/dialogbaseterrainnoise.cpp deleted file mode 100644 index 8cf7c20..0000000 --- a/src/interface/desktop/terrain/dialogbaseterrainnoise.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include "dialogbaseterrainnoise.h" -#include "ui_dialogbaseterrainnoise.h" - -#include "NoiseGenerator.h" - -DialogBaseTerrainNoise::DialogBaseTerrainNoise(QWidget *parent) : - QDialog(parent), - ui(new Ui::DialogBaseTerrainNoise) -{ - ui->setupUi(this); - - _original = 0; - _modified = new NoiseGenerator(); -} - -DialogBaseTerrainNoise::~DialogBaseTerrainNoise() -{ - delete ui; - delete _modified; -} - -void DialogBaseTerrainNoise::setNoise(NoiseGenerator* noise) -{ - _original = noise; - noise->copy(_modified); -} - -int DialogBaseTerrainNoise::editNoise(QWidget* parent, NoiseGenerator* noise) -{ - DialogBaseTerrainNoise dialog(parent); - dialog.setNoise(noise); - return dialog.exec(); -} diff --git a/src/interface/desktop/terrain/dialogbaseterrainnoise.h b/src/interface/desktop/terrain/dialogbaseterrainnoise.h deleted file mode 100644 index 51d9c7c..0000000 --- a/src/interface/desktop/terrain/dialogbaseterrainnoise.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef DIALOGBASETERRAINNOISE_H -#define DIALOGBASETERRAINNOISE_H - -#include "desktop_global.h" -#include - -namespace paysages { -namespace basics { - class NoiseGenerator; -} -} - -namespace Ui { - class DialogBaseTerrainNoise; -} - -class DialogBaseTerrainNoise : public QDialog -{ - Q_OBJECT - -public: - explicit DialogBaseTerrainNoise(QWidget *parent = 0); - ~DialogBaseTerrainNoise(); - - void setNoise(NoiseGenerator* noise); - - static int editNoise(QWidget* parent, NoiseGenerator* noise); - -private: - Ui::DialogBaseTerrainNoise *ui; - NoiseGenerator* _original; - NoiseGenerator* _modified; -}; - -#endif // DIALOGBASETERRAINNOISE_H diff --git a/src/interface/desktop/terrain/dialogbaseterrainnoise.ui b/src/interface/desktop/terrain/dialogbaseterrainnoise.ui deleted file mode 100644 index 57b1add..0000000 --- a/src/interface/desktop/terrain/dialogbaseterrainnoise.ui +++ /dev/null @@ -1,43 +0,0 @@ - - - DialogBaseTerrainNoise - - - Qt::ApplicationModal - - - - 0 - 0 - 400 - 300 - - - - Paysages 3D - Base terrain noise - - - true - - - - - - - - - - WidgetGlobalFormButtons - QWidget -
common/widgetglobalformbuttons.h
- 1 - - okClicked() - revertClicked() - cancelClicked() - -
-
- - -
diff --git a/src/interface/desktop/terrain/dialogterrainpainting.cpp b/src/interface/desktop/terrain/dialogterrainpainting.cpp deleted file mode 100644 index c617ebe..0000000 --- a/src/interface/desktop/terrain/dialogterrainpainting.cpp +++ /dev/null @@ -1,126 +0,0 @@ -#include "dialogterrainpainting.h" -#include "ui_dialogterrainpainting.h" - -#include -#include -#include -#include "tools.h" -#include "TerrainDefinition.h" - -DialogTerrainPainting::DialogTerrainPainting(QWidget*parent, TerrainDefinition* terrain) : - QDialog(parent), - ui(new Ui::DialogTerrainPainting) -{ - ui->setupUi(this); - - // TEMP - ui->brush_preview->hide(); - - _terrain_original = terrain; - _terrain_modified = new TerrainDefinition(NULL); - - ui->widget_commands->hide(); - - revert(); - - brushConfigChanged(); -} - -DialogTerrainPainting::~DialogTerrainPainting() -{ - delete ui; -} - -void DialogTerrainPainting::keyReleaseEvent(QKeyEvent* event) -{ - switch (event->key()) - { - case Qt::Key_F2: - ui->input_brush_mode->setCurrentIndex(0); - event->accept(); - break; - case Qt::Key_F3: - ui->input_brush_mode->setCurrentIndex(1); - event->accept(); - break; - case Qt::Key_F4: - ui->input_brush_mode->setCurrentIndex(2); - event->accept(); - break; - case Qt::Key_F12: - ui->input_brush_mode->setCurrentIndex(3); - event->accept(); - break; - default: - QDialog::keyReleaseEvent(event); - } -} - -void DialogTerrainPainting::wheelEvent(QWheelEvent* event) -{ - if (event->modifiers() & Qt::ControlModifier) - { - ui->input_brush_size->setValue(ui->input_brush_size->value() + (event->delta() > 0 ? 1 : -1)); - event->accept(); - } - else if (event->modifiers() & Qt::ShiftModifier) - { - ui->input_brush_strength->setValue(ui->input_brush_strength->value() + (event->delta() > 0 ? 1 : -1)); - event->accept(); - } - else if (event->modifiers() & Qt::AltModifier) - { - ui->input_brush_smoothing->setValue(ui->input_brush_smoothing->value() + (event->delta() > 0 ? 1 : -1)); - event->accept(); - } - else - { - event->ignore(); - } -} - -void DialogTerrainPainting::accept() -{ - _terrain_modified->copy(_terrain_original); - QDialog::accept(); -} - -void DialogTerrainPainting::revert() -{ - _terrain_original->copy(_terrain_modified); - - ui->widget_heightmap->setTerrain(_terrain_modified); - ui->widget_heightmap->setBrush(&_brush); -} - -void DialogTerrainPainting::brushConfigChanged() -{ - // Fill brush object - _brush.setMode((PaintingBrushMode) ui->input_brush_mode->currentIndex()); - _brush.setSize(ui->input_brush_size); - _brush.setSmoothing(ui->input_brush_smoothing); - _brush.setStrength(ui->input_brush_strength); - - // Update brush description - ui->label_brush_description->setText(getHelpText()); - - // Update brush preview - // TODO - - // Tell to 3D widget - ui->widget_heightmap->setBrush(&_brush); -} - -void DialogTerrainPainting::heightmapChanged() -{ - unsigned long memused = _terrain_modified->getMemoryStats(); - ui->label_memory_consumption->setText(tr("Memory used: %1").arg(getHumanMemory(memused))); - ui->progress_memory_consumption->setMaximum(1024); - ui->progress_memory_consumption->setValue(memused / 1024); -} - -QString DialogTerrainPainting::getHelpText() -{ - QString result = _brush.getHelpText(); - return result; -} diff --git a/src/interface/desktop/terrain/dialogterrainpainting.h b/src/interface/desktop/terrain/dialogterrainpainting.h deleted file mode 100644 index 32af262..0000000 --- a/src/interface/desktop/terrain/dialogterrainpainting.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef DIALOGTERRAINPAINTING_H -#define DIALOGTERRAINPAINTING_H - -#include "desktop_global.h" - -#include -#include "paintingbrush.h" - -namespace Ui { -class DialogTerrainPainting; -} - -class DialogTerrainPainting : public QDialog -{ - Q_OBJECT - -public: - explicit DialogTerrainPainting(QWidget *parent, TerrainDefinition* terrain); - ~DialogTerrainPainting(); - -protected: - virtual void keyReleaseEvent(QKeyEvent* event); - virtual void wheelEvent(QWheelEvent* event); - -public slots: - void brushConfigChanged(); - void heightmapChanged(); - virtual void accept(); - void revert(); - -private: - QString getHelpText(); - - Ui::DialogTerrainPainting *ui; - - TerrainDefinition* _terrain_modified; - TerrainDefinition* _terrain_original; - PaintingBrush _brush; -}; - -#endif // DIALOGTERRAINPAINTING_H diff --git a/src/interface/desktop/terrain/dialogterrainpainting.ui b/src/interface/desktop/terrain/dialogterrainpainting.ui deleted file mode 100644 index bef6f50..0000000 --- a/src/interface/desktop/terrain/dialogterrainpainting.ui +++ /dev/null @@ -1,993 +0,0 @@ - - - DialogTerrainPainting - - - - 0 - 0 - 1145 - 777 - - - - - 0 - 0 - - - - Paysages 3D - Terrain painting - - - true - - - true - - - - - - - - - 1 - 1 - - - - - QLayout::SetDefaultConstraint - - - - - 20 - - - - - Display : - - - - - - - Water - - - true - - - - - - - Grid - - - true - - - - - - - Painted area - - - true - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Commands - - - - :/buttons/logo/images/about.png:/buttons/logo/images/about.png - - - - 16 - 16 - - - - F1 - - - true - - - false - - - false - - - - - - - - - - - - - - - - 0 - 0 - - - - Shortcuts - - - true - - - - - - 16 - - - - - Switch to raise/lower tool - - - true - - - - - - - - 75 - true - - - - F3 - - - true - - - - - - - Show these commands - - - true - - - - - - - - 75 - true - - - - F4 - - - true - - - - - - - - 75 - true - - - - F1 - - - true - - - - - - - - 75 - true - - - - F2 - - - true - - - - - - - Switch to noise/smooth tool - - - true - - - - - - - Switch to flatten tool - - - true - - - - - - - - 75 - true - - - - F12 - - - true - - - - - - - Switch to restore tool - - - true - - - - - - - - - - - - Qt::Vertical - - - - - - - - 0 - 0 - - - - Brush control - - - true - - - - - - 16 - - - - - Set brush smoothing - - - true - - - - - - - - 75 - true - - - - SHIFT + Mouse wheel - - - true - - - - - - - Set brush size - - - true - - - - - - - - 75 - true - - - - CTRL + Mouse wheel - - - true - - - - - - - - 75 - true - - - - ALT + Mouse wheel - - - true - - - - - - - Set brush strength - - - true - - - - - - - - - - - - Qt::Vertical - - - - - - - - 0 - 0 - - - - Camera control - - - true - - - - - - 16 - - - - - - 75 - true - - - - Mouse wheel - - - true - - - - - - - - 75 - true - - - - Borders - - - true - - - - - - - Scroll view - - - true - - - - - - - Zoom - - - true - - - - - - - - - - - - - - - - 1 - 1 - - - - - 400 - 400 - - - - - - - - - - - - 450 - 16777215 - - - - - - - - - - QFormLayout::AllNonFixedFieldsGrow - - - - - Brush Tool : - - - - - - - - Raise / Lower (F2) - - - - - Add noise / Smooth (F3) - - - - - Flatten terrain (F4) - - - - - Restore to base shape (F12) - - - - - - - - Brush size : - - - - - - - 100 - - - 40 - - - Qt::Horizontal - - - - - - - Brush smoothing : - - - - - - - 100 - - - 100 - - - Qt::Horizontal - - - - - - - Brush strength : - - - - - - - 100 - - - 20 - - - Qt::Horizontal - - - - - - - - - - 0 - 100 - - - - QFrame::Panel - - - QFrame::Sunken - - - { Brush information } - - - Qt::RichText - - - true - - - 20 - - - - - - - - 8 - - - - - Brush preview : - - - - - - - - 200 - 200 - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - - - - - QLayout::SetDefaultConstraint - - - - - - 150 - 16777215 - - - - 24 - - - false - - - - - - - { memory consumption } - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - 100 - 30 - - - - - - - - - - - WidgetGlobalFormButtons - QWidget -
common/widgetglobalformbuttons.h
- 1 - - okClicked() - revertClicked() - cancelClicked() - -
- - WidgetHeightMap - QWidget -
terrain/widgetheightmap.h
- 1 - - heightmapChanged() - toggleWater(bool) - toggleGrid(bool) - togglePaintedArea(bool) - -
-
- - input_brush_mode - input_brush_size - input_brush_smoothing - input_brush_strength - - - - - - - input_brush_smoothing - valueChanged(int) - DialogTerrainPainting - brushConfigChanged() - - - 919 - 94 - - - 437 - 102 - - - - - input_brush_mode - currentIndexChanged(int) - DialogTerrainPainting - brushConfigChanged() - - - 1115 - 53 - - - 437 - 40 - - - - - input_brush_strength - valueChanged(int) - DialogTerrainPainting - brushConfigChanged() - - - 1115 - 143 - - - 437 - 132 - - - - - input_brush_size - valueChanged(int) - DialogTerrainPainting - brushConfigChanged() - - - 919 - 73 - - - 437 - 72 - - - - - widget_4 - cancelClicked() - DialogTerrainPainting - reject() - - - 1134 - 766 - - - 711 - 597 - - - - - widget_4 - okClicked() - DialogTerrainPainting - accept() - - - 1134 - 766 - - - 683 - 597 - - - - - widget_4 - revertClicked() - DialogTerrainPainting - revert() - - - 1134 - 766 - - - 747 - 597 - - - - - checkBox - toggled(bool) - widget_heightmap - toggleWater(bool) - - - 153 - 43 - - - 58 - 480 - - - - - checkBox_2 - toggled(bool) - widget_heightmap - toggleGrid(bool) - - - 234 - 43 - - - 121 - 463 - - - - - widget_heightmap - heightmapChanged() - DialogTerrainPainting - heightmapChanged() - - - 465 - 523 - - - 481 - 569 - - - - - pushButton - toggled(bool) - widget_commands - setVisible(bool) - - - 734 - 40 - - - 536 - 104 - - - - - checkBox_3 - toggled(bool) - widget_heightmap - togglePaintedArea(bool) - - - 307 - 33 - - - 377 - 519 - - - - - - brushConfigChanged() - heightmapChanged() - revert() - displayCommands() - -
diff --git a/src/interface/desktop/terrain/mainterrainform.cpp b/src/interface/desktop/terrain/mainterrainform.cpp deleted file mode 100644 index 94bb0a1..0000000 --- a/src/interface/desktop/terrain/mainterrainform.cpp +++ /dev/null @@ -1,135 +0,0 @@ -#include "mainterrainform.h" -#include "ui_mainterrainform.h" - -#include -#include "dialogbaseterrainnoise.h" -#include "dialogterrainpainting.h" -#include "TerrainShapePreviewRenderer.h" -#include "common/freeformhelper.h" -#include "tools.h" -#include "DesktopScenery.h" -#include "TexturesDefinition.h" -#include "TerrainDefinition.h" -#include "TerrainHeightMap.h" - -MainTerrainForm::MainTerrainForm(QWidget *parent) : - QWidget(parent), - ui(new Ui::MainTerrainForm) -{ - _terrain = new TerrainDefinition(NULL); - - ui->setupUi(this); - - // TEMP - ui->button_dialog_basenoise->hide(); - - _form_helper = new FreeFormHelper(this); - - _renderer_shape = new TerrainShapePreviewRenderer(_terrain); - _form_helper->addPreview(ui->preview_shape, _renderer_shape); - - _form_helper->addDoubleInputSlider(ui->input_scaling, &_terrain->scaling, 0.1, 3.0, 0.03, 0.3); - _form_helper->addDoubleInputSlider(ui->input_height, &_terrain->height, 1.0, 90.0, 0.5, 5.0); - _form_helper->addDoubleInputSlider(ui->input_shadow_smoothing, &_terrain->shadow_smoothing, 0.0, 0.3, 0.003, 0.03); - _form_helper->addDoubleInputSlider(ui->input_water_height, &_terrain->water_height, -1.0, 1.0, 0.01, 0.1); - - _form_helper->setApplyButton(ui->button_apply); - _form_helper->setRevertButton(ui->button_revert); - _form_helper->setExploreButton(ui->button_explore); - _form_helper->setRenderButton(ui->button_render); - - connect(ui->button_dialog_basenoise, SIGNAL(clicked()), this, SLOT(buttonBaseNoisePressed())); - connect(ui->button_dialog_painting, SIGNAL(clicked()), this, SLOT(buttonPaintingPressed())); - connect(ui->button_goto_textures, SIGNAL(clicked()), this, SLOT(buttonTexturesPressed())); - - _form_helper->startManaging(); -} - -MainTerrainForm::~MainTerrainForm() -{ - delete _form_helper; - delete ui; - delete _renderer_shape; - - delete _terrain; -} - -void MainTerrainForm::refreshFromLocalData() -{ - unsigned long memused = _terrain->getMemoryStats(); - if (memused > 0) - { - _form_helper->setLabelText(ui->label_painting_info, tr("Memory used by sculpted data: %1").arg(getHumanMemory(memused))); - } - else - { - _form_helper->setLabelText(ui->label_painting_info, tr("No manual scuplting done")); - } - - ui->widget_base_noise_preview->setNoise(_terrain->_height_noise); -} - -void MainTerrainForm::refreshFromFellowData() -{ - double disp = DesktopScenery::getCurrent()->getTextures()->getMaximalDisplacement(); - - if (disp == 0.0) - { - ui->label_info_textures->setText(tr("No displacement textures")); - } - else - { - HeightInfo info = DesktopScenery::getCurrent()->getTerrain()->getHeightInfo(); - double terrain_height = info.max_height - info.min_height; - ui->label_info_textures->setText(tr("Maximal displacement : %1% of total height").arg(100.0 * disp / terrain_height, 0, 'f', 1)); - } -} - -void MainTerrainForm::updateLocalDataFromScenery() -{ - DesktopScenery::getCurrent()->getTerrain(_terrain); -} - -void MainTerrainForm::commitLocalDataToScenery() -{ - DesktopScenery::getCurrent()->setTerrain(_terrain); -} - -void MainTerrainForm::alterRenderer(SoftwareRenderer* renderer) -{ - renderer->getScenery()->setTerrain(_terrain); - renderer->prepare(); -} - -void MainTerrainForm::buttonBaseNoisePressed() -{ - int erase; - if (_terrain->getMemoryStats() > 0) - { - erase = QMessageBox::question(this, tr("Paysages 3D - Base noise edition"), tr("You have manual modifications on this terrain, regenerating base noise may produce weird results."), tr("Keep my changes anyway"), tr("Erase my changes")); - } - else - { - erase = 0; - } - - if (DialogBaseTerrainNoise::editNoise(this, _terrain->_height_noise)) - { - if (erase) - { - _terrain->height_map->clearPainting(); - } - } -} - -void MainTerrainForm::buttonPaintingPressed() -{ - DialogTerrainPainting dialog(this, _terrain); - _form_helper->openDialog(&dialog); -} - -void MainTerrainForm::buttonTexturesPressed() -{ - // Switch to textures tab - _form_helper->gotoMainTab(1); -} diff --git a/src/interface/desktop/terrain/mainterrainform.h b/src/interface/desktop/terrain/mainterrainform.h deleted file mode 100644 index e10445a..0000000 --- a/src/interface/desktop/terrain/mainterrainform.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef MAINTERRAINFORM_H -#define MAINTERRAINFORM_H - -#include "desktop_global.h" - -#include - -class FreeFormHelper; - -namespace Ui { -class MainTerrainForm; -} - -class MainTerrainForm : public QWidget -{ - Q_OBJECT - -public: - explicit MainTerrainForm(QWidget *parent = 0); - ~MainTerrainForm(); - - inline TerrainDefinition* getTerrainDefinition() {return _terrain;} - -public slots: - void refreshFromLocalData(); - void refreshFromFellowData(); - void updateLocalDataFromScenery(); - void commitLocalDataToScenery(); - void alterRenderer(SoftwareRenderer* renderer); - - void buttonBaseNoisePressed(); - void buttonPaintingPressed(); - void buttonTexturesPressed(); - -private: - Ui::MainTerrainForm *ui; - FreeFormHelper* _form_helper; - - TerrainDefinition* _terrain; - - Base2dPreviewRenderer* _renderer_shape; -}; - -#endif // MAINTERRAINFORM_H diff --git a/src/interface/desktop/terrain/mainterrainform.ui b/src/interface/desktop/terrain/mainterrainform.ui deleted file mode 100644 index fdfe52d..0000000 --- a/src/interface/desktop/terrain/mainterrainform.ui +++ /dev/null @@ -1,538 +0,0 @@ - - - MainTerrainForm - - - - 0 - 0 - 1181 - 693 - - - - Terrain editor - - - - - - 20 - - - - - Infinite base shape - - - true - - - - - - <html><head/><body><p><span style=" font-style:italic;">This is the base shape for your landscape, infinitely generated from a random mathematical function. You can then customize this raw shape by sculpting it, and adding displacement textures.</span></p></body></html> - - - false - - - true - - - - - - - - - Generate base noise - - - false - - - - - - - - 1 - 0 - - - - - 500 - 80 - - - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Manual modifications - - - true - - - - - - - - - 0 - 0 - - - - Sculpt the terrain shape - - - - - - - - 0 - 0 - - - - { heightmap info } - - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Global modifiers - - - true - - - - - - <html><head/><body><p><span style=" font-style:italic;">These modifiers change the base shape and manual modifications altogether.</span></p></body></html> - - - Qt::RichText - - - - - - - QFormLayout::AllNonFixedFieldsGrow - - - - - Scaling - - - - - - - - 400 - 16777215 - - - - Qt::Horizontal - - - - - - - Height - - - - - - - - 400 - 16777215 - - - - Qt::Horizontal - - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Rendering control - - - true - - - - - - QFormLayout::AllNonFixedFieldsGrow - - - - - Shadow smoothing - - - - - - - - 400 - 16777215 - - - - Qt::Horizontal - - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Links to other modules - - - true - - - - - - - - - - QFormLayout::AllNonFixedFieldsGrow - - - - - Relative water height - - - - - - - - 450 - 0 - - - - - 400 - 16777215 - - - - 499 - - - 50 - - - Qt::Horizontal - - - - - - - - - - - - 0 - 0 - - - - - 500 - 16777215 - - - - Go to textures to add relief effect (rocks...) - - - - - - - { textures info } - - - - - - - - - - - - 1 - 0 - - - - - 200 - 0 - - - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - Qt::Vertical - - - - - - - - - Result preview - - - true - - - - - - - 0 - 0 - - - - - 200 - 200 - - - - - 200 - 200 - - - - - - - - Render preview - - - - :/buttons/logo/images/render.png:/buttons/logo/images/render.png - - - - - - - Explore in 3D - - - - :/buttons/logo/images/explore.png:/buttons/logo/images/explore.png - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - Actions - - - true - - - - - - Revert modifications - - - - :/buttons/logo/images/revert.png:/buttons/logo/images/revert.png - - - - - - - Apply modifications - - - - :/buttons/logo/images/apply.png:/buttons/logo/images/apply.png - - - - - - - - - - - - - BasePreview - QWidget -
BasePreview.h
- 1 -
- - WidgetSliderDecimal - QSlider -
common/widgetsliderdecimal.h
-
- - WidgetTerrainBaseNoisePreview - QWidget -
terrain/widgetterrainbasenoisepreview.h
- 1 -
-
- - - - -
diff --git a/src/interface/desktop/terrain/paintingbrush.cpp b/src/interface/desktop/terrain/paintingbrush.cpp deleted file mode 100644 index 3ab10df..0000000 --- a/src/interface/desktop/terrain/paintingbrush.cpp +++ /dev/null @@ -1,151 +0,0 @@ -#include "paintingbrush.h" - -#include -#include -#include "NoiseGenerator.h" -#include "TerrainDefinition.h" -#include "TerrainHeightMap.h" -#include "PaintedGridBrush.h" - -PaintingBrush::PaintingBrush() -{ - _mode = PAINTING_BRUSH_RAISE; - _size = 0.0; - _smoothing = 0.0; - _strength = 0.0; - _height = 0.0; - _noise = new NoiseGenerator(); - _noise->addLevelsSimple(10, 1.0, -0.5, 0.5, 0.5); -} - -PaintingBrush::~PaintingBrush() -{ - delete _noise; -} - -void PaintingBrush::setMode(PaintingBrushMode mode) -{ - _mode = mode; -} - -void PaintingBrush::setSize(double value) -{ - _size = value; -} - -void PaintingBrush::setSize(QAbstractSlider* slider) -{ - double value = (double)slider->value() / (double)slider->maximum(); - setSize(2.0 + value * value * 28.0); -} - -void PaintingBrush::setSmoothing(double value) -{ - _smoothing = value; -} - -void PaintingBrush::setSmoothing(QAbstractSlider* slider) -{ - setSmoothing((double)slider->value() / (double)slider->maximum()); -} - -void PaintingBrush::setStrength(double value) -{ - _strength = value; -} - -void PaintingBrush::setStrength(QAbstractSlider* slider) -{ - setStrength(0.1 + 0.9 * (double)slider->value() / (double)slider->maximum()); -} - -void PaintingBrush::randomizeNoise() -{ - _noise->randomizeOffsets(); -} - -double PaintingBrush::getInfluence(double relative_x, double relative_z) -{ - double distance = sqrt(relative_x * relative_x + relative_z * relative_z); - if (distance > _size) - { - return 0.0; - } - else if (distance > _size * (1.0 - _smoothing)) - { - return 1.0 - (distance - _size * (1.0 - _smoothing)) / (_size * _smoothing); - } - else - { - return 1.0; - } -} - -void PaintingBrush::drawPreview(QWidget*) -{ -} - -QString PaintingBrush::getHelpText() -{ - switch (_mode) - { - case PAINTING_BRUSH_RAISE: - return QObject::tr("Left click: raise terrain

Right click: lower terrain"); - case PAINTING_BRUSH_SMOOTH: - return QObject::tr("Left click: add random noise to terrain

Right click: smooth details"); - case PAINTING_BRUSH_FLATTEN: - return QObject::tr("Left click: flatten at height picked with right click

Right click: pick height at center"); - case PAINTING_BRUSH_RESTORE: - return QObject::tr("Left click: remove your manual modifications from terrain"); - } - return QString(""); -} - -void PaintingBrush::applyToTerrain(TerrainDefinition* terrain, double x, double z, double duration, bool reverse) -{ - double brush_strength; - - double hard_radius = _size * (1.0 - _smoothing); - double smoothed_size = _size * _smoothing; - double total_radius = hard_radius + smoothed_size; - - PaintedGridBrush brush(hard_radius, smoothed_size, total_radius); - - brush_strength = 0.5 * _strength * duration / 0.1; - - switch (_mode) - { - case PAINTING_BRUSH_RAISE: - if (reverse) - { - brush_strength = -brush_strength; - } - terrain->height_map->brushElevation(brush, x, z, brush_strength * 2.0); - break; - case PAINTING_BRUSH_SMOOTH: - if (reverse) - { - terrain->height_map->brushSmooth(brush, x, z, brush_strength * 30.0); - } - else - { - terrain->height_map->brushAddNoise(brush, x, z, _noise, brush_strength * 0.3); - } - break; - case PAINTING_BRUSH_FLATTEN: - if (reverse) - { - _height = terrain->getInterpolatedHeight(x * terrain->scaling, z * terrain->scaling, false, true); - } - else - { - terrain->height_map->brushFlatten(brush, x, z, _height, brush_strength * 30.0); - } - break; - case PAINTING_BRUSH_RESTORE: - terrain->height_map->brushReset(brush, x, z, brush_strength * 30.0); - break; - default: - return; - } -} diff --git a/src/interface/desktop/terrain/paintingbrush.h b/src/interface/desktop/terrain/paintingbrush.h deleted file mode 100644 index cc166a5..0000000 --- a/src/interface/desktop/terrain/paintingbrush.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef PAINTINGBRUSH_H -#define PAINTINGBRUSH_H - -#include "desktop_global.h" - -class QAbstractSlider; -class QWidget; - -typedef enum -{ - PAINTING_BRUSH_RAISE = 0, - PAINTING_BRUSH_SMOOTH = 1, - PAINTING_BRUSH_FLATTEN = 2, - PAINTING_BRUSH_RESTORE = 3 -} PaintingBrushMode; - -class PaintingBrush -{ -public: - PaintingBrush(); - ~PaintingBrush(); - - void setMode(PaintingBrushMode mode); - void setSize(double value); - void setSize(QAbstractSlider* slider); - void setSmoothing(double value); - void setSmoothing(QAbstractSlider* slider); - void setStrength(double value); - void setStrength(QAbstractSlider* slider); - void randomizeNoise(); - - double getInfluence(double relative_x, double relative_z); - - void drawPreview(QWidget* widget); - QString getHelpText(); - - void applyToTerrain(TerrainDefinition* terrain, double x, double z, double duration, bool reverse); - -private: - PaintingBrushMode _mode; - double _size; - double _smoothing; - double _strength; - double _height; - NoiseGenerator* _noise; -}; - -#endif // PAINTINGBRUSH_H diff --git a/src/interface/desktop/terrain/widgetheightmap.cpp b/src/interface/desktop/terrain/widgetheightmap.cpp deleted file mode 100644 index a115012..0000000 --- a/src/interface/desktop/terrain/widgetheightmap.cpp +++ /dev/null @@ -1,573 +0,0 @@ -#include "widgetheightmap.h" - -#include -#include -#include -#include -#include -#include "tools.h" -#include "SoftwareRenderer.h" -#include "Scenery.h" -#include "TerrainDefinition.h" -#include "TerrainHeightMap.h" -#include "WaterDefinition.h" -#include "TerrainRenderer.h" - -#define HEIGHTMAP_RESOLUTION 256 - -WidgetHeightMap::WidgetHeightMap(QWidget* parent) : -QGLWidget(parent) -{ - setMinimumSize(500, 500); - setFocusPolicy(Qt::StrongFocus); - setMouseTracking(true); - setCursor(Qt::CrossCursor); - startTimer(100); - - _terrain = NULL; - _renderer = new SoftwareRenderer(); - _vertices = new _VertexInfo[HEIGHTMAP_RESOLUTION * HEIGHTMAP_RESOLUTION]; - - _dirty = true; - - _water = true; - _wireframe = true; - _painted_area = true; - - _average_frame_time = 0.0; - - _last_brush_action = 0; - _last_mouse_x = 250; - _last_mouse_y = 250; - _last_time = QDateTime::currentDateTime(); - _mouse_moved = false; - - _target_x = 0.0; - _target_z = 0.0; - _last_update_x = 0; - _last_update_z = 0; - - _current_camera = new CameraDefinition; - _top_camera = new CameraDefinition; - _temp_camera = new CameraDefinition; - _zoom = 35.0; - - _current_camera->setLocation(Vector3(0.0, 80.0, 10.0)); - _current_camera->setTarget(VECTOR_ZERO); - _top_camera->setZoomToTarget(_zoom); - _current_camera->copy(_top_camera); - - _brush = NULL; - _brush_x = 0.0; - _brush_z = 0.0; -} - -WidgetHeightMap::~WidgetHeightMap() -{ - delete _current_camera; - delete _top_camera; - delete _temp_camera; - delete _renderer; - delete[] _vertices; -} - -void WidgetHeightMap::setTerrain(TerrainDefinition* terrain) -{ - _terrain = terrain; - - _renderer->getScenery()->setTerrain(_terrain); - _renderer->prepare(); - - revert(); -} - -void WidgetHeightMap::setBrush(PaintingBrush* brush) -{ - _brush = brush; - updateGL(); -} - -void WidgetHeightMap::revert() -{ - _dirty = true; - updateGL(); -} - -void WidgetHeightMap::toggleWater(bool enabled) -{ - _water = enabled; - updateGL(); -} - -void WidgetHeightMap::toggleGrid(bool enabled) -{ - _wireframe = enabled; - updateGL(); -} - -void WidgetHeightMap::togglePaintedArea(bool enabled) -{ - _painted_area = enabled; - updateGL(); -} - -void WidgetHeightMap::keyPressEvent(QKeyEvent* event) -{ - if (event->key() == Qt::Key_Up) - { - scrollTopCamera(0.0, -1.0); - } - else if (event->key() == Qt::Key_Down) - { - scrollTopCamera(0.0, 1.0); - } - else if (event->key() == Qt::Key_Left) - { - scrollTopCamera(-1.0, 0.0); - } - else if (event->key() == Qt::Key_Right) - { - scrollTopCamera(1.0, 0.0); - } - else if (event->key() == Qt::Key_PageUp) - { - zoomTopCamera(-3.0); - } - else if (event->key() == Qt::Key_PageDown) - { - zoomTopCamera(3.0); - } - else - { - QGLWidget::keyPressEvent(event); - } -} - -void WidgetHeightMap::wheelEvent(QWheelEvent* event) -{ - if (event->modifiers() == Qt::NoModifier) - { - if (event->orientation() == Qt::Vertical) - { - zoomTopCamera(-0.05 * (double) event->delta()); - } - event->accept(); - } - else - { - event->ignore(); - } -} - -void WidgetHeightMap::mousePressEvent(QMouseEvent* event) -{ - _last_mouse_x = event->x(); - _last_mouse_y = event->y(); - if (event->buttons() & Qt::LeftButton) - { - _last_brush_action = 1; - } - else if (event->buttons() & Qt::RightButton) - { - _last_brush_action = -1; - } -} - -void WidgetHeightMap::mouseReleaseEvent(QMouseEvent*) -{ - _last_brush_action = 0; - if (_terrain) - { - _terrain->height_map->endBrushStroke(); - } - if (_brush) - { - _brush->randomizeNoise(); - } -} - -void WidgetHeightMap::mouseMoveEvent(QMouseEvent* event) -{ - /*if (event->buttons() & Qt::MiddleButton) - { - // Rotate around the turntable - int move_x = event->x() - _last_mouse_x; - int move_y = event->y() - _last_mouse_y; - - // TODO - //_angle_h -= (double)move_x * 0.008; - //_angle_v += (double)move_y * 0.003; - }*/ - - _last_mouse_x = event->x(); - _last_mouse_y = event->y(); - _mouse_moved = true; - - updateGL(); -} - -void WidgetHeightMap::timerEvent(QTimerEvent*) -{ - if (not _terrain) - { - return; - } - - QDateTime new_time = QDateTime::currentDateTime(); - double duration = 0.001 * (double) _last_time.msecsTo(new_time); - _last_time = new_time; - - // Update top camera - Vector3 target = {_target_x, _terrain->getInterpolatedHeight(_target_x, _target_z, true, true), _target_z}; - _top_camera->setLocationCoords(target.x, target.y + 1.0, target.z + 0.1); - _top_camera->setTarget(target); - _top_camera->setZoomToTarget(_zoom); - if (_current_camera->transitionToAnother(_top_camera, 0.8)) - { - int update_x = (int) (floor(_target_x)); - int update_z = (int) (floor(_target_z)); - - if (update_x - _last_update_x < -10 || update_x - _last_update_x > 10 || update_z - _last_update_z < -10 || update_z - _last_update_z > 10) - { - _dirty = true; - } - - updateGL(); - } - - if (not underMouse()) - { - return; - } - - // Apply brush action - if (_last_brush_action != 0 && _brush) - { - _brush->applyToTerrain(_terrain, _brush_x + _target_x, _brush_z + _target_z, duration, _last_brush_action < 0); - - // TODO Only mark dirty the updated area - _dirty = true; - updateGL(); - } - - // Edge scrolling - double wx = (double) _last_mouse_x / (double) width(); - double wy = (double) _last_mouse_y / (double) height(); - double limit = 0.15; - double force = 1.0; - if (wx < limit) - { - scrollTopCamera(-(1.0 - wx / limit) * force, 0.0); - } - else if (wx > 1.0 - limit) - { - scrollTopCamera(force * (wx - (1.0 - limit)) / limit, 0.0); - } - if (wy < limit) - { - scrollTopCamera(0.0, -(1.0 - wy / limit) * force); - } - else if (wy > 1.0 - limit) - { - scrollTopCamera(0.0, force * (wy - (1.0 - limit)) / limit); - } -} - -void WidgetHeightMap::initializeGL() -{ - glClearColor(0.0, 0.0, 0.0, 0.0); - - GLfloat light_diffuse[] = {0.75, 0.74, 0.7, 1.0}; - GLfloat light_specular[] = {0.0, 0.0, 0.0, 0.0}; - glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse); - glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular); - light_diffuse[0] = 0.3; - light_diffuse[1] = 0.3; - light_diffuse[2] = 0.4; - glLightfv(GL_LIGHT1, GL_DIFFUSE, light_diffuse); - glLightfv(GL_LIGHT1, GL_SPECULAR, light_specular); - glShadeModel(GL_SMOOTH); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glEnable(GL_LIGHT1); - glEnable(GL_COLOR_MATERIAL); - //glColorMaterial(GL_FRONT_AND_BACK, GL_EMISSION); - - //glFrontFace(GL_CCW); - //glCullFace(GL_BACK); - glDisable(GL_CULL_FACE); - - glDepthFunc(GL_LEQUAL); - glDepthMask(GL_TRUE); - glEnable(GL_DEPTH_TEST); - - glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); - glEnable(GL_LINE_SMOOTH); - glLineWidth(2.0); - - glDisable(GL_FOG); - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); -} - -void WidgetHeightMap::resizeGL(int w, int h) -{ - glViewport(0, 0, w, h); - - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluPerspective(1.57 * 180.0 / M_PI, 1.0, 1.0, 1000.0); - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); -} - -void WidgetHeightMap::paintGL() -{ - GLenum error_code; - QTime start_time; - double frame_time; - int rx, rz; - - if (not _terrain) - { - return; - } - - rx = HEIGHTMAP_RESOLUTION; - rz = HEIGHTMAP_RESOLUTION; - - // Update vertex cache - if (_dirty) - { - updateVertexInfo(); - emit heightmapChanged(); - _dirty = false; - } - - // Picking mouse position using z-buffer (for brush) - if (_mouse_moved) - { - GLint viewport[4]; - GLdouble modelview[16]; - GLdouble projection[16]; - GLfloat winX, winY, winZ; - Vector3 point; - - glGetDoublev(GL_MODELVIEW_MATRIX, modelview); - glGetDoublev(GL_PROJECTION_MATRIX, projection); - glGetIntegerv(GL_VIEWPORT, viewport); - - winX = (float) _last_mouse_x; - winY = (float) height() - (float) _last_mouse_y; - glReadPixels(_last_mouse_x, (int) winY, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &winZ); - - if (winZ > 0.0 && winZ < 1000.0) - { - gluUnProject(winX, winY, winZ, modelview, projection, viewport, &point.x, &point.y, &point.z); - - _brush_x = point.x - _target_x; - _brush_z = point.z - _target_z; - } - - _mouse_moved = false; - } - - // Place camera - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - Vector3 camera_location = _current_camera->getLocation(); - Vector3 camera_target = _current_camera->getTarget(); - Vector3 camera_up = _current_camera->getUpVector(); - gluLookAt(camera_location.x, camera_location.y, camera_location.z, camera_target.x, camera_target.y, camera_target.z, camera_up.x, camera_up.y, camera_up.z); - - // Place lights - GLfloat light_position[] = {40.0, 40.0, 40.0, 0.0}; - glLightfv(GL_LIGHT0, GL_POSITION, light_position); - light_position[0] = -40.0; - light_position[2] = -60.0; - glLightfv(GL_LIGHT1, GL_POSITION, light_position); - - // Background - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - // Height map - for (int x = 0; x < rx - 1; x++) - { - glBegin(GL_QUAD_STRIP); - for (int z = 0; z < rz; z++) - { - for (int dx = 1; dx >= 0; dx--) - { - _VertexInfo* vertex = _vertices + z * rx + x + dx; - double brush_influence; - - if (_brush) - { - double diff_x, diff_z; - - diff_x = vertex->point.x - _target_x - _brush_x; - diff_z = vertex->point.z - _target_z - _brush_z; - - brush_influence = _brush->getInfluence(diff_x, diff_z); - } - else - { - brush_influence = 0.0; - } - - glColor3f(0.8 + brush_influence, (_painted_area && vertex->painted) ? 1.0 : 0.8, 0.8); - glNormal3f(vertex->normal.x, vertex->normal.y, vertex->normal.z); - glVertex3f(vertex->point.x, vertex->point.y, vertex->point.z); - } - } - glEnd(); - } - - // Wireframe - if (_wireframe) - { - glDisable(GL_LIGHTING); - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glDisable(GL_DEPTH_TEST); - glColor4f(0.8, 0.0, 0.0, 0.1); - for (int z = 0; z < rz; z++) - { - glBegin(GL_LINE_STRIP); - for (int x = 0; x < rx; x++) - { - _VertexInfo* vertex = _vertices + z * rx + x; - glVertex3f(vertex->point.x, vertex->point.y, vertex->point.z); - } - glEnd(); - } - for (int x = 0; x < rx; x++) - { - glBegin(GL_LINE_STRIP); - for (int z = 0; z < rz; z++) - { - _VertexInfo* vertex = _vertices + z * rx + x; - glVertex3f(vertex->point.x, vertex->point.y, vertex->point.z); - } - glEnd(); - } - glEnable(GL_LIGHTING); - glEnable(GL_DEPTH_TEST); - glDisable(GL_BLEND); - } - - // Water - if (_water) - { - glDisable(GL_LIGHTING); - glEnable(GL_BLEND); - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glColor4f(0.2, 0.3, 0.7, 0.7); - glBegin(GL_QUADS); - double water_height = _terrain->water_height * _terrain->scaling * _terrain->height; - glVertex3f(_target_x - 500.0, water_height, _target_z - 500.0); - glVertex3f(_target_x - 500.0, water_height, _target_z + 500.0); - glVertex3f(_target_x + 500.0, water_height, _target_z + 500.0); - glVertex3f(_target_x + 500.0, water_height, _target_z - 500.0); - glEnd(); - glDisable(GL_BLEND); - glEnable(GL_LIGHTING); - } - - // Time stats - frame_time = 0.001 * (double) start_time.msecsTo(QTime::currentTime()); - _average_frame_time = _average_frame_time * 0.8 + frame_time * 0.2; - //printf("%d %f\n", quality, average_frame_time); - - while ((error_code = glGetError()) != GL_NO_ERROR) - { - logDebug(QString("[OpenGL] ERROR : ") + (const char*) gluErrorString(error_code)); - } -} - -void WidgetHeightMap::scrollTopCamera(double dx, double dz) -{ - if (dx != 0.0) - { - _target_x += dx * _zoom * 0.05; - } - if (dz != 0.0) - { - - _target_z += dz * _zoom * 0.05; - } -} - -void WidgetHeightMap::zoomTopCamera(double dzoom) -{ - _zoom += dzoom; - if (_zoom < 10.0) - { - _zoom = 10.0; - } - else if (_zoom > 80.0) - { - - _zoom = 80.0; - } -} - -void WidgetHeightMap::updateVertexInfo() -{ - int rx = HEIGHTMAP_RESOLUTION; - int rz = HEIGHTMAP_RESOLUTION; - int dx, dz; - - _VertexInfo* old_vertices = _vertices; - _vertices = new _VertexInfo[rx * rz]; - delete[] old_vertices; - - _last_update_x = (int) (floor(_target_x)); - _last_update_z = (int) (floor(_target_z)); - - // Update positions - for (int x = 0; x < rx; x++) - { - for (int z = 0; z < rz; z++) - { - _VertexInfo* vertex = _vertices + z * rx + x; - - dx = _last_update_x + x - rx / 2; - dz = _last_update_z + z - rz / 2; - - vertex->point.x = (double) dx; - vertex->point.z = (double) dz; - - vertex->point.y = _terrain->getGridHeight(dx, dz, 1) * _terrain->height; - - vertex->painted = _terrain->height_map->isPainted(dx, dz); - } - } - - // Update normals - for (int x = 0; x < rx; x++) - { - for (int z = 0; z < rz; z++) - { - _VertexInfo* vertex = _vertices + z * rx + x; - - if (x == rx - 1) - { - vertex->normal = (vertex - 1)->normal; - } - else if (z == rz - 1) - { - vertex->normal = (vertex - rx)->normal; - } - else - { - Vector3 dx, dz; - - dx = (vertex + 1)->point.sub(vertex->point); - dz = (vertex + rx)->point.sub(vertex->point); - - vertex->normal = dz.normalize().crossProduct(dx.normalize()); - } - } - } -} diff --git a/src/interface/desktop/terrain/widgetheightmap.h b/src/interface/desktop/terrain/widgetheightmap.h deleted file mode 100644 index e6dc730..0000000 --- a/src/interface/desktop/terrain/widgetheightmap.h +++ /dev/null @@ -1,91 +0,0 @@ -#ifndef _PAYSAGES_QT_WIDGETHEIGHTMAP_H_ -#define _PAYSAGES_QT_WIDGETHEIGHTMAP_H_ - -#include "desktop_global.h" - -#include - -#include -#include "terrain/paintingbrush.h" -#include "CameraDefinition.h" - -typedef struct -{ - Vector3 point; - Vector3 normal; - int painted; -} _VertexInfo; - -class WidgetHeightMap : public QGLWidget -{ - Q_OBJECT -public: - WidgetHeightMap(QWidget* parent); - ~WidgetHeightMap(); - - void setTerrain(TerrainDefinition* terrain); - void setBrush(PaintingBrush* brush); - -public slots: - void revert(); - void toggleWater(bool enabled); - void toggleGrid(bool enabled); - void togglePaintedArea(bool enabled); - -signals: - void heightmapChanged(); - -protected: - void keyPressEvent(QKeyEvent* event); - void mousePressEvent(QMouseEvent* event); - void mouseReleaseEvent(QMouseEvent* event); - void mouseMoveEvent(QMouseEvent* event); - void wheelEvent(QWheelEvent* event); - - void timerEvent(QTimerEvent* event); - - void initializeGL(); - void resizeGL(int w, int h); - void paintGL(); - -private: - void scrollTopCamera(double dx, double dz); - void zoomTopCamera(double dzoom); - - void updateVertexInfo(); - -private: - TerrainDefinition* _terrain; - SoftwareRenderer* _renderer; - _VertexInfo* _vertices; - - bool _dirty; - - bool _water; - bool _wireframe; - bool _painted_area; - - double _average_frame_time; - - int _last_brush_action; - int _last_mouse_x; - int _last_mouse_y; - QDateTime _last_time; - bool _mouse_moved; - - double _target_x; - double _target_z; - int _last_update_x; - int _last_update_z; - - CameraDefinition* _top_camera; - CameraDefinition* _temp_camera; - CameraDefinition* _current_camera; - double _zoom; - - PaintingBrush* _brush; - double _brush_x; - double _brush_z; -}; - -#endif diff --git a/src/interface/desktop/terrain/widgetterrainbasenoisepreview.cpp b/src/interface/desktop/terrain/widgetterrainbasenoisepreview.cpp deleted file mode 100644 index 42b2e29..0000000 --- a/src/interface/desktop/terrain/widgetterrainbasenoisepreview.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#include "widgetterrainbasenoisepreview.h" - -#include -#include -#include "tools.h" -#include "NoiseGenerator.h" - -WidgetTerrainBaseNoisePreview::WidgetTerrainBaseNoisePreview(QWidget* parent) : - DrawingWidget(parent) -{ - _noise = NULL; -} - -void WidgetTerrainBaseNoisePreview::setNoise(NoiseGenerator* noise) -{ - _noise = noise; - update(); -} - -void WidgetTerrainBaseNoisePreview::doDrawing(QPainter* painter) -{ - painter->fillRect(rect(), QColor(20, 40, 80)); - painter->setPen(QColor(220, 210, 180)); - - int height = this->height(); - - if (_noise) - { - //QRect boundaries = event->region().boundingRect(); - QRect boundaries = rect(); // TODO Limit to updated region - double value, factor; - double minvalue, maxvalue; - - _noise->getRange(&minvalue, &maxvalue); - factor = ((double)height) / (maxvalue - minvalue); - - for (int x = boundaries.left(); x <= boundaries.right(); x++) - { - value = _noise->get1DTotal(100.0 * ((double)x) / factor); - - painter->drawLine(x, height - 1 - (value - minvalue) * factor, x, height - 1); - } - } -} diff --git a/src/interface/desktop/terrain/widgetterrainbasenoisepreview.h b/src/interface/desktop/terrain/widgetterrainbasenoisepreview.h deleted file mode 100644 index e8f9b02..0000000 --- a/src/interface/desktop/terrain/widgetterrainbasenoisepreview.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef _PAYSAGES_EDITING_TERRAIN_WIDGETTERRAINBASENOISEPREVIEW_H_ -#define _PAYSAGES_EDITING_TERRAIN_WIDGETTERRAINBASENOISEPREVIEW_H_ - -#include "desktop_global.h" - -#include "DrawingWidget.h" -class QPainter; - -class WidgetTerrainBaseNoisePreview : public DrawingWidget -{ - Q_OBJECT -public: - explicit WidgetTerrainBaseNoisePreview(QWidget* parent = 0); - - void setNoise(NoiseGenerator* noise); - -protected: - virtual void doDrawing(QPainter* painter); - -private: - NoiseGenerator* _noise; -}; - -#endif diff --git a/src/interface/desktop/textures/DialogTexturesLayer.cpp b/src/interface/desktop/textures/DialogTexturesLayer.cpp deleted file mode 100644 index 80f6227..0000000 --- a/src/interface/desktop/textures/DialogTexturesLayer.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include "DialogTexturesLayer.h" -#include "ui_DialogTexturesLayer.h" - -#include "TexturesDefinition.h" - -DialogTexturesLayer::DialogTexturesLayer(QWidget* parent, TexturesDefinition* textures, int layer) : - QDialog(parent), - ui(new Ui::DialogTexturesLayer) -{ - ui->setupUi(this); - - this->layer = layer; - original = textures; - modified = new TexturesDefinition(NULL); -} - -DialogTexturesLayer::~DialogTexturesLayer() -{ - delete ui; - - delete modified; -} diff --git a/src/interface/desktop/textures/DialogTexturesLayer.h b/src/interface/desktop/textures/DialogTexturesLayer.h deleted file mode 100644 index 19840b2..0000000 --- a/src/interface/desktop/textures/DialogTexturesLayer.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef DIALOGTEXTURESLAYER_H -#define DIALOGTEXTURESLAYER_H - -#include "desktop_global.h" - -#include - -namespace Ui { -class DialogTexturesLayer; -} - -class DialogTexturesLayer : public QDialog -{ - Q_OBJECT - -public: - explicit DialogTexturesLayer(QWidget* parent, TexturesDefinition* textures, int layer); - ~DialogTexturesLayer(); - -private: - Ui::DialogTexturesLayer *ui; - - int layer; - TexturesDefinition* original; - TexturesDefinition* modified; -}; - -#endif // DIALOGTEXTURESLAYER_H diff --git a/src/interface/desktop/textures/DialogTexturesLayer.ui b/src/interface/desktop/textures/DialogTexturesLayer.ui deleted file mode 100644 index 723bb78..0000000 --- a/src/interface/desktop/textures/DialogTexturesLayer.ui +++ /dev/null @@ -1,294 +0,0 @@ - - - DialogTexturesLayer - - - - 0 - 0 - 1020 - 648 - - - - Paysages 3D - Texture editing - - - true - - - - - - - - Height constraints - - - true - - - - - - - true - - - - Control at which altitude the texture is present - - - - - - - - - - Slope constraints - - - true - - - - - - - true - - - - Control the slope influence on texture presence - - - - - - - - - - - - - - Ground displacement - - - true - - - - - - - true - - - - TextLabel - - - - - - - - - - Material - - - - - - - - - Qt::Vertical - - - - - - - - - Coverage preview - - - true - - - - - - - 0 - 0 - - - - - 200 - 200 - - - - - 200 - 200 - - - - - - - - - - - Colored preview - - - true - - - - - - - 0 - 0 - - - - - 200 - 200 - - - - - 200 - 200 - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Actions - - - true - - - - - - Explore in 3D - - - - :/buttons/logo/images/explore.png:/buttons/logo/images/explore.png - - - - - - - Cancel - - - - :/buttons/logo/images/cancel.png:/buttons/logo/images/cancel.png - - - - - - - Validate - - - - :/buttons/logo/images/apply.png:/buttons/logo/images/apply.png - - - true - - - - - - - Render preview - - - - :/buttons/logo/images/render.png:/buttons/logo/images/render.png - - - - - - - Load preset - - - - :/buttons/logo/images/auto.png:/buttons/logo/images/auto.png - - - - - - - Revert - - - - :/buttons/logo/images/revert.png:/buttons/logo/images/revert.png - - - - - - - - - - - - - BasePreview - QWidget -
BasePreview.h
- 1 -
-
- - - - -
diff --git a/src/interface/desktop/textures/maintexturesform.cpp b/src/interface/desktop/textures/maintexturesform.cpp deleted file mode 100644 index 99e02b6..0000000 --- a/src/interface/desktop/textures/maintexturesform.cpp +++ /dev/null @@ -1,160 +0,0 @@ -#include "maintexturesform.h" -#include "ui_maintexturesform.h" - -#include "../common/freeformhelper.h" -#include "../common/freelayerhelper.h" -#include "DesktopScenery.h" -#include "TexturesDefinition.h" -#include "TextureLayerDefinition.h" -#include "previewmaterial.h" -#include "textures/DialogTexturesLayer.h" -#include "TexturesMixPreviewRenderer.h" -#include "TextureLayerCoveragePreviewRenderer.h" -#include "TextureLayerAspectPreviewRenderer.h" - -MainTexturesForm::MainTexturesForm(QWidget *parent) : QWidget(parent), ui(new Ui::MainTexturesForm) -{ - textures = new TexturesDefinition(NULL); - - ui->setupUi(this); - - layer_helper = new FreeLayerHelper(textures, true); - layer_helper->setLayerTable(ui->layersGrid); - layer_helper->setAddButton(ui->layer_add); - layer_helper->setDelButton(ui->layer_del); - layer_helper->setDownButton(ui->layer_down); - layer_helper->setUpButton(ui->layer_up); - layer_helper->setEditButton(ui->layer_edit); - connect(layer_helper, SIGNAL(tableUpdateNeeded()), this, SLOT(updateLayers())); - connect(layer_helper, SIGNAL(selectionChanged(int)), this, SLOT(selectLayer(int))); - connect(layer_helper, SIGNAL(editRequired(int)), this, SLOT(editLayer(int))); - - form_helper = new FreeFormHelper(this); - form_helper->setApplyButton(ui->button_apply); - form_helper->setRevertButton(ui->button_revert); - form_helper->setExploreButton(ui->button_explore); - form_helper->setRenderButton(ui->button_render); - - preview_layer_coverage = new TextureLayerCoveragePreviewRenderer(); - preview_layer_coverage->setTextures(textures); - form_helper->addPreview(ui->preview_coverage, preview_layer_coverage); - - preview_layer_look = new TextureLayerAspectPreviewRenderer(); - preview_layer_look->setTextures(textures); - form_helper->addPreview(ui->preview_texture, preview_layer_look); - - preview_cumul = new TexturesMixPreviewRenderer(); - preview_cumul->setTextures(textures); - form_helper->addPreview(ui->preview_cumul, preview_cumul); - - form_helper->addPreset(tr("Complex terrain")); - form_helper->addPreset(tr("Rocks with grass")); - form_helper->addPreset(tr("Snow covered mountains")); - //form_helper->addPreset(tr("Arid canyons")); - form_helper->setPresetButton(ui->button_preset); - connect(form_helper, SIGNAL(presetSelected(int)), this, SLOT(selectPreset(int))); - - connect(layer_helper, SIGNAL(layersChanged()), form_helper, SLOT(processDataChange())); - - form_helper->startManaging(); -} - -MainTexturesForm::~MainTexturesForm() -{ - delete ui; - delete form_helper; - delete layer_helper; -} - -void MainTexturesForm::updateLayers() -{ - int i, n; - - ui->layersGrid->clearContents(); - - n = textures->count(); - ui->layersGrid->setRowCount(n); - - for (i = 0; i < n; i++) - { - QTableWidgetItem* item; - TextureLayerDefinition* layer = textures->getTextureLayer(i); - - item = new QTableWidgetItem(QString("%1").arg(i + 1)); - item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); - ui->layersGrid->setItem(n - 1 - i, 0, item); - - item = new QTableWidgetItem(QString::fromStdString(layer->getName())); - item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); - ui->layersGrid->setItem(n - 1 - i, 1, item); - - QWidget* widget = new SmallMaterialPreview(ui->layersGrid, layer->material); - //widget->setMinimumSize(50, 50); - ui->layersGrid->setCellWidget(n - 1 - i, 2, widget); - - ui->layersGrid->setRowHeight(n - 1 - i, 50); - } - - ui->preview_cumul->setEnabled(n > 0); - - ui->layersGrid->resizeColumnsToContents(); -} - -void MainTexturesForm::selectLayer(int layer) -{ - if (layer < 0) - { - ui->preview_coverage->setEnabled(false); - ui->preview_texture->setEnabled(false); - } - else - { - ui->preview_coverage->setEnabled(true); - ui->preview_texture->setEnabled(true); - - preview_layer_coverage->setLayer(layer); - preview_layer_look->setLayer(layer); - - ui->preview_coverage->redraw(); - ui->preview_texture->redraw(); - } -} - -void MainTexturesForm::editLayer(int layer) -{ - DialogTexturesLayer dialog(this, textures, layer); - dialog.exec(); -} - -void MainTexturesForm::selectPreset(int preset) -{ - textures->applyPreset((TexturesDefinition::TexturesPreset)preset); -} - -void MainTexturesForm::updateLocalDataFromScenery() -{ - DesktopScenery::getCurrent()->getTextures(textures); - - preview_layer_coverage->setTerrain(DesktopScenery::getCurrent()->getTerrain()); - preview_cumul->setTerrain(DesktopScenery::getCurrent()->getTerrain()); -} - -void MainTexturesForm::commitLocalDataToScenery() -{ - DesktopScenery::getCurrent()->setTextures(textures); -} - -void MainTexturesForm::refreshFromLocalData() -{ - layer_helper->refreshLayers(); -} - -void MainTexturesForm::refreshFromFellowData() -{ -} - -void MainTexturesForm::alterRenderer(SoftwareRenderer* renderer) -{ - renderer->getScenery()->setTextures(textures); - renderer->prepare(); -} diff --git a/src/interface/desktop/textures/maintexturesform.h b/src/interface/desktop/textures/maintexturesform.h deleted file mode 100644 index 917a189..0000000 --- a/src/interface/desktop/textures/maintexturesform.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef MAINTEXTURESFORM_H -#define MAINTEXTURESFORM_H - -#include "desktop_global.h" - -#include - -namespace Ui { -class MainTexturesForm; -} - -class FreeFormHelper; -class FreeLayerHelper; -class PreviewLayerCoverage; -class PreviewLayerLook; -class PreviewCumul; - -class MainTexturesForm : public QWidget -{ - Q_OBJECT - -public: - explicit MainTexturesForm(QWidget *parent = 0); - ~MainTexturesForm(); - -public slots: - void updateLocalDataFromScenery(); - void commitLocalDataToScenery(); - void refreshFromLocalData(); - void refreshFromFellowData(); - void alterRenderer(SoftwareRenderer* renderer); - - void updateLayers(); - void selectLayer(int layer); - void editLayer(int layer); - void selectPreset(int preset); - -private: - Ui::MainTexturesForm *ui; - TexturesDefinition* textures; - FreeFormHelper* form_helper; - FreeLayerHelper* layer_helper; - TextureLayerCoveragePreviewRenderer* preview_layer_coverage; - TextureLayerAspectPreviewRenderer* preview_layer_look; - TexturesMixPreviewRenderer* preview_cumul; -}; - -#endif // MAINTEXTURESFORM_H diff --git a/src/interface/desktop/textures/maintexturesform.ui b/src/interface/desktop/textures/maintexturesform.ui deleted file mode 100644 index c8b515d..0000000 --- a/src/interface/desktop/textures/maintexturesform.ui +++ /dev/null @@ -1,451 +0,0 @@ - - - MainTexturesForm - - - - 0 - 0 - 997 - 742 - - - - Form - - - - - - - - Texture layers - - - true - - - - - - - true - - - - These are the layers of textures that control the ground details. Each texture has two effects : a relief effect to add better definition to the base terrain shape, and a detail effect for close views. - - - Qt::AutoText - - - true - - - - - - - - - QAbstractItemView::NoEditTriggers - - - QAbstractItemView::SingleSelection - - - QAbstractItemView::SelectRows - - - false - - - false - - - - Level - - - - - Name - - - - - Material - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Add layer - - - - :/buttons/logo/images/layer_add.png:/buttons/logo/images/layer_add.png - - - - 32 - 32 - - - - false - - - - - - - Remove layer - - - - :/buttons/logo/images/layer_del.png:/buttons/logo/images/layer_del.png - - - - 32 - 32 - - - - - - - - Qt::Vertical - - - QSizePolicy::MinimumExpanding - - - - 20 - 40 - - - - - - - - Edit layer - - - - :/buttons/logo/images/layer_rename.png:/buttons/logo/images/layer_rename.png - - - - 32 - 32 - - - - - - - - Qt::Vertical - - - QSizePolicy::MinimumExpanding - - - - 20 - 40 - - - - - - - - Move layer up - - - - :/buttons/logo/images/layer_up.png:/buttons/logo/images/layer_up.png - - - - 32 - 32 - - - - - - - - Move layer down - - - - :/buttons/logo/images/layer_down.png:/buttons/logo/images/layer_down.png - - - - 32 - 32 - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - - - - Selected layer previews - - - - - - - 0 - 0 - - - - - 200 - 200 - - - - - 200 - 200 - - - - - - - - Coverage - - - Qt::AlignCenter - - - - - - - - 0 - 0 - - - - - 200 - 200 - - - - - 200 - 200 - - - - - - - - Appearance - - - Qt::AlignCenter - - - - - - - - - - - - Qt::Vertical - - - - - - - - - All layers preview - - - true - - - - - - - 0 - 0 - - - - - 200 - 200 - - - - - 200 - 200 - - - - - - - - - - - Explore in 3D - - - - :/buttons/logo/images/explore.png:/buttons/logo/images/explore.png - - - - - - - Render preview - - - - :/buttons/logo/images/render.png:/buttons/logo/images/render.png - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - Actions - - - true - - - - - - Load preset - - - - :/buttons/logo/images/auto.png:/buttons/logo/images/auto.png - - - - - - - Revert modifications - - - - :/buttons/logo/images/revert.png:/buttons/logo/images/revert.png - - - - - - - Apply modifications - - - - :/buttons/logo/images/apply.png:/buttons/logo/images/apply.png - - - - - - - - - - - - - BasePreview - QWidget -
BasePreview.h
- 1 -
-
- - - - -
diff --git a/src/interface/desktop/tools.cpp b/src/interface/desktop/tools.cpp deleted file mode 100644 index 01d51ab..0000000 --- a/src/interface/desktop/tools.cpp +++ /dev/null @@ -1,47 +0,0 @@ -#include "tools.h" - -#include -#include "BasePreview.h" - -DialogWithPreview::DialogWithPreview(QWidget* parent) : QDialog(parent) -{ -} - -bool DialogWithPreview::event(QEvent* event) -{ - if (event->type() == QEvent::WindowActivate) - { - BasePreview::reviveAll(); - } - - return QDialog::event(event); -} - -QString getHumanMemory(qint64 memused) -{ - if (memused >= 1024) - { - memused /= 1024; - if (memused >= 1024) - { - memused /= 1024; - if (memused >= 1024) - { - memused /= 1024; - return QObject::tr("%1 GB").arg(memused); - } - else - { - return QObject::tr("%1 MB").arg(memused); - } - } - else - { - return QObject::tr("%1 kB").arg(memused); - } - } - else - { - return QObject::tr("%1 B").arg(memused); - } -} diff --git a/src/interface/desktop/tools.h b/src/interface/desktop/tools.h deleted file mode 100644 index 9d4b59f..0000000 --- a/src/interface/desktop/tools.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef _PAYSAGES_QT_TOOLS_H_ -#define _PAYSAGES_QT_TOOLS_H_ - -#include -#include -#include "DataFile.h" - -#include "Color.h" - -static inline QColor colorToQColor(Color color) -{ - color.normalize(); - return QColor(color.r * 255.0, color.g * 255.0, color.b * 255.0, color.a * 255.0); -} - -static inline QString getDataPath(QString path) -{ - return QString::fromStdString(DataFile::findFile(path.toStdString())); -} - -QString getHumanMemory(qint64 memused); - -class DialogWithPreview:public QDialog -{ - Q_OBJECT -public: - DialogWithPreview(QWidget* parent); - -protected: - virtual bool event(QEvent* event); -}; - -#ifndef NDEBUG -#include -static inline void logDebug(QString string) -{ - qDebug() << string; -} -#else -#define logDebug(_x_) ; -#endif - -#endif diff --git a/src/interface/desktop/widgetcurveeditor.cpp b/src/interface/desktop/widgetcurveeditor.cpp deleted file mode 100644 index 74b2226..0000000 --- a/src/interface/desktop/widgetcurveeditor.cpp +++ /dev/null @@ -1,239 +0,0 @@ -#include "widgetcurveeditor.h" - -#include -#include -#include -#include "Curve.h" -#include "Geometry.h" - -WidgetCurveEditor::WidgetCurveEditor(QWidget *parent, double xmin, double xmax, double ymin, double ymax) : QWidget(parent) -{ - _curve = new Curve; - _dragged = -1; - _pen = QColor(0, 0, 0); - - _xmin = xmin; - _xmax = xmax; - _ymin = ymin; - _ymax = ymax; - - setMinimumSize(300, 300); -} - -WidgetCurveEditor::~WidgetCurveEditor() -{ - delete _curve; -} - -void WidgetCurveEditor::setAxisLabels(QString xlabel, QString ylabel) -{ - _xlabel = xlabel; - _ylabel = ylabel; -} - -void WidgetCurveEditor::setCurve(Curve* curve) -{ - curve->copy(_curve); - update(); -} - -void WidgetCurveEditor::getCurve(Curve* curve) -{ - _curve->copy(curve); -} - -void WidgetCurveEditor::setPenColor(QColor color) -{ - _pen = color; - update(); -} - -void WidgetCurveEditor::paintEvent(QPaintEvent*) -{ - int i, n; - int width, height; - double dwidth, dheight; - CurvePoint point; - double position, value, prev_value, next_value; - - width = this->width(); - height = this->height(); - dheight = (double)(height - 1); - dwidth = (double)(width - 1); - - QPainter painter(this); - painter.fillRect(rect(), Qt::white); - - // Draw grid - painter.setPen(QPen(Qt::lightGray)); - for (int x = 0; x <= 10; x++) - { - int vx = (x == 10) ? width - 1 : x * width / 10; - painter.drawLine(vx, 0, vx, height -1); - vx = (x == 10) ? height - 1 : x * height / 10; - painter.drawLine(0, vx, width - 1, vx); - } - - // Draw labels - painter.setPen(QColor(50, 50, 50)); - if (not _xlabel.isEmpty()) - { - painter.drawText(rect(), Qt::AlignCenter | Qt::AlignBottom, _xlabel); - } - if (not _ylabel.isEmpty()) - { - painter.rotate(-90.0); - painter.translate(-height, 0.0); - painter.drawText(0, 0, height, 20, Qt::AlignCenter | Qt::AlignTop, _ylabel); - painter.translate(height, 0.0); - painter.rotate(90.0); - } - - // Draw curve path - painter.setPen(_pen); - for (int x = 0; x < width; x++) - { - position = ((double)x / dwidth) * (_xmax - _xmin) + _xmin; - - value = (_curve->getValue(position) - _ymin) / (_ymax - _ymin); - prev_value = _curve->getValue(position - (_xmax - _xmin) / dwidth); - next_value = _curve->getValue(position + (_xmax - _xmin) / dwidth); - - painter.drawLine(x, height - 1 - (int)((value + (prev_value - value) / 2.0) * dheight), x, height - 1 - (int)((value + (next_value - value) / 2.0) * dheight)); - painter.drawPoint(x, height - 1 - (int)(value * dheight)); - } - - // Draw handles - n = _curve->getPointCount(); - painter.setRenderHints(QPainter::Antialiasing | QPainter::HighQualityAntialiasing, true); - for (i = 0; i < n; i++) - { - _curve->getPoint(i, &point); - painter.drawEllipse(QPointF((int)((point.position - _xmin) / (_xmax - _xmin) * dwidth), height - 1 - (int)((point.value - _ymin) / (_ymax - _ymin) * dheight)), 4.0, 4.0); - } -} - -void WidgetCurveEditor::mousePressEvent(QMouseEvent* event) -{ - if (event->button() == Qt::LeftButton && _dragged < 0) - { - _dragged = getPointAt(event->x(), event->y()); - } - - event->accept(); -} - -void WidgetCurveEditor::mouseMoveEvent(QMouseEvent* event) -{ - CurvePoint point; - - if (_dragged >= 0 && (event->buttons() & Qt::LeftButton)) - { - screenToCurve(event->x(), event->y(), &point.position, &point.value); - - point.position = (point.position < _xmin) ? _xmin : point.position; - point.position = (point.position > _xmax) ? _xmax : point.position; - point.value = (point.value < _ymin) ? _ymin : point.value; - point.value = (point.value > _ymax) ? _ymax : point.value; - - _curve->setPoint(_dragged, point); - - update(); - - emit liveChanged(); - } - - event->accept(); -} - -void WidgetCurveEditor::mouseReleaseEvent(QMouseEvent* event) -{ - int clicked; - - if (event->button() == Qt::RightButton) - { - clicked = getPointAt(event->x(), event->y()); - if (clicked >= 0) - { - _curve->removePoint(clicked); - update(); - emit liveChanged(); - } - } - else if (event->button() == Qt::LeftButton && _dragged >= 0) - { - _dragged = -1; - _curve->validate(); - update(); - } - - event->accept(); -} - -void WidgetCurveEditor::mouseDoubleClickEvent(QMouseEvent* event) -{ - CurvePoint point; - - if (event->button() == Qt::LeftButton && _dragged < 0) - { - if (getPointAt(event->x(), event->y()) < 0) - { - screenToCurve(event->x(), event->y(), &point.position, &point.value); - _curve->addPoint(point); - _curve->validate(); - update(); - emit liveChanged(); - } - } -} - -void WidgetCurveEditor::curveToScreen(double curve_x, double curve_y, int* screen_x, int* screen_y) -{ - *screen_x = (int)((curve_x - _xmin) / (_xmax - _xmin) * (double)(width() - 1)); - *screen_y = (int)((1.0 - (curve_y - _ymin) / (_ymax - _ymin)) * (double)(height() - 1)); -} - -void WidgetCurveEditor::screenToCurve(int screen_x, int screen_y, double* curve_x, double* curve_y) -{ - *curve_x = ((double)screen_x / (double)(width() - 1)) * (_xmax - _xmin) + _xmin; - *curve_y = (1.0 - ((double)screen_y / (double)(height() - 1))) * (_ymax - _ymin) + _ymin; -} - -int WidgetCurveEditor::getPointAt(int x, int y) -{ - int n; - int nearest; - double distance, ndistance; - CurvePoint point; - int dx, dy; - - n = _curve->getPointCount(); - if (n < 1) - { - return -1; - } - - // Find nearest point - nearest = -1; - distance = 0.0; - for (int i = 0; i < n; i++) - { - _curve->getPoint(i, &point); - curveToScreen(point.position, point.value, &dx, &dy); - ndistance = Geometry::getDistance2D((double)x, (double)y, (double)dx, (double)dy); - if (nearest < 0 || ndistance < distance) - { - distance = ndistance; - nearest = i; - } - } - - if (nearest >= 0 && distance < 5.0) - { - return nearest; - } - else - { - return -1; - } -} diff --git a/src/interface/desktop/widgetcurveeditor.h b/src/interface/desktop/widgetcurveeditor.h deleted file mode 100644 index f2c32de..0000000 --- a/src/interface/desktop/widgetcurveeditor.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef _PAYSAGES_QT_WIDGETCURVEEDITOR_H_ -#define _PAYSAGES_QT_WIDGETCURVEEDITOR_H_ - -#include "desktop_global.h" - -#include -#include - -class WidgetCurveEditor : public QWidget -{ - Q_OBJECT - -public: - WidgetCurveEditor(QWidget* parent, double xmin, double xmax, double ymin, double ymax); - ~WidgetCurveEditor(); - - void setAxisLabels(QString xlabel, QString ylabel); - - void setCurve(Curve* curve); - void getCurve(Curve* curve); - - void setPenColor(QColor color); - -signals: - void liveChanged(); - -protected: - void paintEvent(QPaintEvent* event); - void mousePressEvent(QMouseEvent* event); - void mouseMoveEvent(QMouseEvent* event); - void mouseReleaseEvent(QMouseEvent* event); - void mouseDoubleClickEvent(QMouseEvent* event); - -private: - void curveToScreen(double curve_x, double curve_y, int* screen_x, int* screen_y); - void screenToCurve(int screen_x, int screen_y, double* curve_x, double* curve_y); - int getPointAt(int x, int y); - - double _xmin; - double _xmax; - double _ymin; - double _ymax; - Curve* _curve; - int _dragged; - QColor _pen; - QString _xlabel; - QString _ylabel; -}; - -#endif diff --git a/src/paysages.pro b/src/paysages.pro index 2deeb5a..666f3a9 100644 --- a/src/paysages.pro +++ b/src/paysages.pro @@ -9,7 +9,6 @@ SUBDIRS = \ render/preview \ render/opengl \ interface/commandline \ - interface/desktop \ interface/modeler exists( tests/googletest/sources/src/gtest-all.cc ) {