paysages : ColorGradation dialog.
git-svn-id: https://subversion.assembla.com/svn/thunderk/paysages@271 b1fd45b6-86a6-48da-8261-f70d1f35bdcc
This commit is contained in:
parent
22726e02e6
commit
fabcec1cfd
25 changed files with 236 additions and 110 deletions
|
@ -96,7 +96,7 @@ void BaseForm::configChangeEvent()
|
|||
button_revert->setEnabled(true);
|
||||
}
|
||||
|
||||
QList<Preview*> list_previews = previews->findChildren<Preview*>("_form_preview_");
|
||||
QList<BasePreview*> list_previews = previews->findChildren<BasePreview*>("_form_preview_");
|
||||
for (int i = 0; i < list_previews.size(); i++)
|
||||
{
|
||||
list_previews[i]->redraw();
|
||||
|
@ -148,7 +148,7 @@ void BaseForm::layerListChanged()
|
|||
layerSelectedEvent(layer_list->currentIndex());
|
||||
}
|
||||
|
||||
void BaseForm::addPreview(Preview* preview, QString label)
|
||||
void BaseForm::addPreview(BasePreview* preview, QString label)
|
||||
{
|
||||
previews->layout()->addWidget(new QLabel(label, previews));
|
||||
previews->layout()->addWidget(preview);
|
||||
|
@ -238,7 +238,17 @@ void BaseForm::setLayerCount(int layer_count)
|
|||
{
|
||||
layer_list->addItem(QString("Layer %1").arg(i + 1));
|
||||
}
|
||||
layer_list->setCurrentIndex(selected);
|
||||
if (selected >= 0)
|
||||
{
|
||||
if (selected > layer_count)
|
||||
{
|
||||
layer_list->setCurrentIndex(layer_count - 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
layer_list->setCurrentIndex(selected);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -261,7 +271,7 @@ void BaseForm::layerSelectedEvent(int layer)
|
|||
inputs[i]->revert();
|
||||
}
|
||||
|
||||
QList<Preview*> list_previews = previews->findChildren<Preview*>("_form_preview_");
|
||||
QList<BasePreview*> list_previews = previews->findChildren<BasePreview*>("_form_preview_");
|
||||
for (int i = 0; i < list_previews.size(); i++)
|
||||
{
|
||||
list_previews[i]->redraw();
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#include <QWidget>
|
||||
#include <QPushButton>
|
||||
#include <QComboBox>
|
||||
#include "preview.h"
|
||||
#include "basepreview.h"
|
||||
#include "baseinput.h"
|
||||
#include "../lib_paysages/shared/types.h"
|
||||
#include "../lib_paysages/noise.h"
|
||||
|
@ -32,7 +32,7 @@ private slots:
|
|||
void layerListChanged();
|
||||
|
||||
protected:
|
||||
void addPreview(Preview* preview, QString label);
|
||||
void addPreview(BasePreview* preview, QString label);
|
||||
QPushButton* addButton(QString label);
|
||||
void addInput(BaseInput* input);
|
||||
void addInputInt(QString label, int* value, int min, int max, int small_step, int large_step);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "preview.h"
|
||||
#include "basepreview.h"
|
||||
|
||||
#include <QVector>
|
||||
#include <QPainter>
|
||||
|
@ -8,7 +8,7 @@
|
|||
class PreviewDrawer:public QThread
|
||||
{
|
||||
public:
|
||||
PreviewDrawer(Preview* preview):
|
||||
PreviewDrawer(BasePreview* preview):
|
||||
QThread(),
|
||||
_preview(preview)
|
||||
{
|
||||
|
@ -29,11 +29,11 @@ protected:
|
|||
}
|
||||
}
|
||||
private:
|
||||
Preview* _preview;
|
||||
BasePreview* _preview;
|
||||
bool _running;
|
||||
};
|
||||
|
||||
Preview::Preview(QWidget* parent) :
|
||||
BasePreview::BasePreview(QWidget* parent) :
|
||||
QWidget(parent)
|
||||
{
|
||||
this->lock_drawing = new QMutex();
|
||||
|
@ -65,7 +65,7 @@ Preview::Preview(QWidget* parent) :
|
|||
this->updater = new PreviewDrawer(this);
|
||||
}
|
||||
|
||||
Preview::~Preview()
|
||||
BasePreview::~BasePreview()
|
||||
{
|
||||
alive = false;
|
||||
|
||||
|
@ -77,21 +77,21 @@ Preview::~Preview()
|
|||
delete lock_drawing;
|
||||
}
|
||||
|
||||
void Preview::updateData()
|
||||
void BasePreview::updateData()
|
||||
{
|
||||
}
|
||||
|
||||
QColor Preview::getColor(double x, double y)
|
||||
QColor BasePreview::getColor(double x, double y)
|
||||
{
|
||||
return QColor(0, 0, 0);
|
||||
}
|
||||
|
||||
void Preview::start()
|
||||
void BasePreview::start()
|
||||
{
|
||||
this->updater->start();
|
||||
}
|
||||
|
||||
void Preview::doRender()
|
||||
void BasePreview::doRender()
|
||||
{
|
||||
if (this->alive)
|
||||
{
|
||||
|
@ -107,12 +107,12 @@ void Preview::doRender()
|
|||
}
|
||||
}
|
||||
|
||||
void Preview::redraw()
|
||||
void BasePreview::redraw()
|
||||
{
|
||||
emit(redrawRequested());
|
||||
}
|
||||
|
||||
void Preview::handleRedraw()
|
||||
void BasePreview::handleRedraw()
|
||||
{
|
||||
need_rerender = true;
|
||||
lock_drawing->lock();
|
||||
|
@ -121,14 +121,14 @@ void Preview::handleRedraw()
|
|||
lock_drawing->unlock();
|
||||
}
|
||||
|
||||
void Preview::setScaling(double scaling)
|
||||
void BasePreview::setScaling(double scaling)
|
||||
{
|
||||
// TODO Follow conf_scale
|
||||
this->scaling = scaling;
|
||||
redraw();
|
||||
}
|
||||
|
||||
void Preview::resizeEvent(QResizeEvent* event)
|
||||
void BasePreview::resizeEvent(QResizeEvent* event)
|
||||
{
|
||||
QImage* image;
|
||||
|
||||
|
@ -147,13 +147,13 @@ void Preview::resizeEvent(QResizeEvent* event)
|
|||
this->lock_drawing->unlock();
|
||||
}
|
||||
|
||||
void Preview::paintEvent(QPaintEvent* event)
|
||||
void BasePreview::paintEvent(QPaintEvent* event)
|
||||
{
|
||||
QPainter painter(this);
|
||||
painter.drawImage(0, 0, *this->pixbuf);
|
||||
}
|
||||
|
||||
void Preview::forceRender()
|
||||
void BasePreview::forceRender()
|
||||
{
|
||||
this->lock_drawing->lock();
|
||||
this->pixbuf->fill(0x00000000);
|
||||
|
@ -162,7 +162,7 @@ void Preview::forceRender()
|
|||
this->lock_drawing->unlock();
|
||||
}
|
||||
|
||||
void Preview::renderPixbuf()
|
||||
void BasePreview::renderPixbuf()
|
||||
{
|
||||
QColor col;
|
||||
bool done;
|
||||
|
@ -205,7 +205,7 @@ void Preview::renderPixbuf()
|
|||
}
|
||||
}
|
||||
|
||||
void Preview::wheelEvent(QWheelEvent* event)
|
||||
void BasePreview::wheelEvent(QWheelEvent* event)
|
||||
{
|
||||
if (event->orientation() == Qt::Vertical)
|
||||
{
|
|
@ -1,18 +1,18 @@
|
|||
#ifndef _PAYSAGES_QT_PREVIEW_H_
|
||||
#define _PAYSAGES_QT_PREVIEW_H_
|
||||
#ifndef _PAYSAGES_QT_BASEPREVIEW_H_
|
||||
#define _PAYSAGES_QT_BASEPREVIEW_H_
|
||||
|
||||
#include <QMutex>
|
||||
#include <QImage>
|
||||
#include <QWidget>
|
||||
#include <QThread>
|
||||
|
||||
class Preview:public QWidget
|
||||
class BasePreview:public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
Preview(QWidget* parent);
|
||||
~Preview();
|
||||
BasePreview(QWidget* parent);
|
||||
~BasePreview();
|
||||
|
||||
void start();
|
||||
void doRender();
|
|
@ -9,43 +9,92 @@
|
|||
#include <QScrollArea>
|
||||
#include <QPushButton>
|
||||
#include "baseform.h"
|
||||
#include "tools.h"
|
||||
|
||||
/**************** Dialog form ****************/
|
||||
/**************** Preview ****************/
|
||||
class PreviewColorGradation:public BasePreview
|
||||
{
|
||||
public:
|
||||
PreviewColorGradation(QWidget* parent, ColorGradation* gradation): BasePreview(parent)
|
||||
{
|
||||
_gradation_original = gradation;
|
||||
_gradation_preview = *gradation;
|
||||
setMinimumSize(300, 30);
|
||||
setMaximumSize(300, 30);
|
||||
resize(300, 30);
|
||||
// TODO No scrolling/scaling
|
||||
}
|
||||
|
||||
protected:
|
||||
void updateData()
|
||||
{
|
||||
_gradation_preview = *_gradation_original;
|
||||
}
|
||||
QColor getColor(double x, double y)
|
||||
{
|
||||
return colorToQColor(colorGradationGet(&_gradation_preview, x / 600 + 0.5));
|
||||
}
|
||||
private:
|
||||
ColorGradation* _gradation_original;
|
||||
ColorGradation _gradation_preview;
|
||||
};
|
||||
|
||||
/**************** Form ****************/
|
||||
class FormColorGradation:public BaseForm
|
||||
{
|
||||
public:
|
||||
FormColorGradation(QWidget* parent, ColorGradation* gradation):BaseForm(parent, true, true)
|
||||
{
|
||||
QPushButton* button;
|
||||
_gradation = gradation;
|
||||
|
||||
addPreview(new PreviewColorGradation(this, _gradation), "Preview");
|
||||
|
||||
addInputDouble("Position", &_layer.start, 0.0, 1.0, 0.01, 0.1);
|
||||
addInputColor("Color", &_layer.col);
|
||||
|
||||
setLayerCount(gradation->nbparts);
|
||||
button = addButton("Validate");
|
||||
QObject::connect(button, SIGNAL(clicked()), parent, SLOT(accept()));
|
||||
|
||||
button = addButton("Revert");
|
||||
QObject::connect(button, SIGNAL(clicked()), parent, SLOT(revert()));
|
||||
|
||||
button = addButton("Cancel");
|
||||
QObject::connect(button, SIGNAL(clicked()), parent, SLOT(reject()));
|
||||
|
||||
revertConfig();
|
||||
}
|
||||
|
||||
~FormColorGradation()
|
||||
void revertConfig()
|
||||
{
|
||||
setLayerCount(colorGradationGetPartCount(_gradation));
|
||||
}
|
||||
|
||||
void configChangeEvent()
|
||||
{
|
||||
colorGradationSetPart(_gradation, currentLayer(), _layer);
|
||||
|
||||
BaseForm::configChangeEvent();
|
||||
}
|
||||
|
||||
void layerAddedEvent()
|
||||
{
|
||||
/*if (cloudsAddLayer(&_definition) >= 0)
|
||||
if (colorGradationAddPart(_gradation) >= 0)
|
||||
{
|
||||
BaseForm::layerAddedEvent();
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
void layerDeletedEvent(int layer)
|
||||
{
|
||||
/*cloudsDeleteLayer(&_definition, layer);
|
||||
colorGradationDelPart(_gradation, layer);
|
||||
|
||||
BaseForm::layerDeletedEvent(layer);*/
|
||||
BaseForm::layerDeletedEvent(layer);
|
||||
}
|
||||
|
||||
void layerSelectedEvent(int layer)
|
||||
{
|
||||
_layer = _gradation->parts[layer];
|
||||
_layer = colorGradationGetPart(_gradation, layer);
|
||||
|
||||
BaseForm::layerSelectedEvent(layer);
|
||||
}
|
||||
|
@ -60,18 +109,18 @@ DialogColorGradation::DialogColorGradation(QWidget *parent, ColorGradation* grad
|
|||
QDialog(parent)
|
||||
{
|
||||
QWidget* preview;
|
||||
BaseForm* form;
|
||||
|
||||
_base = gradation;
|
||||
_current = colorGradationCreate();
|
||||
_current = *_base;
|
||||
|
||||
setLayout(new QHBoxLayout());
|
||||
|
||||
preview = new QWidget(this);
|
||||
layout()->addWidget(preview);
|
||||
|
||||
form = new FormColorGradation(this, &_current);
|
||||
layout()->addWidget(form);
|
||||
_form = new FormColorGradation(this, &_current);
|
||||
layout()->addWidget(_form);
|
||||
|
||||
/*QObject::connect(button, SIGNAL(clicked()), this, SLOT(accept()));
|
||||
QObject::connect(button, SIGNAL(clicked()), this, SLOT(revert()));
|
||||
|
@ -118,4 +167,5 @@ void DialogColorGradation::revert()
|
|||
|
||||
void DialogColorGradation::revertToCurrent()
|
||||
{
|
||||
_form->revertConfig();
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#define _PAYSAGES_QT_DIALOGCOLORGRADATION_H_
|
||||
|
||||
#include <QDialog>
|
||||
#include "baseform.h"
|
||||
|
||||
#include "../lib_paysages/color.h"
|
||||
|
||||
|
@ -27,6 +28,7 @@ private:
|
|||
private:
|
||||
ColorGradation* _base;
|
||||
ColorGradation _current;
|
||||
BaseForm* _form;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -10,10 +10,10 @@
|
|||
#include <QPushButton>
|
||||
|
||||
/**************** Previews ****************/
|
||||
class PreviewLevel:public Preview
|
||||
class PreviewLevel:public BasePreview
|
||||
{
|
||||
public:
|
||||
PreviewLevel(QWidget* parent, NoiseGenerator* noise): Preview(parent)
|
||||
PreviewLevel(QWidget* parent, NoiseGenerator* noise): BasePreview(parent)
|
||||
{
|
||||
_noise_original = noise;
|
||||
_noise_preview = noiseCreateGenerator();
|
||||
|
@ -47,10 +47,10 @@ private:
|
|||
int _level;
|
||||
};
|
||||
|
||||
class PreviewTotal:public Preview
|
||||
class PreviewTotal:public BasePreview
|
||||
{
|
||||
public:
|
||||
PreviewTotal(QWidget* parent, NoiseGenerator* noise): Preview(parent)
|
||||
PreviewTotal(QWidget* parent, NoiseGenerator* noise): BasePreview(parent)
|
||||
{
|
||||
_noise_original = noise;
|
||||
_noise_preview = noiseCreateGenerator();
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include <QDialog>
|
||||
#include <QListWidget>
|
||||
#include "preview.h"
|
||||
#include "basepreview.h"
|
||||
|
||||
#include "../lib_paysages/noise.h"
|
||||
|
||||
|
@ -38,8 +38,8 @@ private:
|
|||
NoiseGenerator* _current;
|
||||
int _current_level;
|
||||
NoiseLevel _current_level_params;
|
||||
Preview* previewLevel;
|
||||
Preview* previewTotal;
|
||||
BasePreview* previewLevel;
|
||||
BasePreview* previewTotal;
|
||||
QListWidget* levels;
|
||||
QSlider* slider_height;
|
||||
QSlider* slider_scaling;
|
||||
|
|
|
@ -9,11 +9,11 @@
|
|||
static AtmosphereDefinition _definition;
|
||||
|
||||
/**************** Previews ****************/
|
||||
class PreviewAtmosphereColor:public Preview
|
||||
class PreviewAtmosphereColor:public BasePreview
|
||||
{
|
||||
public:
|
||||
PreviewAtmosphereColor(QWidget* parent):
|
||||
Preview(parent)
|
||||
BasePreview(parent)
|
||||
{
|
||||
_renderer = rendererCreate();
|
||||
_preview_definition = atmosphereCreateDefinition();
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#define _PAYSAGES_QT_FORMATMOSPHERE_H_
|
||||
|
||||
#include <QWidget>
|
||||
#include "preview.h"
|
||||
#include "basepreview.h"
|
||||
#include "baseform.h"
|
||||
|
||||
class FormAtmosphere : public BaseForm
|
||||
|
@ -20,7 +20,7 @@ protected slots:
|
|||
virtual void configChangeEvent();
|
||||
|
||||
private:
|
||||
Preview* previewColor;
|
||||
BasePreview* previewColor;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -12,10 +12,10 @@ static CloudsDefinition _definition;
|
|||
static CloudsLayerDefinition _layer;
|
||||
|
||||
/**************** Previews ****************/
|
||||
class PreviewCloudsCoverage:public Preview
|
||||
class PreviewCloudsCoverage:public BasePreview
|
||||
{
|
||||
public:
|
||||
PreviewCloudsCoverage(QWidget* parent):Preview(parent)
|
||||
PreviewCloudsCoverage(QWidget* parent):BasePreview(parent)
|
||||
{
|
||||
_renderer = rendererCreate();
|
||||
_renderer.render_quality = 3;
|
||||
|
@ -51,10 +51,10 @@ private:
|
|||
CloudsLayerDefinition _preview_layer;
|
||||
};
|
||||
|
||||
class PreviewCloudsColor:public Preview
|
||||
class PreviewCloudsColor:public BasePreview
|
||||
{
|
||||
public:
|
||||
PreviewCloudsColor(QWidget* parent):Preview(parent)
|
||||
PreviewCloudsColor(QWidget* parent):BasePreview(parent)
|
||||
{
|
||||
LightDefinition light;
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#define _PAYSAGES_QT_FORMCLOUDS_H_
|
||||
|
||||
#include <QWidget>
|
||||
#include "preview.h"
|
||||
#include "basepreview.h"
|
||||
#include "baseform.h"
|
||||
|
||||
class FormClouds : public BaseForm
|
||||
|
@ -25,8 +25,8 @@ protected:
|
|||
virtual void layerSelectedEvent(int layer);
|
||||
|
||||
private:
|
||||
Preview* previewCoverage;
|
||||
Preview* previewColor;
|
||||
BasePreview* previewCoverage;
|
||||
BasePreview* previewColor;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#define _PAYSAGES_QT_FORMLIGHTING_H_
|
||||
|
||||
#include <QWidget>
|
||||
#include "preview.h"
|
||||
#include "basepreview.h"
|
||||
#include "baseform.h"
|
||||
|
||||
class FormLighting : public BaseForm
|
||||
|
@ -20,7 +20,7 @@ protected slots:
|
|||
virtual void configChangeEvent();
|
||||
|
||||
private:
|
||||
Preview* previewColor;
|
||||
BasePreview* previewColor;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -14,11 +14,11 @@
|
|||
static SkyDefinition _definition;
|
||||
|
||||
/**************** Previews ****************/
|
||||
class PreviewSkyEast:public Preview
|
||||
class PreviewSkyEast:public BasePreview
|
||||
{
|
||||
public:
|
||||
PreviewSkyEast(QWidget* parent):
|
||||
Preview(parent)
|
||||
BasePreview(parent)
|
||||
{
|
||||
_renderer = rendererCreate();
|
||||
_preview_definition = skyCreateDefinition();
|
||||
|
@ -44,11 +44,11 @@ private:
|
|||
SkyDefinition _preview_definition;
|
||||
};
|
||||
|
||||
class PreviewSkyWest:public Preview
|
||||
class PreviewSkyWest:public BasePreview
|
||||
{
|
||||
public:
|
||||
PreviewSkyWest(QWidget* parent):
|
||||
Preview(parent)
|
||||
BasePreview(parent)
|
||||
{
|
||||
_renderer = rendererCreate();
|
||||
_preview_definition = skyCreateDefinition();
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#define _PAYSAGES_QT_FORMSKY_H_
|
||||
|
||||
#include <QWidget>
|
||||
#include "preview.h"
|
||||
#include "basepreview.h"
|
||||
#include "baseform.h"
|
||||
|
||||
class FormSky : public BaseForm
|
||||
|
@ -20,8 +20,8 @@ protected slots:
|
|||
virtual void configChangeEvent();
|
||||
|
||||
private:
|
||||
Preview* previewEast;
|
||||
Preview* previewWest;
|
||||
BasePreview* previewEast;
|
||||
BasePreview* previewWest;
|
||||
};
|
||||
|
||||
#endif // _PAYSAGES_QT_FORMSKY_H_
|
||||
|
|
|
@ -12,10 +12,10 @@
|
|||
static TerrainDefinition _definition;
|
||||
|
||||
/**************** Previews ****************/
|
||||
class PreviewTerrainHeight:public Preview
|
||||
class PreviewTerrainHeight:public BasePreview
|
||||
{
|
||||
public:
|
||||
PreviewTerrainHeight(QWidget* parent):Preview(parent)
|
||||
PreviewTerrainHeight(QWidget* parent):BasePreview(parent)
|
||||
{
|
||||
_preview_definition = terrainCreateDefinition();
|
||||
}
|
||||
|
@ -35,10 +35,10 @@ private:
|
|||
TerrainDefinition _preview_definition;
|
||||
};
|
||||
|
||||
class PreviewTerrainColor:public Preview
|
||||
class PreviewTerrainColor:public BasePreview
|
||||
{
|
||||
public:
|
||||
PreviewTerrainColor(QWidget* parent):Preview(parent)
|
||||
PreviewTerrainColor(QWidget* parent):BasePreview(parent)
|
||||
{
|
||||
_renderer = rendererCreate();
|
||||
_renderer.applyTextures = _applyTextures;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#define _PAYSAGES_QT_FORMTERRAIN_H_
|
||||
|
||||
#include <QWidget>
|
||||
#include "preview.h"
|
||||
#include "basepreview.h"
|
||||
#include "baseform.h"
|
||||
|
||||
class FormTerrain : public BaseForm
|
||||
|
@ -20,8 +20,8 @@ protected slots:
|
|||
virtual void configChangeEvent();
|
||||
|
||||
private:
|
||||
Preview* previewHeight;
|
||||
Preview* previewColor;
|
||||
BasePreview* previewHeight;
|
||||
BasePreview* previewColor;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#define _PAYSAGES_QT_FORMTEXTURES_H_
|
||||
|
||||
#include <QWidget>
|
||||
#include "preview.h"
|
||||
#include "basepreview.h"
|
||||
#include "baseform.h"
|
||||
|
||||
class FormTextures : public BaseForm
|
||||
|
@ -20,8 +20,8 @@ protected slots:
|
|||
virtual void configChangeEvent();
|
||||
|
||||
private:
|
||||
Preview* previewCoverage;
|
||||
Preview* previewColor;
|
||||
BasePreview* previewCoverage;
|
||||
BasePreview* previewColor;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "preview.h"
|
||||
#include "basepreview.h"
|
||||
#include "formwater.h"
|
||||
|
||||
#include <QColor>
|
||||
|
@ -17,10 +17,10 @@
|
|||
static WaterDefinition _definition;
|
||||
|
||||
/**************** Previews ****************/
|
||||
class PreviewWaterCoverage:public Preview
|
||||
class PreviewWaterCoverage:public BasePreview
|
||||
{
|
||||
public:
|
||||
PreviewWaterCoverage(QWidget* parent):Preview(parent)
|
||||
PreviewWaterCoverage(QWidget* parent):BasePreview(parent)
|
||||
{
|
||||
_water = waterCreateDefinition();
|
||||
_terrain = terrainCreateDefinition();
|
||||
|
@ -51,10 +51,10 @@ private:
|
|||
TerrainDefinition _terrain;
|
||||
};
|
||||
|
||||
class PreviewWaterColor:public Preview
|
||||
class PreviewWaterColor:public BasePreview
|
||||
{
|
||||
public:
|
||||
PreviewWaterColor(QWidget* parent):Preview(parent)
|
||||
PreviewWaterColor(QWidget* parent):BasePreview(parent)
|
||||
{
|
||||
LightDefinition light;
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#define _PAYSAGES_QT_FORMWATER_H_
|
||||
|
||||
#include <QWidget>
|
||||
#include "preview.h"
|
||||
#include "basepreview.h"
|
||||
#include "baseform.h"
|
||||
|
||||
class FormWater : public BaseForm
|
||||
|
@ -17,8 +17,8 @@ public slots:
|
|||
virtual void applyConfig();
|
||||
|
||||
private:
|
||||
Preview* previewCoverage;
|
||||
Preview* previewColor;
|
||||
BasePreview* previewCoverage;
|
||||
BasePreview* previewColor;
|
||||
};
|
||||
|
||||
#endif // _PAYSAGES_QT_FORMWATER_H_
|
||||
|
|
|
@ -108,23 +108,23 @@ void autoGenRealisticLandscape(int seed)
|
|||
|
||||
/* Sky */
|
||||
sky = skyCreateDefinition();
|
||||
colorGradationAddRgba(&sky.sun_color, 0.3, 1.0, 0.91, 0.8, 1.0);
|
||||
colorGradationAddRgba(&sky.sun_color, 0.5, 1.0, 0.95, 0.9, 1.0);
|
||||
colorGradationAddRgba(&sky.sun_color, 0.7, 1.0, 0.91, 0.8, 1.0);
|
||||
colorGradationAddRgba(&sky.zenith_color, 0.2, 0.03, 0.03, 0.05, 1.0);
|
||||
colorGradationAddRgba(&sky.zenith_color, 0.25, 0.25, 0.33, 0.37, 1.0);
|
||||
colorGradationAddRgba(&sky.zenith_color, 0.35, 0.52, 0.63, 0.8, 1.0);
|
||||
colorGradationAddRgba(&sky.zenith_color, 0.65, 0.52, 0.63, 0.8, 1.0);
|
||||
colorGradationAddRgba(&sky.zenith_color, 0.75, 0.25, 0.33, 0.37, 1.0);
|
||||
colorGradationAddRgba(&sky.zenith_color, 0.8, 0.03, 0.03, 0.05, 1.0);
|
||||
colorGradationAddRgba(&sky.haze_color, 0.2, 0.05, 0.05, 0.08, 1.0);
|
||||
colorGradationAddRgba(&sky.haze_color, 0.25, 0.55, 0.42, 0.42, 1.0);
|
||||
colorGradationAddRgba(&sky.haze_color, 0.3, 0.6, 0.6, 0.6, 1.0);
|
||||
colorGradationAddRgba(&sky.haze_color, 0.4, 0.92, 0.93, 1.0, 1.0);
|
||||
colorGradationAddRgba(&sky.haze_color, 0.6, 0.92, 0.93, 1.0, 1.0);
|
||||
colorGradationAddRgba(&sky.haze_color, 0.7, 0.6, 0.6, 0.8, 1.0);
|
||||
colorGradationAddRgba(&sky.haze_color, 0.75, 0.62, 0.50, 0.42, 1.0);
|
||||
colorGradationAddRgba(&sky.haze_color, 0.8, 0.05, 0.05, 0.08, 1.0);
|
||||
colorGradationQuickAddRgba(&sky.sun_color, 0.3, 1.0, 0.91, 0.8, 1.0);
|
||||
colorGradationQuickAddRgba(&sky.sun_color, 0.5, 1.0, 0.95, 0.9, 1.0);
|
||||
colorGradationQuickAddRgba(&sky.sun_color, 0.7, 1.0, 0.91, 0.8, 1.0);
|
||||
colorGradationQuickAddRgba(&sky.zenith_color, 0.2, 0.03, 0.03, 0.05, 1.0);
|
||||
colorGradationQuickAddRgba(&sky.zenith_color, 0.25, 0.25, 0.33, 0.37, 1.0);
|
||||
colorGradationQuickAddRgba(&sky.zenith_color, 0.35, 0.52, 0.63, 0.8, 1.0);
|
||||
colorGradationQuickAddRgba(&sky.zenith_color, 0.65, 0.52, 0.63, 0.8, 1.0);
|
||||
colorGradationQuickAddRgba(&sky.zenith_color, 0.75, 0.25, 0.33, 0.37, 1.0);
|
||||
colorGradationQuickAddRgba(&sky.zenith_color, 0.8, 0.03, 0.03, 0.05, 1.0);
|
||||
colorGradationQuickAddRgba(&sky.haze_color, 0.2, 0.05, 0.05, 0.08, 1.0);
|
||||
colorGradationQuickAddRgba(&sky.haze_color, 0.25, 0.55, 0.42, 0.42, 1.0);
|
||||
colorGradationQuickAddRgba(&sky.haze_color, 0.3, 0.6, 0.6, 0.6, 1.0);
|
||||
colorGradationQuickAddRgba(&sky.haze_color, 0.4, 0.92, 0.93, 1.0, 1.0);
|
||||
colorGradationQuickAddRgba(&sky.haze_color, 0.6, 0.92, 0.93, 1.0, 1.0);
|
||||
colorGradationQuickAddRgba(&sky.haze_color, 0.7, 0.6, 0.6, 0.8, 1.0);
|
||||
colorGradationQuickAddRgba(&sky.haze_color, 0.75, 0.62, 0.50, 0.42, 1.0);
|
||||
colorGradationQuickAddRgba(&sky.haze_color, 0.8, 0.05, 0.05, 0.08, 1.0);
|
||||
sky.daytime = 0.0;
|
||||
sky.haze_height = 0.75;
|
||||
sky.haze_smoothing = 0.3;
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include "shared/constants.h"
|
||||
#include "tools.h"
|
||||
|
||||
|
@ -13,6 +14,14 @@ Color COLOR_BLUE = {0.0, 0.0, 1.0, 1.0};
|
|||
Color COLOR_WHITE = {1.0, 1.0, 1.0, 1.0};
|
||||
Color COLOR_GREY = {0.5, 0.5, 0.5, 1.0};
|
||||
|
||||
ColorGradationPart COLORGRADATIONPART_NULL;
|
||||
|
||||
void colorInit()
|
||||
{
|
||||
COLORGRADATIONPART_NULL.col = COLOR_TRANSPARENT;
|
||||
COLORGRADATIONPART_NULL.start = 0.0;
|
||||
}
|
||||
|
||||
void colorSave(FILE* f, Color* col)
|
||||
{
|
||||
toolsSaveDouble(f, &col->r);
|
||||
|
@ -146,7 +155,53 @@ void colorGradationLoad(FILE* f, ColorGradation* gradation)
|
|||
}
|
||||
}
|
||||
|
||||
void colorGradationAdd(ColorGradation* gradation, double value, Color* col)
|
||||
int colorGradationGetPartCount(ColorGradation* gradation)
|
||||
{
|
||||
return gradation->nbparts;
|
||||
}
|
||||
|
||||
int colorGradationAddPart(ColorGradation* gradation)
|
||||
{
|
||||
if (gradation->nbparts == MAX_COLORGRADATION_PARTS)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
return gradation->nbparts++;
|
||||
}
|
||||
}
|
||||
|
||||
void colorGradationDelPart(ColorGradation* gradation, int part)
|
||||
{
|
||||
if (part >= 0 && part < gradation->nbparts)
|
||||
{
|
||||
memmove(gradation->parts + part, gradation->parts + part + 1, sizeof(ColorGradationPart) * (gradation->nbparts - part - 1));
|
||||
gradation->nbparts--;
|
||||
}
|
||||
}
|
||||
|
||||
ColorGradationPart colorGradationGetPart(ColorGradation* gradation, int part)
|
||||
{
|
||||
if (part >= 0 && part < gradation->nbparts)
|
||||
{
|
||||
return gradation->parts[part];
|
||||
}
|
||||
else
|
||||
{
|
||||
return COLORGRADATIONPART_NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void colorGradationSetPart(ColorGradation* gradation, int part, ColorGradationPart value)
|
||||
{
|
||||
if (part >= 0 && part < gradation->nbparts)
|
||||
{
|
||||
gradation->parts[part] = value;
|
||||
}
|
||||
}
|
||||
|
||||
void colorGradationQuickAdd(ColorGradation* gradation, double value, Color* col)
|
||||
{
|
||||
if (gradation->nbparts == MAX_COLORGRADATION_PARTS)
|
||||
{
|
||||
|
@ -164,14 +219,14 @@ void colorGradationAdd(ColorGradation* gradation, double value, Color* col)
|
|||
}
|
||||
}
|
||||
|
||||
void colorGradationAddRgba(ColorGradation* gradation, double value, double r, double g, double b, double a)
|
||||
void colorGradationQuickAddRgba(ColorGradation* gradation, double value, double r, double g, double b, double a)
|
||||
{
|
||||
Color col;
|
||||
col.r = r;
|
||||
col.g = g;
|
||||
col.b = b;
|
||||
col.a = a;
|
||||
colorGradationAdd(gradation, value, &col);
|
||||
colorGradationQuickAdd(gradation, value, &col);
|
||||
}
|
||||
|
||||
Color colorGradationGet(ColorGradation* gradation, double value)
|
||||
|
|
|
@ -8,6 +8,8 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
void colorInit();
|
||||
|
||||
void colorSave(FILE* f, Color* col);
|
||||
void colorLoad(FILE* f, Color* col);
|
||||
unsigned int colorTo32BitRGBA(Color* col);
|
||||
|
@ -21,8 +23,13 @@ double colorGetValue(Color* col);
|
|||
ColorGradation colorGradationCreate();
|
||||
void colorGradationSave(FILE* f, ColorGradation* gradation);
|
||||
void colorGradationLoad(FILE* f, ColorGradation* gradation);
|
||||
void colorGradationAdd(ColorGradation* gradation, double value, Color* col);
|
||||
void colorGradationAddRgba(ColorGradation* gradation, double value, double r, double g, double b, double a);
|
||||
int colorGradationGetPartCount(ColorGradation* gradation);
|
||||
int colorGradationAddPart(ColorGradation* gradation);
|
||||
void colorGradationDelPart(ColorGradation* gradation, int part);
|
||||
ColorGradationPart colorGradationGetPart(ColorGradation* gradation, int part);
|
||||
void colorGradationSetPart(ColorGradation* gradation, int part, ColorGradationPart value);
|
||||
void colorGradationQuickAdd(ColorGradation* gradation, double value, Color* col);
|
||||
void colorGradationQuickAddRgba(ColorGradation* gradation, double value, double r, double g, double b, double a);
|
||||
Color colorGradationGet(ColorGradation* gradation, double value);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include "shared/constants.h"
|
||||
|
||||
#include "auto.h"
|
||||
#include "color.h"
|
||||
#include "system.h"
|
||||
#include "camera.h"
|
||||
#include "scenery.h"
|
||||
|
@ -21,6 +22,7 @@ void paysagesInit()
|
|||
ilInit();
|
||||
iluInit();
|
||||
|
||||
colorInit();
|
||||
sceneryInit();
|
||||
renderInit();
|
||||
|
||||
|
|
|
@ -80,10 +80,10 @@ void skyValidateDefinition(SkyDefinition* definition)
|
|||
haze = colorGradationGet(&definition->haze_color, definition->daytime);
|
||||
|
||||
definition->_sky_gradation = colorGradationCreate();
|
||||
colorGradationAdd(&definition->_sky_gradation, 0.0, &haze);
|
||||
colorGradationAdd(&definition->_sky_gradation, definition->haze_height - definition->haze_smoothing, &haze);
|
||||
colorGradationAdd(&definition->_sky_gradation, definition->haze_height, &zenith);
|
||||
colorGradationAdd(&definition->_sky_gradation, 1.0, &zenith);
|
||||
colorGradationQuickAdd(&definition->_sky_gradation, 0.0, &haze);
|
||||
colorGradationQuickAdd(&definition->_sky_gradation, definition->haze_height - definition->haze_smoothing, &haze);
|
||||
colorGradationQuickAdd(&definition->_sky_gradation, definition->haze_height, &zenith);
|
||||
colorGradationQuickAdd(&definition->_sky_gradation, 1.0, &zenith);
|
||||
}
|
||||
|
||||
int skyGetLights(SkyDefinition* sky, LightDefinition* lights, int max_lights)
|
||||
|
|
Loading…
Reference in a new issue