paysages: Qt GUI (WIP)
git-svn-id: https://subversion.assembla.com/svn/thunderk/paysages@213 b1fd45b6-86a6-48da-8261-f70d1f35bdcc
This commit is contained in:
parent
e3f692800b
commit
deeadf33ca
14 changed files with 188 additions and 411 deletions
104
gui_qt/baseform.cpp
Normal file
104
gui_qt/baseform.cpp
Normal file
|
@ -0,0 +1,104 @@
|
||||||
|
#include "baseform.h"
|
||||||
|
|
||||||
|
#include <QVBoxLayout>
|
||||||
|
#include <QHBoxLayout>
|
||||||
|
#include <QGridLayout>
|
||||||
|
#include <QLabel>
|
||||||
|
#include <QSlider>
|
||||||
|
|
||||||
|
class DoubleSliderWidget:public QWidget
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
DoubleSliderWidget(QWidget* parent, double* value, double min, double max, double small_step, double large_step):
|
||||||
|
QWidget(parent),
|
||||||
|
value(value), min(min), max(max), small_step(small_step), large_step(large_step)
|
||||||
|
{
|
||||||
|
setObjectName("_form_doubleslider_");
|
||||||
|
|
||||||
|
setLayout(new QHBoxLayout());
|
||||||
|
|
||||||
|
slider = new QSlider(this);
|
||||||
|
slider->setOrientation(Qt::Horizontal);
|
||||||
|
slider->setMinimum(min / small_step);
|
||||||
|
slider->setMaximum(max / small_step);
|
||||||
|
slider->setValue(*value / small_step);
|
||||||
|
slider->setTickInterval(large_step / small_step);
|
||||||
|
slider->setTickPosition(QSlider::TicksBelow);
|
||||||
|
|
||||||
|
layout()->addWidget(slider);
|
||||||
|
}
|
||||||
|
|
||||||
|
void revert()
|
||||||
|
{
|
||||||
|
slider->setValue(*value / small_step);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
QSlider* slider;
|
||||||
|
double* value;
|
||||||
|
double min;
|
||||||
|
double max;
|
||||||
|
double small_step;
|
||||||
|
double large_step;
|
||||||
|
};
|
||||||
|
|
||||||
|
BaseForm::BaseForm(QWidget* parent) :
|
||||||
|
QWidget(parent)
|
||||||
|
{
|
||||||
|
QWidget* hwidget;
|
||||||
|
QWidget* buttons;
|
||||||
|
QVBoxLayout* vlayout;
|
||||||
|
QHBoxLayout* hlayout;
|
||||||
|
|
||||||
|
vlayout = new QVBoxLayout();
|
||||||
|
hlayout = new QHBoxLayout();
|
||||||
|
|
||||||
|
hwidget = new QWidget(this);
|
||||||
|
|
||||||
|
previews = new QWidget(this);
|
||||||
|
previews->setLayout(new QVBoxLayout());
|
||||||
|
|
||||||
|
form = new QWidget(this);
|
||||||
|
form->setLayout(new QGridLayout());
|
||||||
|
|
||||||
|
buttons = new QWidget(this);
|
||||||
|
|
||||||
|
hlayout->addWidget(previews);
|
||||||
|
hlayout->addWidget(form);
|
||||||
|
vlayout->addWidget(hwidget);
|
||||||
|
vlayout->addWidget(buttons);
|
||||||
|
|
||||||
|
hwidget->setLayout(hlayout);
|
||||||
|
this->setLayout(vlayout);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BaseForm::revertConfig()
|
||||||
|
{
|
||||||
|
QList<Preview*> list_previews = previews->findChildren<Preview*>("_form_preview_");
|
||||||
|
for (int i = 0; i < list_previews.size(); i++)
|
||||||
|
{
|
||||||
|
list_previews[i]->redraw();
|
||||||
|
}
|
||||||
|
|
||||||
|
QList<DoubleSliderWidget*> list_doubles = form->findChildren<DoubleSliderWidget*>("_form_doubleslider_");
|
||||||
|
for (int i = 0; i < list_doubles.size(); i++)
|
||||||
|
{
|
||||||
|
list_doubles[i]->revert();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void BaseForm::addPreview(Preview* preview, QString label)
|
||||||
|
{
|
||||||
|
previews->layout()->addWidget(new QLabel(label, previews));
|
||||||
|
previews->layout()->addWidget(preview);
|
||||||
|
preview->setObjectName("_form_preview_");
|
||||||
|
}
|
||||||
|
|
||||||
|
void BaseForm::addDoubleSlider(QString label, double* value, double min, double max, double small_step, double large_step)
|
||||||
|
{
|
||||||
|
QGridLayout* layout = (QGridLayout*)form->layout();
|
||||||
|
int row = layout->rowCount();
|
||||||
|
|
||||||
|
layout->addWidget(new QLabel(label, form), row, 0);
|
||||||
|
layout->addWidget(new DoubleSliderWidget(form, value, min, max, small_step, large_step), row, 1);
|
||||||
|
}
|
24
gui_qt/baseform.h
Normal file
24
gui_qt/baseform.h
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
#ifndef _GUI_QT_BASEFORM_H_
|
||||||
|
#define _GUI_QT_BASEFORM_H_
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
#include "preview.h"
|
||||||
|
|
||||||
|
class BaseForm:public QWidget
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
BaseForm(QWidget* parent);
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
virtual void revertConfig();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void addPreview(Preview* preview, QString label);
|
||||||
|
void addDoubleSlider(QString label, double* value, double min, double max, double small_step, double large_step);
|
||||||
|
|
||||||
|
private:
|
||||||
|
QWidget* previews;
|
||||||
|
QWidget* form;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // _GUI_QT_BASEFORM_H_
|
|
@ -1,7 +1,7 @@
|
||||||
#include "preview.h"
|
#include "preview.h"
|
||||||
#include "formwater.h"
|
#include "formwater.h"
|
||||||
#include "ui_formwater.h"
|
|
||||||
#include <QColor>
|
#include <QColor>
|
||||||
|
#include <QSlider>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#include "../lib_paysages/terrain.h"
|
#include "../lib_paysages/terrain.h"
|
||||||
|
@ -122,45 +122,32 @@ private:
|
||||||
|
|
||||||
/**************** Form ****************/
|
/**************** Form ****************/
|
||||||
FormWater::FormWater(QWidget *parent) :
|
FormWater::FormWater(QWidget *parent) :
|
||||||
QWidget(parent),
|
BaseForm(parent)
|
||||||
ui(new Ui::FormWater)
|
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
|
||||||
|
|
||||||
findChild<QToolBox*>("water_configs")->setCurrentIndex(0);
|
|
||||||
|
|
||||||
_definition = waterCreateDefinition();
|
_definition = waterCreateDefinition();
|
||||||
|
|
||||||
previewCoverage = new PreviewCoverage(findChild<QWidget*>("water_preview_coverage"));
|
previewCoverage = new PreviewCoverage(this);
|
||||||
previewColor = new PreviewColor(findChild<QWidget*>("water_preview_color"));
|
previewColor = new PreviewColor(this);
|
||||||
|
addPreview(previewCoverage, QString("Coverage preview"));
|
||||||
|
addPreview(previewColor, QString("Color preview"));
|
||||||
|
|
||||||
QObject::connect(findChild<QSlider*>("water_height"), SIGNAL(valueChanged(int)), this, SLOT(configChange()));
|
addDoubleSlider("Height", &_definition.height, -20.0, 20.0, 0.1, 1.0);
|
||||||
QObject::connect(findChild<QSlider*>("water_transparency"), SIGNAL(valueChanged(int)), this, SLOT(configChange()));
|
addDoubleSlider("Transparency", &_definition.transparency, 0.0, 1.0, 0.001, 0.1);
|
||||||
QObject::connect(findChild<QSlider*>("water_reflection"), SIGNAL(valueChanged(int)), this, SLOT(configChange()));
|
addDoubleSlider("Reflection", &_definition.reflection, 0.0, 1.0, 0.001, 0.1);
|
||||||
QObject::connect(findChild<QSlider*>("water_depth_limit"), SIGNAL(valueChanged(int)), this, SLOT(configChange()));
|
addDoubleSlider("Depth filtering", &_definition.transparency_depth, 0.0, 100.0, 0.5, 5.0);
|
||||||
|
|
||||||
revertConfig();
|
revertConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
FormWater::~FormWater()
|
|
||||||
{
|
|
||||||
delete ui;
|
|
||||||
}
|
|
||||||
|
|
||||||
void FormWater::dataUpdated()
|
|
||||||
{
|
|
||||||
revertConfig();
|
|
||||||
}
|
|
||||||
|
|
||||||
void FormWater::configChange()
|
void FormWater::configChange()
|
||||||
{
|
{
|
||||||
_definition.height = (double)findChild<QSlider*>("water_height")->value() / 10.0;
|
/*_definition.height = (double)findChild<QSlider*>("water_height")->value() / 10.0;
|
||||||
_definition.transparency = (double)findChild<QSlider*>("water_transparency")->value() / 1000.0;
|
_definition.transparency = (double)findChild<QSlider*>("water_transparency")->value() / 1000.0;
|
||||||
_definition.reflection = (double)findChild<QSlider*>("water_reflection")->value() / 1000.0;
|
_definition.reflection = (double)findChild<QSlider*>("water_reflection")->value() / 1000.0;
|
||||||
_definition.transparency_depth = (double)findChild<QSlider*>("water_depth_limit")->value() / 10.0;
|
_definition.transparency_depth = (double)findChild<QSlider*>("water_depth_limit")->value() / 10.0;
|
||||||
|
|
||||||
previewCoverage->redraw();
|
previewCoverage->redraw();
|
||||||
previewColor->redraw();
|
previewColor->redraw();*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void FormWater::applyConfig()
|
void FormWater::applyConfig()
|
||||||
|
@ -172,12 +159,5 @@ void FormWater::applyConfig()
|
||||||
void FormWater::revertConfig()
|
void FormWater::revertConfig()
|
||||||
{
|
{
|
||||||
waterCopyDefinition(waterGetDefinition(), &_definition);
|
waterCopyDefinition(waterGetDefinition(), &_definition);
|
||||||
|
BaseForm::revertConfig();
|
||||||
findChild<QSlider*>("water_height")->setValue(_definition.height * 10.0);
|
|
||||||
findChild<QSlider*>("water_transparency")->setValue(_definition.transparency * 1000.0);
|
|
||||||
findChild<QSlider*>("water_reflection")->setValue(_definition.reflection * 1000.0);
|
|
||||||
findChild<QSlider*>("water_depth_limit")->setValue(_definition.transparency_depth * 10.0);
|
|
||||||
|
|
||||||
previewCoverage->redraw();
|
|
||||||
previewColor->redraw();
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,32 +1,25 @@
|
||||||
#ifndef FORMWATER_H
|
#ifndef _GUI_QT_FORMWATER_H_
|
||||||
#define FORMWATER_H
|
#define _GUI_QT_FORMWATER_H_
|
||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include "preview.h"
|
#include "preview.h"
|
||||||
|
#include "baseform.h"
|
||||||
|
|
||||||
namespace Ui {
|
class FormWater : public BaseForm
|
||||||
class FormWater;
|
|
||||||
}
|
|
||||||
|
|
||||||
class FormWater : public QWidget
|
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit FormWater(QWidget *parent = 0);
|
explicit FormWater(QWidget *parent = 0);
|
||||||
~FormWater();
|
|
||||||
|
|
||||||
void dataUpdated();
|
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
virtual void revertConfig();
|
||||||
void configChange();
|
void configChange();
|
||||||
void applyConfig();
|
void applyConfig();
|
||||||
void revertConfig();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::FormWater *ui;
|
|
||||||
Preview* previewCoverage;
|
Preview* previewCoverage;
|
||||||
Preview* previewColor;
|
Preview* previewColor;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // FORMWATER_H
|
#endif // _GUI_QT_FORMWATER_H_
|
||||||
|
|
|
@ -1,344 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>FormWater</class>
|
|
||||||
<widget class="QWidget" name="FormWater">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>739</width>
|
|
||||||
<height>591</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Form</string>
|
|
||||||
</property>
|
|
||||||
<widget class="QWidget" name="horizontalLayoutWidget">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>279</x>
|
|
||||||
<y>550</y>
|
|
||||||
<width>451</width>
|
|
||||||
<height>31</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<layout class="QHBoxLayout" name="water_buttons">
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="water_apply">
|
|
||||||
<property name="text">
|
|
||||||
<string>Apply</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QPushButton" name="water_revert">
|
|
||||||
<property name="text">
|
|
||||||
<string>Revert</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<widget class="QWidget" name="verticalLayoutWidget">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>10</x>
|
|
||||||
<y>10</y>
|
|
||||||
<width>258</width>
|
|
||||||
<height>566</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="water_previews">
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_5">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Coverage preview</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QWidget" name="water_preview_coverage" native="true">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>256</width>
|
|
||||||
<height>256</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>256</width>
|
|
||||||
<height>256</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="baseSize">
|
|
||||||
<size>
|
|
||||||
<width>256</width>
|
|
||||||
<height>256</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_6">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Color preview</string>
|
|
||||||
</property>
|
|
||||||
<property name="alignment">
|
|
||||||
<set>Qt::AlignCenter</set>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QWidget" name="water_preview_color" native="true">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>256</width>
|
|
||||||
<height>256</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>256</width>
|
|
||||||
<height>256</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="baseSize">
|
|
||||||
<size>
|
|
||||||
<width>256</width>
|
|
||||||
<height>256</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<widget class="QToolBox" name="water_configs">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>280</x>
|
|
||||||
<y>10</y>
|
|
||||||
<width>451</width>
|
|
||||||
<height>531</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="currentIndex">
|
|
||||||
<number>2</number>
|
|
||||||
</property>
|
|
||||||
<widget class="QWidget" name="water_config_coverage">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>451</width>
|
|
||||||
<height>438</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<attribute name="label">
|
|
||||||
<string>Coverage</string>
|
|
||||||
</attribute>
|
|
||||||
<widget class="QWidget" name="formLayoutWidget_5">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>451</width>
|
|
||||||
<height>431</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<layout class="QFormLayout" name="formLayout_5">
|
|
||||||
<property name="fieldGrowthPolicy">
|
|
||||||
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
|
|
||||||
</property>
|
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QLabel" name="heightLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string>Height</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1">
|
|
||||||
<widget class="QSlider" name="water_height">
|
|
||||||
<property name="minimum">
|
|
||||||
<number>-300</number>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>300</number>
|
|
||||||
</property>
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<widget class="QWidget" name="water_config_waves">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>451</width>
|
|
||||||
<height>438</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<attribute name="label">
|
|
||||||
<string>Waves</string>
|
|
||||||
</attribute>
|
|
||||||
</widget>
|
|
||||||
<widget class="QWidget" name="water_config_colors">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>451</width>
|
|
||||||
<height>438</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<attribute name="label">
|
|
||||||
<string>Colors</string>
|
|
||||||
</attribute>
|
|
||||||
<widget class="QWidget" name="formLayoutWidget_6">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>451</width>
|
|
||||||
<height>431</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<layout class="QFormLayout" name="formLayout_6">
|
|
||||||
<property name="fieldGrowthPolicy">
|
|
||||||
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
|
|
||||||
</property>
|
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QLabel" name="transparencyLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string>Transparency</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1">
|
|
||||||
<widget class="QSlider" name="water_transparency">
|
|
||||||
<property name="maximum">
|
|
||||||
<number>1000</number>
|
|
||||||
</property>
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="tickPosition">
|
|
||||||
<enum>QSlider::TicksBelow</enum>
|
|
||||||
</property>
|
|
||||||
<property name="tickInterval">
|
|
||||||
<number>100</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QLabel" name="reflectionLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string>Reflection</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QSlider" name="water_reflection">
|
|
||||||
<property name="maximum">
|
|
||||||
<number>1000</number>
|
|
||||||
</property>
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="tickPosition">
|
|
||||||
<enum>QSlider::TicksBelow</enum>
|
|
||||||
</property>
|
|
||||||
<property name="tickInterval">
|
|
||||||
<number>100</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
|
||||||
<widget class="QLabel" name="surfaceColorLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string>Surface color</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="1">
|
|
||||||
<widget class="QPushButton" name="pushButton_7">
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="0">
|
|
||||||
<widget class="QLabel" name="depthColorLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string>Depth color</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="0">
|
|
||||||
<widget class="QLabel" name="depthLimitLabel">
|
|
||||||
<property name="text">
|
|
||||||
<string>Depth limit</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="1">
|
|
||||||
<widget class="QPushButton" name="pushButton_8">
|
|
||||||
<property name="text">
|
|
||||||
<string>PushButton</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="4" column="1">
|
|
||||||
<widget class="QSlider" name="water_depth_limit">
|
|
||||||
<property name="maximum">
|
|
||||||
<number>500</number>
|
|
||||||
</property>
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="tickPosition">
|
|
||||||
<enum>QSlider::TicksBelow</enum>
|
|
||||||
</property>
|
|
||||||
<property name="tickInterval">
|
|
||||||
<number>10</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
|
@ -14,10 +14,11 @@ LIBS += -L../lib_paysages/ -lpaysages
|
||||||
HEADERS += ../lib_paysages/shared/functions.h ../lib_paysages/shared/types.h \
|
HEADERS += ../lib_paysages/shared/functions.h ../lib_paysages/shared/types.h \
|
||||||
mainwindow.h \
|
mainwindow.h \
|
||||||
formwater.h \
|
formwater.h \
|
||||||
preview.h
|
preview.h \
|
||||||
FORMS += mainwindow.ui \
|
baseform.h
|
||||||
formwater.ui
|
FORMS += mainwindow.ui
|
||||||
SOURCES += main.cc \
|
SOURCES += main.cc \
|
||||||
mainwindow.cpp \
|
mainwindow.cpp \
|
||||||
formwater.cpp \
|
formwater.cpp \
|
||||||
preview.cpp
|
preview.cpp \
|
||||||
|
baseform.cpp
|
||||||
|
|
|
@ -47,7 +47,9 @@ Preview::Preview(QWidget* parent) :
|
||||||
this->need_rerender = 0;
|
this->need_rerender = 0;
|
||||||
this->need_render = 0;
|
this->need_render = 0;
|
||||||
|
|
||||||
this->resize(parent->size());
|
this->setMinimumSize(256, 256);
|
||||||
|
this->setMaximumSize(256, 256);
|
||||||
|
this->resize(256, 256);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Preview::startUpdater()
|
void Preview::startUpdater()
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#ifndef PREVIEW_H
|
#ifndef _GUI_QT_PREVIEW_H_
|
||||||
#define PREVIEW_H
|
#define _GUI_QT_PREVIEW_H_
|
||||||
|
|
||||||
#include <QMutex>
|
#include <QMutex>
|
||||||
#include <QImage>
|
#include <QImage>
|
||||||
|
@ -45,4 +45,4 @@ protected:
|
||||||
//SmallPreviewCallback renderer;
|
//SmallPreviewCallback renderer;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // PREVIEW_H
|
#endif // _GUI_QT_PREVIEW_H_
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
#include "water.h"
|
#include "water.h"
|
||||||
#include "clouds.h"
|
#include "clouds.h"
|
||||||
#include "sky.h"
|
#include "sky.h"
|
||||||
|
#include "modifiers.h"
|
||||||
#include "terrain.h"
|
#include "terrain.h"
|
||||||
#include "textures.h"
|
#include "textures.h"
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#include "shared/types.h"
|
#include "shared/types.h"
|
||||||
#include "shared/functions.h"
|
#include "shared/functions.h"
|
||||||
|
#include "modifiers.h"
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
|
27
lib_paysages/modifiers.h
Normal file
27
lib_paysages/modifiers.h
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
#ifndef _PAYSAGES_MODIFIERS_H_
|
||||||
|
#define _PAYSAGES_MODIFIERS_H_
|
||||||
|
|
||||||
|
#include "shared/types.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct HeightModifier HeightModifier;
|
||||||
|
|
||||||
|
HeightModifier* modifierCreate();
|
||||||
|
HeightModifier* modifierCreateCopy(HeightModifier* source);
|
||||||
|
void modifierDelete(HeightModifier* modifier);
|
||||||
|
void modifierSave(HeightModifier* modifier, FILE* f);
|
||||||
|
void modifierLoad(HeightModifier* modifier, FILE* f);
|
||||||
|
Zone* modifierGetZone(HeightModifier* modifier);
|
||||||
|
void modifierActionAddValue(HeightModifier* modifier, double value);
|
||||||
|
void modifierActionFixValue(HeightModifier* modifier, double value);
|
||||||
|
Vector3 modifierApply(HeightModifier* modifier, Vector3 location);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
|
@ -105,17 +105,6 @@ void lightingSetSunAngle(double hor, double ver);
|
||||||
void lightingSetSunColor(Color col);
|
void lightingSetSunColor(Color col);
|
||||||
Color lightingApply(Vector3 location, Vector3 normal, double shadowing, Color base, double reflection, double shininess);
|
Color lightingApply(Vector3 location, Vector3 normal, double shadowing, Color base, double reflection, double shininess);
|
||||||
|
|
||||||
/* modifiers.c */
|
|
||||||
HeightModifier* modifierCreate();
|
|
||||||
HeightModifier* modifierCreateCopy(HeightModifier* source);
|
|
||||||
void modifierDelete(HeightModifier* modifier);
|
|
||||||
void modifierSave(HeightModifier* modifier, FILE* f);
|
|
||||||
void modifierLoad(HeightModifier* modifier, FILE* f);
|
|
||||||
Zone* modifierGetZone(HeightModifier* modifier);
|
|
||||||
void modifierActionAddValue(HeightModifier* modifier, double value);
|
|
||||||
void modifierActionFixValue(HeightModifier* modifier, double value);
|
|
||||||
Vector3 modifierApply(HeightModifier* modifier, Vector3 location);
|
|
||||||
|
|
||||||
/* noise.c */
|
/* noise.c */
|
||||||
NoiseGenerator* noiseCreateGenerator();
|
NoiseGenerator* noiseCreateGenerator();
|
||||||
void noiseDeleteGenerator(NoiseGenerator* generator);
|
void noiseDeleteGenerator(NoiseGenerator* generator);
|
||||||
|
|
|
@ -100,8 +100,6 @@ typedef struct NoiseGenerator NoiseGenerator;
|
||||||
|
|
||||||
typedef struct Zone Zone;
|
typedef struct Zone Zone;
|
||||||
|
|
||||||
typedef struct HeightModifier HeightModifier;
|
|
||||||
|
|
||||||
typedef void (*PreviewCallbackResize)(int width, int height);
|
typedef void (*PreviewCallbackResize)(int width, int height);
|
||||||
typedef void (*PreviewCallbackClear)(Color col);
|
typedef void (*PreviewCallbackClear)(Color col);
|
||||||
typedef void (*PreviewCallbackDraw)(int x, int y, Color col);
|
typedef void (*PreviewCallbackDraw)(int x, int y, Color col);
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#define _PAYSAGES_TERRAIN_H_
|
#define _PAYSAGES_TERRAIN_H_
|
||||||
|
|
||||||
#include "shared/types.h"
|
#include "shared/types.h"
|
||||||
|
#include "modifiers.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|
Loading…
Reference in a new issue