Skip to content

Commit

Permalink
fix viewer
Browse files Browse the repository at this point in the history
  • Loading branch information
ftomei committed Jul 10, 2024
1 parent ebaf29f commit 7985bc5
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 8 deletions.
2 changes: 1 addition & 1 deletion agrolib/graphics/mapGraphicsRasterUtm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,7 @@ bool RasterUtmObject::drawRaster(QPainter* painter)
// check outliers (transparent)
if (_rasterPointer->colorScale->isHideOutliers())
{
if (value < _rasterPointer->colorScale->minimum() || value > _rasterPointer->colorScale->maximum())
if (value <= _rasterPointer->colorScale->minimum() || value >= _rasterPointer->colorScale->maximum())
continue;
}

Expand Down
8 changes: 8 additions & 0 deletions agrolib/meteo/meteo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -764,6 +764,9 @@ bool setColorScale(meteoVariable variable, Crit3DColorScale *colorScale)
{
if (colorScale == nullptr) return false;

colorScale->setFixedRange(false);
colorScale->setHideOutliers(false);

switch(variable)
{
case airTemperature: case dailyAirTemperatureAvg: case dailyAirTemperatureMax:
Expand All @@ -786,6 +789,11 @@ bool setColorScale(meteoVariable variable, Crit3DColorScale *colorScale)
case snowFall: case snowWaterEquivalent: case snowLiquidWaterContent: case snowMelt:
case dailyWaterTableDepth:
setPrecipitationScale(colorScale);
if (variable == snowFall || variable == snowWaterEquivalent
|| variable == snowLiquidWaterContent || variable == snowMelt)
{
colorScale->setHideOutliers(true);
}
break;
case snowAge:
setGrayScale(colorScale);
Expand Down
52 changes: 48 additions & 4 deletions bin/CRITERIA3D/criteria3DProject.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1978,11 +1978,33 @@ bool Crit3DProject::update3DColors(gis::Crit3DRasterGrid *rasterPointer)
{
value = rasterPointer->getValueFromRowCol(row, col);
if (! isEqual(value, rasterPointer->header->flag))
c1 = rasterPointer->colorScale->getColor(value);
{
// check outliers
if (rasterPointer->colorScale->isHideOutliers())
{
if (value > rasterPointer->colorScale->minimum() && value < rasterPointer->colorScale->maximum())
c1 = rasterPointer->colorScale->getColor(value);
}
else
{
c1 = rasterPointer->colorScale->getColor(value);
}
}

value = rasterPointer->getValueFromRowCol(row+1, col+1);
if (! isEqual(value, rasterPointer->header->flag))
c3 = rasterPointer->colorScale->getColor(value);
{
// check outliers
if (rasterPointer->colorScale->isHideOutliers())
{
if (value > rasterPointer->colorScale->minimum() && value < rasterPointer->colorScale->maximum())
c3 = rasterPointer->colorScale->getColor(value);
}
else
{
c3 = rasterPointer->colorScale->getColor(value);
}
}
}

shadowColor(*c1, sc1, row, col);
Expand All @@ -1996,7 +2018,18 @@ bool Crit3DProject::update3DColors(gis::Crit3DRasterGrid *rasterPointer)
{
value = rasterPointer->getValueFromRowCol(row+1, col);
if (! isEqual(value, rasterPointer->header->flag))
c2 = rasterPointer->colorScale->getColor(value);
{
// check outliers
if (rasterPointer->colorScale->isHideOutliers())
{
if (value > rasterPointer->colorScale->minimum() && value < rasterPointer->colorScale->maximum())
c2 = rasterPointer->colorScale->getColor(value);
}
else
{
c2 = rasterPointer->colorScale->getColor(value);
}
}
}
shadowColor(*c2, sc2, row+1, col);

Expand All @@ -2013,7 +2046,18 @@ bool Crit3DProject::update3DColors(gis::Crit3DRasterGrid *rasterPointer)
{
value = rasterPointer->getValueFromRowCol(row, col+1);
if (! isEqual(value, rasterPointer->header->flag))
c2 = rasterPointer->colorScale->getColor(value);
{
// check outliers
if (rasterPointer->colorScale->isHideOutliers())
{
if (value > rasterPointer->colorScale->minimum() && value < rasterPointer->colorScale->maximum())
c2 = rasterPointer->colorScale->getColor(value);
}
else
{
c2 = rasterPointer->colorScale->getColor(value);
}
}
}
shadowColor(*c2, sc2, row, col+1);

Expand Down
5 changes: 2 additions & 3 deletions bin/CRITERIA3D/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2503,7 +2503,7 @@ void MainWindow::on_actionLoad_state_triggered()
QList<QString> stateList = myProject.getAllSavedState();
if (stateList.size() == 0)
{
myProject.logError();
myProject.logError("Missing state in directory:\n" + myProject.getProjectPath() + PATH_STATES);
return;
}

Expand Down Expand Up @@ -3164,12 +3164,11 @@ void MainWindow::on_actionShow_3D_viewer_triggered()
}

viewer3D = new Viewer3D(myProject.openGlGeometry);
refreshViewer3D();
viewer3D->show();

connect (viewer3D, SIGNAL(destroyed()), this, SLOT(on_viewer3DClosed()));
connect (viewer3D, SIGNAL(slopeChanged()), this, SLOT(on_slopeChanged()));

refreshViewer3D();
}


Expand Down

0 comments on commit 7985bc5

Please sign in to comment.