diff --git a/src/3d/mesh/qgsmeshterraingenerator.h b/src/3d/mesh/qgsmeshterraingenerator.h index 9bedc140bf1..8841815e7e6 100644 --- a/src/3d/mesh/qgsmeshterraingenerator.h +++ b/src/3d/mesh/qgsmeshterraingenerator.h @@ -54,8 +54,7 @@ class _3D_EXPORT QgsMeshTerrainGenerator : public QgsTerrainGenerator //! Sets the symbol used to render the mesh as terrain void setSymbol( QgsMesh3DSymbol *symbol SIP_TRANSFER ); - //! Sets CRS of the terrain - void setCrs( const QgsCoordinateReferenceSystem &crs, const QgsCoordinateTransformContext &context ); + void setCrs( const QgsCoordinateReferenceSystem &crs, const QgsCoordinateTransformContext &context ) override; QgsChunkLoader *createChunkLoader( QgsChunkNode *node ) const override SIP_FACTORY; float rootChunkError( const Qgs3DMapSettings &map ) const override; diff --git a/src/3d/qgs3dmapsettings.cpp b/src/3d/qgs3dmapsettings.cpp index 29b7accc28b..917e5c79cef 100644 --- a/src/3d/qgs3dmapsettings.cpp +++ b/src/3d/qgs3dmapsettings.cpp @@ -21,9 +21,7 @@ #include "qgsflatterraingenerator.h" #include "qgsdemterraingenerator.h" #include "qgsmeshterraingenerator.h" -#include "qgsonlineterraingenerator.h" #include "qgsprojectviewsettings.h" -#include "qgsquantizedmeshterraingenerator.h" #include "qgsprojectelevationproperties.h" #include "qgsterrainprovider.h" #include "qgslightsource.h" @@ -244,35 +242,13 @@ void Qgs3DMapSettings::readXml( const QDomElement &elem, const QgsReadWriteConte mLayers = mapLayers; // needs to resolve refs afterwards QDomElement elemTerrainGenerator = elemTerrain.firstChildElement( QStringLiteral( "generator" ) ); - QString terrainGenType = elemTerrainGenerator.attribute( QStringLiteral( "type" ) ); - if ( terrainGenType == QLatin1String( "dem" ) ) + const QString terrainGenType = elemTerrainGenerator.attribute( QStringLiteral( "type" ) ); + std::unique_ptr< QgsTerrainGenerator > terrainGenerator( Qgs3D::terrainRegistry()->createTerrainGenerator( terrainGenType ) ); + if ( terrainGenerator ) { - QgsDemTerrainGenerator *demTerrainGenerator = new QgsDemTerrainGenerator; - demTerrainGenerator->setCrs( mCrs, mTransformContext ); - setTerrainGenerator( demTerrainGenerator ); - } - else if ( terrainGenType == QLatin1String( "online" ) ) - { - QgsOnlineTerrainGenerator *onlineTerrainGenerator = new QgsOnlineTerrainGenerator; - onlineTerrainGenerator->setCrs( mCrs, mTransformContext ); - setTerrainGenerator( onlineTerrainGenerator ); - } - else if ( terrainGenType == QLatin1String( "mesh" ) ) - { - QgsMeshTerrainGenerator *meshTerrainGenerator = new QgsMeshTerrainGenerator; - meshTerrainGenerator->setCrs( mCrs, mTransformContext ); - setTerrainGenerator( meshTerrainGenerator ); - } - else if ( terrainGenType == QLatin1String( "quantizedmesh" ) ) - { - QgsQuantizedMeshTerrainGenerator *qmTerrainGenerator = new QgsQuantizedMeshTerrainGenerator; - setTerrainGenerator( qmTerrainGenerator ); - } - else // "flat" - { - QgsFlatTerrainGenerator *flatGen = new QgsFlatTerrainGenerator; - flatGen->setCrs( mCrs ); - setTerrainGenerator( flatGen ); + terrainGenerator->setCrs( mCrs, mTransformContext ); + mTerrainGenerator->readXml( elemTerrainGenerator ); + setTerrainGenerator( terrainGenerator.release() ); } std::unique_ptr terrainSettings( Qgs3D::terrainRegistry()->createTerrainSettings( terrainGenType ) ); @@ -282,8 +258,6 @@ void Qgs3DMapSettings::readXml( const QDomElement &elem, const QgsReadWriteConte setTerrainSettings( terrainSettings.release() ); } - mTerrainGenerator->readXml( elemTerrainGenerator ); - QDomElement elemSkybox = elem.firstChildElement( QStringLiteral( "skybox" ) ); mIsSkyboxEnabled = elemSkybox.attribute( QStringLiteral( "skybox-enabled" ) ).toInt(); mSkyboxSettings.readXml( elemSkybox, context ); @@ -687,7 +661,7 @@ void Qgs3DMapSettings::configureTerrainFromProject( QgsProjectElevationPropertie if ( properties->terrainProvider()->type() == QLatin1String( "flat" ) ) { QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( crs() ); + flatTerrain->setCrs( crs(), QgsProject::instance()->transformContext() ); setTerrainGenerator( flatTerrain ); setTerrainElevationOffset( properties->terrainProvider()->offset() ); @@ -722,7 +696,7 @@ void Qgs3DMapSettings::configureTerrainFromProject( QgsProjectElevationPropertie else { QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( crs() ); + flatTerrain->setCrs( crs(), QgsProject::instance()->transformContext() ); setTerrainGenerator( flatTerrain ); } } diff --git a/src/3d/terrain/qgsdemterraingenerator.h b/src/3d/terrain/qgsdemterraingenerator.h index 217cff1004c..f94f3e10738 100644 --- a/src/3d/terrain/qgsdemterraingenerator.h +++ b/src/3d/terrain/qgsdemterraingenerator.h @@ -52,8 +52,7 @@ class _3D_EXPORT QgsDemTerrainGenerator : public QgsTerrainGenerator //! Returns raster layer with elevation model to be used for terrain generation QgsRasterLayer *layer() const; - //! Sets CRS of the terrain - void setCrs( const QgsCoordinateReferenceSystem &crs, const QgsCoordinateTransformContext &context ); + void setCrs( const QgsCoordinateReferenceSystem &crs, const QgsCoordinateTransformContext &context ) override; QgsCoordinateReferenceSystem crs() const override { return mCrs; } //! Sets resolution of the generator (how many elevation samples on one side of a terrain tile) diff --git a/src/3d/terrain/qgsflatterraingenerator.cpp b/src/3d/terrain/qgsflatterraingenerator.cpp index 0d130a75e92..2a270d731fa 100644 --- a/src/3d/terrain/qgsflatterraingenerator.cpp +++ b/src/3d/terrain/qgsflatterraingenerator.cpp @@ -131,7 +131,7 @@ void QgsFlatTerrainGenerator::readXml( const QDomElement &elem ) Q_UNUSED( elem ) } -void QgsFlatTerrainGenerator::setCrs( const QgsCoordinateReferenceSystem &crs ) +void QgsFlatTerrainGenerator::setCrs( const QgsCoordinateReferenceSystem &crs, const QgsCoordinateTransformContext & ) { mCrs = crs; updateTilingScheme(); diff --git a/src/3d/terrain/qgsflatterraingenerator.h b/src/3d/terrain/qgsflatterraingenerator.h index b337b0cce37..ce914f81d04 100644 --- a/src/3d/terrain/qgsflatterraingenerator.h +++ b/src/3d/terrain/qgsflatterraingenerator.h @@ -69,9 +69,7 @@ class _3D_EXPORT QgsFlatTerrainGenerator : public QgsTerrainGenerator void writeXml( QDomElement &elem ) const override; void readXml( const QDomElement &elem ) override; - //! Sets CRS of the terrain - void setCrs( const QgsCoordinateReferenceSystem &crs ); - //! Returns CRS of the terrain + void setCrs( const QgsCoordinateReferenceSystem &crs, const QgsCoordinateTransformContext &context ) override; QgsCoordinateReferenceSystem crs() const override { return mCrs; } private: diff --git a/src/3d/terrain/qgsonlineterraingenerator.h b/src/3d/terrain/qgsonlineterraingenerator.h index 26e922f64d1..3b6e9e851dd 100644 --- a/src/3d/terrain/qgsonlineterraingenerator.h +++ b/src/3d/terrain/qgsonlineterraingenerator.h @@ -46,9 +46,7 @@ class _3D_EXPORT QgsOnlineTerrainGenerator : public QgsTerrainGenerator QgsOnlineTerrainGenerator(); ~QgsOnlineTerrainGenerator() override; - //! Sets CRS of the terrain - void setCrs( const QgsCoordinateReferenceSystem &crs, const QgsCoordinateTransformContext &context ); - //! Returns CRS of the terrain + void setCrs( const QgsCoordinateReferenceSystem &crs, const QgsCoordinateTransformContext &context ) override; QgsCoordinateReferenceSystem crs() const override { return mCrs; } //! Sets resolution of the generator (how many elevation samples on one side of a terrain tile) diff --git a/src/3d/terrain/qgsterraingenerator.cpp b/src/3d/terrain/qgsterraingenerator.cpp index fe1bc6f3fe0..e446e3a87ba 100644 --- a/src/3d/terrain/qgsterraingenerator.cpp +++ b/src/3d/terrain/qgsterraingenerator.cpp @@ -71,6 +71,11 @@ QString QgsTerrainGenerator::typeToString( QgsTerrainGenerator::Type type ) return QString(); } +void QgsTerrainGenerator::setCrs( const QgsCoordinateReferenceSystem &, const QgsCoordinateTransformContext & ) +{ + +} + bool QgsTerrainGenerator::isValid() const { return mIsValid; diff --git a/src/3d/terrain/qgsterraingenerator.h b/src/3d/terrain/qgsterraingenerator.h index 68ccbd8a781..44cac853ab5 100644 --- a/src/3d/terrain/qgsterraingenerator.h +++ b/src/3d/terrain/qgsterraingenerator.h @@ -26,6 +26,7 @@ class Qgs3DMapSettings; class Qgs3DRenderContext; class QgsRectangle; class QgsTerrainEntity; +class QgsCoordinateTransformContext; class QDomElement; class QDomDocument; @@ -105,6 +106,13 @@ class _3D_EXPORT QgsTerrainGenerator : public QgsQuadtreeChunkLoaderFactory //! Returns tiling scheme of the terrain const QgsTilingScheme &tilingScheme() const { return mTerrainTilingScheme; } + /** + * Sets the CRS associated with the terrain. + * + * \see crs() + */ + virtual void setCrs( const QgsCoordinateReferenceSystem &crs, const QgsCoordinateTransformContext &context ); + //! Returns CRS of the terrain virtual QgsCoordinateReferenceSystem crs() const { return mTerrainTilingScheme.crs(); } diff --git a/src/app/3d/qgs3dmapconfigwidget.cpp b/src/app/3d/qgs3dmapconfigwidget.cpp index e4175795dda..0f45798a607 100644 --- a/src/app/3d/qgs3dmapconfigwidget.cpp +++ b/src/app/3d/qgs3dmapconfigwidget.cpp @@ -263,7 +263,7 @@ void Qgs3DMapConfigWidget::apply() case QgsTerrainGenerator::Flat: { QgsFlatTerrainGenerator *flatTerrainGen = new QgsFlatTerrainGenerator; - flatTerrainGen->setCrs( mMap->crs() ); + flatTerrainGen->setCrs( mMap->crs(), QgsProject::instance()->transformContext() ); mMap->setTerrainGenerator( flatTerrainGen ); } break; diff --git a/tests/src/3d/sandbox/qgis_3d_sandbox.cpp b/tests/src/3d/sandbox/qgis_3d_sandbox.cpp index ec8504fcd82..b1e4e2fd89d 100644 --- a/tests/src/3d/sandbox/qgis_3d_sandbox.cpp +++ b/tests/src/3d/sandbox/qgis_3d_sandbox.cpp @@ -84,7 +84,7 @@ void initCanvas3D( Qgs3DMapCanvas *canvas ) } ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); map->setTerrainElevationOffset( QgsProject::instance()->elevationProperties()->terrainProvider()->offset() ); diff --git a/tests/src/3d/testqgs3dcameracontroller.cpp b/tests/src/3d/testqgs3dcameracontroller.cpp index d8bd5a4f695..7f2bb10b2a2 100644 --- a/tests/src/3d/testqgs3dcameracontroller.cpp +++ b/tests/src/3d/testqgs3dcameracontroller.cpp @@ -99,7 +99,7 @@ void TestQgs3DCameraController::testTranslate() mapSettings->setLayers( QList() << mLayerRgb << mLayerBuildings ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( mapSettings->crs() ); + flatTerrain->setCrs( mapSettings->crs(), QgsCoordinateTransformContext() ); mapSettings->setTerrainGenerator( flatTerrain ); QPoint winSize = QPoint( 640, 480 ); // default window size @@ -172,7 +172,7 @@ void TestQgs3DCameraController::testZoom() mapSettings->setLayers( QList() << mLayerRgb << mLayerBuildings ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( mapSettings->crs() ); + flatTerrain->setCrs( mapSettings->crs(), QgsCoordinateTransformContext() ); mapSettings->setTerrainGenerator( flatTerrain ); QPoint winSize = QPoint( 640, 480 ); // default window size @@ -245,7 +245,7 @@ void TestQgs3DCameraController::testZoomWheel() mapSettings->setLayers( QList() << mLayerRgb << mLayerBuildings ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( mapSettings->crs() ); + flatTerrain->setCrs( mapSettings->crs(), QgsCoordinateTransformContext() ); mapSettings->setTerrainGenerator( flatTerrain ); QPoint winSize = QPoint( 640, 480 ); // default window size @@ -292,7 +292,7 @@ void TestQgs3DCameraController::testRotationCenter() mapSettings->setLayers( QList() << mLayerRgb << mLayerBuildings ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( mapSettings->crs() ); + flatTerrain->setCrs( mapSettings->crs(), QgsCoordinateTransformContext() ); mapSettings->setTerrainGenerator( flatTerrain ); QPoint winSize = QPoint( 640, 480 ); // default window size @@ -367,7 +367,7 @@ void TestQgs3DCameraController::testRotationCamera() mapSettings->setLayers( QList() << mLayerRgb << mLayerBuildings ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( mapSettings->crs() ); + flatTerrain->setCrs( mapSettings->crs(), QgsCoordinateTransformContext() ); mapSettings->setTerrainGenerator( flatTerrain ); QPoint winSize = QPoint( 640, 480 ); // default window size @@ -443,7 +443,7 @@ void TestQgs3DCameraController::testRotationCenterZoomWheelRotationCenter() mapSettings->setLayers( QList() << mLayerRgb << mLayerBuildings ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( mapSettings->crs() ); + flatTerrain->setCrs( mapSettings->crs(), QgsCoordinateTransformContext() ); mapSettings->setTerrainGenerator( flatTerrain ); QPoint winSize = QPoint( 640, 480 ); // default window size @@ -586,7 +586,7 @@ void TestQgs3DCameraController::testTranslateRotationCenterTranslate() mapSettings->setLayers( QList() << mLayerRgb << mLayerBuildings ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( mapSettings->crs() ); + flatTerrain->setCrs( mapSettings->crs(), QgsCoordinateTransformContext() ); mapSettings->setTerrainGenerator( flatTerrain ); QPoint winSize = QPoint( 640, 480 ); // default window size @@ -739,7 +739,7 @@ void TestQgs3DCameraController::testTranslateZoomWheelTranslate() mapSettings->setLayers( QList() << mLayerRgb << mLayerBuildings ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( mapSettings->crs() ); + flatTerrain->setCrs( mapSettings->crs(), QgsCoordinateTransformContext() ); mapSettings->setTerrainGenerator( flatTerrain ); QPoint winSize = QPoint( 640, 480 ); // default window size @@ -883,7 +883,7 @@ void TestQgs3DCameraController::testTranslateRotationCameraTranslate() mapSettings->setLayers( QList() << mLayerRgb << mLayerBuildings ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( mapSettings->crs() ); + flatTerrain->setCrs( mapSettings->crs(), QgsCoordinateTransformContext() ); mapSettings->setTerrainGenerator( flatTerrain ); QPoint winSize = QPoint( 640, 480 ); // default window size @@ -1034,7 +1034,7 @@ void TestQgs3DCameraController::testRotationCenterRotationCameraRotationCenter() mapSettings->setLayers( QList() << mLayerRgb << mLayerBuildings ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( mapSettings->crs() ); + flatTerrain->setCrs( mapSettings->crs(), QgsCoordinateTransformContext() ); mapSettings->setTerrainGenerator( flatTerrain ); QPoint winSize = QPoint( 640, 480 ); // default window size diff --git a/tests/src/3d/testqgs3drendering.cpp b/tests/src/3d/testqgs3drendering.cpp index 3e462f32a29..4a33552408a 100644 --- a/tests/src/3d/testqgs3drendering.cpp +++ b/tests/src/3d/testqgs3drendering.cpp @@ -281,7 +281,7 @@ void TestQgs3DRendering::testFlatTerrain() map->setLayers( QList() << mLayerRgb ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -414,7 +414,7 @@ void TestQgs3DRendering::testExtrudedPolygons() map->setLightSources( { defaultLight.clone() } ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -461,7 +461,7 @@ void TestQgs3DRendering::testExtrudedPolygonsClipping() map->setLightSources( { defaultLight.clone() } ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -517,7 +517,7 @@ void TestQgs3DRendering::testPhongShading() map->setLightSources( { defaultLight.clone() } ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -569,7 +569,7 @@ void TestQgs3DRendering::testExtrudedPolygonsTexturedPhong() map->setLightSources( { defaultLight.clone() } ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -623,7 +623,7 @@ void TestQgs3DRendering::testExtrudedPolygonsDataDefinedPhong() map->setLightSources( { defaultLight.clone() } ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -677,7 +677,7 @@ void TestQgs3DRendering::testExtrudedPolygonsDataDefinedPhongClipping() map->setLightSources( { defaultLight.clone() } ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -740,7 +740,7 @@ void TestQgs3DRendering::testExtrudedPolygonsDataDefinedGooch() mapSettings->setLightSources( { defaultLight.clone() } ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( mapSettings->crs() ); + flatTerrain->setCrs( mapSettings->crs(), mProject->transformContext() ); mapSettings->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -796,7 +796,7 @@ void TestQgs3DRendering::testExtrudedPolygonsDataDefinedGoochClipping() mapSettings->setLightSources( { defaultLight.clone() } ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( mapSettings->crs() ); + flatTerrain->setCrs( mapSettings->crs(), mProject->transformContext() ); mapSettings->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -837,7 +837,7 @@ void TestQgs3DRendering::testExtrudedPolygonsGoochShading() map->setLayers( QList() << mLayerBuildings << mLayerRgb ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -897,7 +897,7 @@ void TestQgs3DRendering::testExtrudedPolygonsMetalRoughShading() map->setLightSources( { defaultLight.clone() } ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), mProject->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -949,7 +949,7 @@ void TestQgs3DRendering::testPolygonsEdges() map->setLightSources( { defaultLight.clone() } ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -999,7 +999,7 @@ void TestQgs3DRendering::testLineRendering() map->setLayers( QList() << layerLines ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -1056,7 +1056,7 @@ void TestQgs3DRendering::testLineRenderingClipping() map->setLayers( QList() << layerLines ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -1115,7 +1115,7 @@ void TestQgs3DRendering::testLineRenderingCurved() map->setLayers( QList() << layerLines ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -1174,7 +1174,7 @@ void TestQgs3DRendering::testLineRenderingDataDefinedColors() map->setLayers( QList() << layerLines ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -1218,7 +1218,7 @@ void TestQgs3DRendering::testBufferedLineRendering() map->setLightSources( { defaultLight.clone() } ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -1265,7 +1265,7 @@ void TestQgs3DRendering::testBufferedLineRenderingClipping() map->setLightSources( { defaultLight.clone() } ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -1325,7 +1325,7 @@ void TestQgs3DRendering::testBufferedLineRenderingWidth() map->setLightSources( { defaultLight.clone() } ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -1360,7 +1360,7 @@ void TestQgs3DRendering::testMapTheme() map->setTerrainMapTheme( "theme_dtm" ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -1416,7 +1416,7 @@ void TestQgs3DRendering::testRuleBasedRenderer() map->setLightSources( { defaultLight.clone() } ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -1475,7 +1475,7 @@ void TestQgs3DRendering::testFilteredRuleBasedRenderer() map->setLightSources( { defaultLight.clone() } ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -1507,7 +1507,7 @@ void TestQgs3DRendering::testAnimationExport() map.setExtent( fullExtent ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map.crs() ); + flatTerrain->setCrs( map.crs(), mProject->transformContext() ); map.setTerrainGenerator( flatTerrain ); Qgs3DAnimationSettings animSettings; @@ -1578,7 +1578,7 @@ void TestQgs3DRendering::testInstancedRendering() mapSettings->setLayers( QList() << layerPointsZ.get() ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( mapSettings->crs() ); + flatTerrain->setCrs( mapSettings->crs(), mapSettings->transformContext() ); mapSettings->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -1653,7 +1653,7 @@ void TestQgs3DRendering::testInstancedRenderingClipping() mapSettings->setLayers( QList() << layerPointsZ.get() ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( mapSettings->crs() ); + flatTerrain->setCrs( mapSettings->crs(), mapSettings->transformContext() ); mapSettings->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -1754,7 +1754,7 @@ void TestQgs3DRendering::testBillboardRendering() map->setLayers( QList() << layerPointsZ.get() ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -1845,7 +1845,7 @@ void TestQgs3DRendering::testFilteredFlatTerrain() map->setLayers( QList() << mLayerRgb ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -1941,7 +1941,7 @@ void TestQgs3DRendering::testFilteredExtrudedPolygons() map->setLightSources( { defaultLight.clone() } ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), map->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; diff --git a/tests/src/3d/testqgslayout3dmap.cpp b/tests/src/3d/testqgslayout3dmap.cpp index 053f49a36ab..abaf85bbc83 100644 --- a/tests/src/3d/testqgslayout3dmap.cpp +++ b/tests/src/3d/testqgslayout3dmap.cpp @@ -86,7 +86,7 @@ void TestQgsLayout3DMap::testBasic() map->setLayers( QList() << mLayerDtm ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), mProject->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsCameraPose cam; diff --git a/tests/src/3d/testqgsmesh3drendering.cpp b/tests/src/3d/testqgsmesh3drendering.cpp index 1da99ee46aa..0fb7b2c5d0b 100644 --- a/tests/src/3d/testqgsmesh3drendering.cpp +++ b/tests/src/3d/testqgsmesh3drendering.cpp @@ -155,7 +155,7 @@ void TestQgsMesh3DRendering::testMesh() map->setLightSources( { defaultLight.clone() } ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), mProject->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -197,7 +197,7 @@ void TestQgsMesh3DRendering::testMesh_datasetOnFaces() map->setLightSources( { defaultLight.clone() } ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), mProject->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -309,7 +309,7 @@ void TestQgsMesh3DRendering::testFilteredMesh() map->setLightSources( { defaultLight.clone() } ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), mProject->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine; @@ -350,7 +350,7 @@ void TestQgsMesh3DRendering::testMeshClipping() map->setLightSources( { defaultLight.clone() } ); QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; - flatTerrain->setCrs( map->crs() ); + flatTerrain->setCrs( map->crs(), mProject->transformContext() ); map->setTerrainGenerator( flatTerrain ); QgsOffscreen3DEngine engine;