From ee094d9b18e51cc8519012b548d6ce96383727bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Lemaire?= Date: Wed, 20 Nov 2013 11:27:21 +0100 Subject: [PATCH] Refactored atmosphere previews --- src/interface/desktop/formatmosphere.cpp | 25 ++----------------- .../AtmosphereColorPreviewRenderer.cpp | 16 ++++++++++-- .../preview/AtmosphereColorPreviewRenderer.h | 7 ++++-- 3 files changed, 21 insertions(+), 27 deletions(-) diff --git a/src/interface/desktop/formatmosphere.cpp b/src/interface/desktop/formatmosphere.cpp index 3eeaf6f..56d1a43 100644 --- a/src/interface/desktop/formatmosphere.cpp +++ b/src/interface/desktop/formatmosphere.cpp @@ -14,27 +14,6 @@ static AtmosphereDefinition* _definition; -/**************** Previews ****************/ -class PreviewSkyRenderer:public AtmosphereColorPreviewRenderer -{ -public: - PreviewSkyRenderer(double heading): - AtmosphereColorPreviewRenderer(heading) - { - } - - void bindEvent(BasePreview* preview) override - { - preview->configHdrToneMapping(true); - preview->configScaling(0.5, 5.0, 0.5, 2.5); - } - void updateEvent() override - { - getScenery()->setAtmosphere(_definition); - prepare(); - } -}; - /**************** Form ****************/ FormAtmosphere::FormAtmosphere(QWidget *parent): BaseForm(parent) @@ -48,12 +27,12 @@ FormAtmosphere::FormAtmosphere(QWidget *parent): _definition = new AtmosphereDefinition(NULL); previewWest = new BasePreview(this); - previewWestRenderer = new PreviewSkyRenderer(M_PI / 2.0); + previewWestRenderer = new AtmosphereColorPreviewRenderer(_definition, M_PI / 2.0); previewWest->setRenderer(previewWestRenderer); addPreview(previewWest, QString(tr("West preview"))); previewEast = new BasePreview(this); - previewEastRenderer = new PreviewSkyRenderer(-M_PI / 2.0); + previewEastRenderer = new AtmosphereColorPreviewRenderer(_definition, -M_PI / 2.0); previewEast->setRenderer(previewEastRenderer); addPreview(previewEast, QString(tr("East preview"))); diff --git a/src/render/preview/AtmosphereColorPreviewRenderer.cpp b/src/render/preview/AtmosphereColorPreviewRenderer.cpp index b107d52..814b1bd 100644 --- a/src/render/preview/AtmosphereColorPreviewRenderer.cpp +++ b/src/render/preview/AtmosphereColorPreviewRenderer.cpp @@ -6,6 +6,7 @@ #include "tools/lighting.h" #include "SurfaceMaterial.h" #include "Scenery.h" +#include "BasePreview.h" /* * Atmosphere previews. @@ -146,12 +147,23 @@ static inline int _checkHit(Vector3 eye, Vector3 direction, Vector3* hit, Vector return _checkHitGround(eye, direction, hit); } -AtmosphereColorPreviewRenderer::AtmosphereColorPreviewRenderer(double heading): - heading(heading) +AtmosphereColorPreviewRenderer::AtmosphereColorPreviewRenderer(AtmosphereDefinition* definition, double heading): + definition(definition), heading(heading) { getScenery()->getCamera()->setLocation(Vector3(0.0, 7.0, 0.0)); } +void AtmosphereColorPreviewRenderer::bindEvent(BasePreview* preview) +{ + preview->configHdrToneMapping(true); + preview->configScaling(0.5, 5.0, 0.5, 2.5); +} +void AtmosphereColorPreviewRenderer::updateEvent() +{ + getScenery()->setAtmosphere(definition); + prepare(); +} + Color AtmosphereColorPreviewRenderer::getColor2D(double x, double y, double) { Vector3 eye = {0.0, 7.0, 0.0}; diff --git a/src/render/preview/AtmosphereColorPreviewRenderer.h b/src/render/preview/AtmosphereColorPreviewRenderer.h index b3fe1b5..455e888 100644 --- a/src/render/preview/AtmosphereColorPreviewRenderer.h +++ b/src/render/preview/AtmosphereColorPreviewRenderer.h @@ -9,11 +9,14 @@ namespace preview { class AtmosphereColorPreviewRenderer:public Base2dPreviewRenderer { public: - AtmosphereColorPreviewRenderer(double heading); + AtmosphereColorPreviewRenderer(AtmosphereDefinition* definition, double heading); + void bindEvent(BasePreview* preview) override; + void updateEvent() override; virtual Color getColor2D(double x, double y, double scaling) override; -protected: +private: + AtmosphereDefinition* definition; double heading; };