mirror of
https://github.com/tumic0/GPXSee.git
synced 2024-11-27 21:24:47 +01:00
Added hillshading lightening setting
This commit is contained in:
parent
8730206939
commit
96fe90cc3f
@ -2609,6 +2609,7 @@ void GUI::writeSettings()
|
||||
WRITE(demUsername, _options.demUsername);
|
||||
WRITE(demPassword, _options.demPassword);
|
||||
WRITE(hillshadingAlpha, _options.hillshadingAlpha);
|
||||
WRITE(hillshadingLightening, _options.hillshadingLightening);
|
||||
WRITE(hillshadingBlur, _options.hillshadingBlur);
|
||||
WRITE(hillshadingAzimuth, _options.hillshadingAzimuth);
|
||||
WRITE(hillshadingAltitude, _options.hillshadingAltitude);
|
||||
@ -2914,6 +2915,7 @@ void GUI::readSettings(QString &activeMap, QStringList &disabledPOIs,
|
||||
_options.demUsername = READ(demUsername).toString();
|
||||
_options.demPassword = READ(demPassword).toString();
|
||||
_options.hillshadingAlpha = READ(hillshadingAlpha).toInt();
|
||||
_options.hillshadingLightening = READ(hillshadingLightening).toDouble();
|
||||
_options.hillshadingBlur = READ(hillshadingBlur).toInt();
|
||||
_options.hillshadingAzimuth = READ(hillshadingAzimuth).toInt();
|
||||
_options.hillshadingAltitude = READ(hillshadingAltitude).toInt();
|
||||
@ -3017,6 +3019,7 @@ void GUI::loadOptions()
|
||||
HillShading::setAzimuth(_options.hillshadingAzimuth);
|
||||
HillShading::setAltitude(_options.hillshadingAltitude);
|
||||
HillShading::setZFactor(_options.hillshadingZFactor);
|
||||
HillShading::setLightening(_options.hillshadingLightening);
|
||||
|
||||
_poi->setRadius(_options.poiRadius);
|
||||
|
||||
@ -3158,6 +3161,7 @@ void GUI::updateOptions(const Options &options)
|
||||
SET_HS_OPTION(hillshadingAzimuth, setAzimuth);
|
||||
SET_HS_OPTION(hillshadingAltitude, setAltitude);
|
||||
SET_HS_OPTION(hillshadingZFactor, setZFactor);
|
||||
SET_HS_OPTION(hillshadingLightening, setLightening);
|
||||
|
||||
if (options.connectionTimeout != _options.connectionTimeout)
|
||||
Downloader::setTimeout(options.connectionTimeout);
|
||||
|
@ -621,6 +621,8 @@ QWidget *OptionsDialog::createDEMPage()
|
||||
_hillshadingAlpha = new PercentSlider();
|
||||
_hillshadingAlpha->setValue(qRound((_options.hillshadingAlpha / 255.0)
|
||||
* 100));
|
||||
_hillshadingLightening = new PercentSlider();
|
||||
_hillshadingLightening->setValue(_options.hillshadingLightening * 100);
|
||||
_hillshadingBlur = new QSpinBox();
|
||||
_hillshadingBlur->setMaximum(10);
|
||||
_hillshadingBlur->setSuffix(UNIT_SPACE + tr("px"));
|
||||
@ -640,6 +642,7 @@ QWidget *OptionsDialog::createDEMPage()
|
||||
|
||||
QFormLayout *hillshadingLayout = new QFormLayout();
|
||||
hillshadingLayout->addRow(tr("Opacity:"), _hillshadingAlpha);
|
||||
hillshadingLayout->addRow(tr("Lightening:"), _hillshadingLightening);
|
||||
hillshadingLayout->addRow(tr("Blur radius:"), _hillshadingBlur);
|
||||
hillshadingLayout->addItem(new QSpacerItem(10, 10));
|
||||
hillshadingLayout->addRow(tr("Azimuth:"), _hillshadingAzimuth);
|
||||
@ -987,6 +990,7 @@ void OptionsDialog::accept()
|
||||
_options.demPassword = _demAuth->password();
|
||||
_options.hillshadingAlpha = qRound((_hillshadingAlpha->value() / 100.0)
|
||||
* 255);
|
||||
_options.hillshadingLightening = _hillshadingLightening->value() / 100.0;
|
||||
_options.hillshadingBlur = _hillshadingBlur->value();
|
||||
_options.hillshadingAzimuth = _hillshadingAzimuth->value();
|
||||
_options.hillshadingAltitude = _hillshadingAltitude->value();
|
||||
|
@ -77,6 +77,7 @@ struct Options {
|
||||
int hillshadingAzimuth;
|
||||
int hillshadingAltitude;
|
||||
double hillshadingZFactor;
|
||||
double hillshadingLightening;
|
||||
// Position
|
||||
QString plugin;
|
||||
QMap<QString, QVariantMap> pluginParams;
|
||||
@ -182,6 +183,7 @@ private:
|
||||
QLineEdit *_demURL;
|
||||
AuthenticationWidget *_demAuth;
|
||||
PercentSlider *_hillshadingAlpha;
|
||||
PercentSlider *_hillshadingLightening;
|
||||
QSpinBox *_hillshadingBlur;
|
||||
QSpinBox *_hillshadingAzimuth;
|
||||
QSpinBox *_hillshadingAltitude;
|
||||
|
@ -245,6 +245,7 @@ SETTING(demAuthentication, "demAuthentication", false );
|
||||
SETTING(demUsername, "demUsername", "" );
|
||||
SETTING(demPassword, "demPassword", "" );
|
||||
SETTING(hillshadingAlpha, "hillshadingAlpha", 102 );
|
||||
SETTING(hillshadingLightening,"hillshadingLightening", 0.2 );
|
||||
SETTING(hillshadingBlur, "hillshadingBlur", 3 );
|
||||
SETTING(hillshadingAzimuth, "hillshadingAzimuth", 315 );
|
||||
SETTING(hillshadingAltitude, "hillshadingAltitude", 45 );
|
||||
|
@ -197,6 +197,7 @@ public:
|
||||
static const Setting demUsername;
|
||||
static const Setting demPassword;
|
||||
static const Setting hillshadingAlpha;
|
||||
static const Setting hillshadingLightening;
|
||||
static const Setting hillshadingBlur;
|
||||
static const Setting hillshadingAzimuth;
|
||||
static const Setting hillshadingAltitude;
|
||||
|
@ -31,6 +31,7 @@ int HillShading::_blur = 3;
|
||||
int HillShading::_azimuth = 315;
|
||||
int HillShading::_altitude = 45;
|
||||
double HillShading::_z = 0.6;
|
||||
double HillShading::_l = 0.2;
|
||||
|
||||
static void getConstants(double azimuth, double elevation, Constants &c)
|
||||
{
|
||||
@ -92,7 +93,7 @@ QImage HillShading::render(const MatrixD &m, int extend)
|
||||
if (std::isnan(L))
|
||||
pixel = 0;
|
||||
else {
|
||||
L = sqrt(L * 0.8 + 0.2);
|
||||
L = sqrt(L * (1.0 - _l) + _l);
|
||||
quint8 val = (L < 0) ? 0 : L * _alpha;
|
||||
pixel = (_alpha - val)<<24;
|
||||
}
|
||||
|
@ -16,6 +16,7 @@ public:
|
||||
static void setAzimuth(int azimuth) {_azimuth = azimuth;}
|
||||
static void setAltitude(int altitude) {_altitude = altitude;}
|
||||
static void setZFactor(double z) {_z = z;}
|
||||
static void setLightening(double b) {_l = b;}
|
||||
|
||||
private:
|
||||
static int _alpha;
|
||||
@ -23,6 +24,7 @@ private:
|
||||
static int _azimuth;
|
||||
static int _altitude;
|
||||
static double _z;
|
||||
static double _l;
|
||||
};
|
||||
|
||||
#endif // HILLSHADING_H
|
||||
|
Loading…
Reference in New Issue
Block a user