Skip to content

Commit

Permalink
fix 3D mesh terrain when CRS are different from map
Browse files Browse the repository at this point in the history
  • Loading branch information
vcloarec authored and nyalldawson committed Sep 17, 2021
1 parent 251ccda commit 1650861
Showing 1 changed file with 3 additions and 21 deletions.
24 changes: 3 additions & 21 deletions src/3d/mesh/qgsmeshterraingenerator.cpp
Expand Up @@ -72,7 +72,7 @@ float QgsMeshTerrainGenerator::rootChunkError( const Qgs3DMapSettings & ) const
void QgsMeshTerrainGenerator::rootChunkHeightRange( float &hMin, float &hMax ) const
{
float min = std::numeric_limits<float>::max();
float max = std::numeric_limits<float>::min();
float max = -std::numeric_limits<float>::max();

for ( int i = 0; i < mTriangularMesh.vertices().count(); ++i )
{
Expand Down Expand Up @@ -123,25 +123,7 @@ QgsTerrainGenerator::Type QgsMeshTerrainGenerator::type() const {return QgsTerra

QgsRectangle QgsMeshTerrainGenerator::extent() const
{
QgsRectangle layerextent;
if ( mLayer )
layerextent = mLayer->extent();
else
return QgsRectangle();

QgsCoordinateTransform terrainToMapTransform( mLayer->crs(), mCrs, mTransformContext );
QgsRectangle extentInMap;

try
{
extentInMap = terrainToMapTransform.transform( mLayer->extent() );
}
catch ( QgsCsException & )
{
extentInMap = mLayer->extent();
}

return extentInMap;
return mTriangularMesh.extent();
}

void QgsMeshTerrainGenerator::writeXml( QDomElement &elem ) const
Expand Down Expand Up @@ -182,7 +164,7 @@ void QgsMeshTerrainGenerator::updateTriangularMesh()
{
if ( meshLayer() )
{
QgsCoordinateTransform transform( mCrs, meshLayer()->crs(), mTransformContext );
const QgsCoordinateTransform transform( meshLayer()->crs(), mCrs, mTransformContext );
meshLayer()->updateTriangularMesh( transform );
mTriangularMesh = *meshLayer()->triangularMesh();
}
Expand Down

0 comments on commit 1650861

Please sign in to comment.