Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[gdal] Fix raster block output when block extent is outside of valid …
…area

This was causing problems in 3D view when raster was used as DEM... terrain
tiles were generated also where they should not appear and contained random
heights that caused failures of camera center adjustment to terrain. In the areas
completely outside of raster's extent the block was being returned with some
values uninitialized (instead of having correctly set no-data values)
  • Loading branch information
wonder-sk committed Nov 7, 2018
1 parent e7900a3 commit afca644
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions src/providers/gdal/qgsgdalprovider.cpp
Expand Up @@ -640,6 +640,13 @@ QgsRasterBlock *QgsGdalProvider::block( int bandNo, const QgsRectangle &extent,
return block;
}

if ( !mExtent.intersects( extent ) )
{
// the requested extent is completely outside of the raster's extent - nothing to do
block->setIsNoData();
return block;
}

if ( !mExtent.contains( extent ) )
{
QRect subRect = QgsRasterBlock::subRect( extent, width, height, mExtent );
Expand Down

0 comments on commit afca644

Please sign in to comment.