From 61cb715c4edb179d464514d5435f4df991dc9df7 Mon Sep 17 00:00:00 2001 From: Martin Dobias Date: Mon, 19 Nov 2018 16:29:53 +0100 Subject: [PATCH 1/2] [FEATURE] Optionally use a map theme to render terrain textures Often it is useful to have a different map theme for terrain in 3D view than the map theme used in the main map canvas. --- src/3d/qgs3dmapsettings.cpp | 12 +++++++ src/3d/qgs3dmapsettings.h | 36 +++++++++++++++++-- src/3d/terrain/qgsterrainentity_p.cpp | 1 + .../terrain/qgsterraintexturegenerator_p.cpp | 16 ++++++++- src/app/3d/qgs3dmapconfigwidget.cpp | 13 ++++++- src/ui/3d/map3dconfigwidget.ui | 21 +++++++++-- 6 files changed, 93 insertions(+), 6 deletions(-) diff --git a/src/3d/qgs3dmapsettings.cpp b/src/3d/qgs3dmapsettings.cpp index 66e477eb805..1a4cca9d771 100644 --- a/src/3d/qgs3dmapsettings.cpp +++ b/src/3d/qgs3dmapsettings.cpp @@ -39,6 +39,7 @@ Qgs3DMapSettings::Qgs3DMapSettings( const Qgs3DMapSettings &other ) , mMaxTerrainGroundError( other.mMaxTerrainGroundError ) , mTerrainShadingEnabled( other.mTerrainShadingEnabled ) , mTerrainShadingMaterial( other.mTerrainShadingMaterial ) + , mTerrainMapTheme( other.mTerrainMapTheme ) , mShowTerrainBoundingBoxes( other.mShowTerrainBoundingBoxes ) , mShowTerrainTileInfo( other.mShowTerrainTileInfo ) , mShowCameraViewCenter( other.mShowCameraViewCenter ) @@ -87,6 +88,7 @@ void Qgs3DMapSettings::readXml( const QDomElement &elem, const QgsReadWriteConte QDomElement elemTerrainShadingMaterial = elemTerrain.firstChildElement( QStringLiteral( "shading-material" ) ); if ( !elemTerrainShadingMaterial.isNull() ) mTerrainShadingMaterial.readXml( elemTerrainShadingMaterial ); + mTerrainMapTheme = elemTerrain.attribute( QStringLiteral( "map-theme" ) ); mShowLabels = elemTerrain.attribute( QStringLiteral( "show-labels" ), QStringLiteral( "0" ) ).toInt(); mPointLights.clear(); @@ -204,6 +206,7 @@ QDomElement Qgs3DMapSettings::writeXml( QDomDocument &doc, const QgsReadWriteCon QDomElement elemTerrainShadingMaterial = doc.createElement( QStringLiteral( "shading-material" ) ); mTerrainShadingMaterial.writeXml( elemTerrainShadingMaterial ); elemTerrain.appendChild( elemTerrainShadingMaterial ); + elemTerrain.setAttribute( QStringLiteral( "map-theme" ), mTerrainMapTheme ); elemTerrain.setAttribute( QStringLiteral( "show-labels" ), mShowLabels ? 1 : 0 ); QDomElement elemPointLights = doc.createElement( QStringLiteral( "point-lights" ) ); @@ -432,6 +435,15 @@ void Qgs3DMapSettings::setTerrainShadingMaterial( const QgsPhongMaterialSettings emit terrainShadingChanged(); } +void Qgs3DMapSettings::setTerrainMapTheme( const QString &theme ) +{ + if ( mTerrainMapTheme == theme ) + return; + + mTerrainMapTheme = theme; + emit terrainMapThemeChanged(); +} + void Qgs3DMapSettings::setRenderers( const QList &renderers ) { mRenderers = renderers; diff --git a/src/3d/qgs3dmapsettings.h b/src/3d/qgs3dmapsettings.h index 27031a89f71..a7ff5c17697 100644 --- a/src/3d/qgs3dmapsettings.h +++ b/src/3d/qgs3dmapsettings.h @@ -148,9 +148,16 @@ class _3D_EXPORT Qgs3DMapSettings : public QObject //! Returns vertical scale (exaggeration) of terrain double terrainVerticalScale() const; - //! Sets the list of map layers to be rendered as a texture of the terrain + /** + * Sets the list of map layers to be rendered as a texture of the terrain + * \note If terrain map theme is set, it has a priority over the list of layers specified here. + */ void setLayers( const QList &layers ); - //! Returns the list of map layers to be rendered as a texture of the terrain + + /** + * Returns the list of map layers to be rendered as a texture of the terrain + * \note If terrain map theme is set, it has a priority over the list of layers specified here. + */ QList layers() const; /** @@ -231,6 +238,24 @@ class _3D_EXPORT Qgs3DMapSettings : public QObject */ QgsPhongMaterialSettings terrainShadingMaterial() const { return mTerrainShadingMaterial; } + /** + * Sets name of the map theme. + * \see terrainMapTheme() + * \since QGIS 3.6 + */ + void setTerrainMapTheme( const QString &theme ); + + /** + * Returns name of the map theme (from the active project) that will be used for terrain's texture. + * Empty map theme name means that the map theme is not overridden and the current map theme will be used. + * \since QGIS 3.6 + */ + QString terrainMapTheme() const { return mTerrainMapTheme; } + + // + // misc configuration + // + //! Sets list of extra 3D renderers to use in the scene. Takes ownership of the objects. void setRenderers( const QList &renderers SIP_TRANSFER ); //! Returns list of extra 3D renderers @@ -310,6 +335,12 @@ class _3D_EXPORT Qgs3DMapSettings : public QObject * \since QGIS 3.6 */ void terrainShadingChanged(); + + /** + * Emitted when terrain's map theme has changed + * \since QGIS 3.6 + */ + void terrainMapThemeChanged(); //! Emitted when the flag whether terrain's bounding boxes are shown has changed void showTerrainBoundingBoxesChanged(); //! Emitted when the flag whether terrain's tile info is shown has changed @@ -342,6 +373,7 @@ class _3D_EXPORT Qgs3DMapSettings : public QObject float mMaxTerrainGroundError = 1.f; //!< Maximum allowed horizontal map error in map units (determines how many zoom levels will be used) bool mTerrainShadingEnabled = false; //!< Whether terrain should be shaded taking lights into account QgsPhongMaterialSettings mTerrainShadingMaterial; //!< Material to use for the terrain (if shading is enabled). Diffuse color is ignored. + QString mTerrainMapTheme; //!< Name of map theme used for terrain's texture (empty means use the current map theme) bool mShowTerrainBoundingBoxes = false; //!< Whether to show bounding boxes of entities - useful for debugging bool mShowTerrainTileInfo = false; //!< Whether to draw extra information about terrain tiles to the textures - useful for debugging bool mShowCameraViewCenter = false; //!< Whether to show camera view center as a sphere - useful for debugging diff --git a/src/3d/terrain/qgsterrainentity_p.cpp b/src/3d/terrain/qgsterrainentity_p.cpp index 75be3e34558..fb0af0e655d 100644 --- a/src/3d/terrain/qgsterrainentity_p.cpp +++ b/src/3d/terrain/qgsterrainentity_p.cpp @@ -69,6 +69,7 @@ QgsTerrainEntity::QgsTerrainEntity( int maxLevel, const Qgs3DMapSettings &map, Q connect( &map, &Qgs3DMapSettings::showLabelsChanged, this, &QgsTerrainEntity::invalidateMapImages ); connect( &map, &Qgs3DMapSettings::layersChanged, this, &QgsTerrainEntity::onLayersChanged ); connect( &map, &Qgs3DMapSettings::backgroundColorChanged, this, &QgsTerrainEntity::invalidateMapImages ); + connect( &map, &Qgs3DMapSettings::terrainMapThemeChanged, this, &QgsTerrainEntity::invalidateMapImages ); connectToLayersRepaintRequest(); diff --git a/src/3d/terrain/qgsterraintexturegenerator_p.cpp b/src/3d/terrain/qgsterraintexturegenerator_p.cpp index a185734e594..33d95709f24 100644 --- a/src/3d/terrain/qgsterraintexturegenerator_p.cpp +++ b/src/3d/terrain/qgsterraintexturegenerator_p.cpp @@ -18,6 +18,7 @@ #include #include #include +#include #include #include "qgs3dmapsettings.h" @@ -127,13 +128,26 @@ void QgsTerrainTextureGenerator::onRenderingFinished() QgsMapSettings QgsTerrainTextureGenerator::baseMapSettings() { QgsMapSettings mapSettings; - mapSettings.setLayers( mMap.layers() ); + mapSettings.setOutputSize( QSize( mMap.mapTileResolution(), mMap.mapTileResolution() ) ); mapSettings.setDestinationCrs( mMap.crs() ); mapSettings.setBackgroundColor( mMap.backgroundColor() ); mapSettings.setFlag( QgsMapSettings::DrawLabeling, mMap.showLabels() ); mapSettings.setTransformContext( mMap.transformContext() ); mapSettings.setPathResolver( mMap.pathResolver() ); + + QgsMapThemeCollection *mapThemes = QgsProject::instance()->mapThemeCollection(); + QString mapThemeName = mMap.terrainMapTheme(); + if ( mapThemeName.isEmpty() || !mapThemes->hasMapTheme( mapThemeName ) ) + { + mapSettings.setLayers( mMap.layers() ); + } + else + { + mapSettings.setLayers( mapThemes->mapThemeVisibleLayers( mapThemeName ) ); + mapSettings.setLayerStyleOverrides( mapThemes->mapThemeStyleOverrides( mapThemeName ) ); + } + return mapSettings; } diff --git a/src/app/3d/qgs3dmapconfigwidget.cpp b/src/app/3d/qgs3dmapconfigwidget.cpp index fcebeb36918..ac7953ee3a3 100644 --- a/src/app/3d/qgs3dmapconfigwidget.cpp +++ b/src/app/3d/qgs3dmapconfigwidget.cpp @@ -21,8 +21,9 @@ #include "qgs3dutils.h" #include "qgsmapcanvas.h" +#include "qgsmapthemecollection.h" #include "qgsrasterlayer.h" -//#include "qgsproject.h" +#include "qgsproject.h" Qgs3DMapConfigWidget::Qgs3DMapConfigWidget( Qgs3DMapSettings *map, QgsMapCanvas *mainCanvas, QWidget *parent ) : QWidget( parent ) @@ -73,6 +74,14 @@ Qgs3DMapConfigWidget::Qgs3DMapConfigWidget( Qgs3DMapSettings *map, QgsMapCanvas widgetTerrainMaterial->setDiffuseVisible( false ); widgetTerrainMaterial->setMaterial( mMap->terrainShadingMaterial() ); + // populate combo box with map themes + const QStringList mapThemeNames = QgsProject::instance()->mapThemeCollection()->mapThemes(); + cboTerrainMapTheme->addItem( QString() ); // empty item for no map theme + for ( QString themeName : mapThemeNames ) + cboTerrainMapTheme->addItem( themeName ); + + cboTerrainMapTheme->setCurrentText( mMap->terrainMapTheme() ); + widgetLights->setPointLights( mMap->pointLights() ); connect( cboTerrainLayer, static_cast( &QgsMapLayerComboBox::currentIndexChanged ), this, &Qgs3DMapConfigWidget::onTerrainLayerChanged ); @@ -144,6 +153,8 @@ void Qgs3DMapConfigWidget::apply() mMap->setTerrainShadingEnabled( groupTerrainShading->isChecked() ); mMap->setTerrainShadingMaterial( widgetTerrainMaterial->material() ); + mMap->setTerrainMapTheme( cboTerrainMapTheme->currentText() ); + mMap->setPointLights( widgetLights->pointLights() ); } diff --git a/src/ui/3d/map3dconfigwidget.ui b/src/ui/3d/map3dconfigwidget.ui index f2567f8a1ba..40d2fbff680 100644 --- a/src/ui/3d/map3dconfigwidget.ui +++ b/src/ui/3d/map3dconfigwidget.ui @@ -7,7 +7,7 @@ 0 0 691 - 1135 + 1122 @@ -15,7 +15,7 @@ - + Terrain @@ -84,6 +84,20 @@ + + + + Map theme + + + + + + + false + + + @@ -275,12 +289,15 @@ spinTerrainScale spinTerrainResolution spinTerrainSkirtHeight + cboTerrainMapTheme + groupTerrainShading spinMapResolution spinScreenError spinGroundError chkShowLabels chkShowTileInfo chkShowBoundingBoxes + chkShowCameraViewCenter From afd3525297b1cb4cd4d76c86117da793b32fa30e Mon Sep 17 00:00:00 2001 From: Martin Dobias Date: Wed, 21 Nov 2018 16:29:42 +0100 Subject: [PATCH 2/2] Add test for terrain theme + do not use project singleton --- src/3d/qgs3dmapsettings.cpp | 3 + src/3d/qgs3dmapsettings.h | 17 +++++ src/3d/qgslayoutitem3dmap.cpp | 6 ++ .../terrain/qgsterraintexturegenerator_p.cpp | 4 +- src/app/qgisapp.cpp | 10 +++ tests/src/3d/testqgs3drendering.cpp | 72 ++++++++++++++++++ .../expected_terrain_theme.png | Bin 0 -> 59309 bytes 7 files changed, 110 insertions(+), 2 deletions(-) create mode 100644 tests/testdata/control_images/3d/expected_terrain_theme/expected_terrain_theme.png diff --git a/src/3d/qgs3dmapsettings.cpp b/src/3d/qgs3dmapsettings.cpp index 1a4cca9d771..1f03cdd66b7 100644 --- a/src/3d/qgs3dmapsettings.cpp +++ b/src/3d/qgs3dmapsettings.cpp @@ -49,6 +49,9 @@ Qgs3DMapSettings::Qgs3DMapSettings( const Qgs3DMapSettings &other ) , mSkyboxEnabled( other.mSkyboxEnabled ) , mSkyboxFileBase( other.mSkyboxFileBase ) , mSkyboxFileExtension( other.mSkyboxFileExtension ) + , mTransformContext( other.mTransformContext ) + , mPathResolver( other.mPathResolver ) + , mMapThemes( other.mMapThemes ) { Q_FOREACH ( QgsAbstract3DRenderer *renderer, other.mRenderers ) { diff --git a/src/3d/qgs3dmapsettings.h b/src/3d/qgs3dmapsettings.h index a7ff5c17697..e47499c7e92 100644 --- a/src/3d/qgs3dmapsettings.h +++ b/src/3d/qgs3dmapsettings.h @@ -126,6 +126,21 @@ class _3D_EXPORT Qgs3DMapSettings : public QObject */ void setPathResolver( const QgsPathResolver &resolver ) { mPathResolver = resolver; } + /** + * Returns pointer to the collection of map themes. Normally this would be QgsProject::mapThemeCollection() + * of the currently used project. Without a valid map theme collection object it is not possible + * to resolve map themes from their names. + * \since QGIS 3.6 + */ + QgsMapThemeCollection *mapThemeCollection() const { return mMapThemes; } + + /** + * Sets pointer to the collection of map themes. + * \see mapThemeCollection() + * \since QGIS 3.6 + */ + void setMapThemeCollection( QgsMapThemeCollection *mapThemes ) { mMapThemes = mapThemes; } + //! Sets background color of the 3D map view void setBackgroundColor( const QColor &color ); //! Returns background color of the 3D map view @@ -248,6 +263,7 @@ class _3D_EXPORT Qgs3DMapSettings : public QObject /** * Returns name of the map theme (from the active project) that will be used for terrain's texture. * Empty map theme name means that the map theme is not overridden and the current map theme will be used. + * \note Support for map themes only works if mapThemeCollection() is a valid object (otherwise it is not possible to resolve map themes from names) * \since QGIS 3.6 */ QString terrainMapTheme() const { return mTerrainMapTheme; } @@ -387,6 +403,7 @@ class _3D_EXPORT Qgs3DMapSettings : public QObject //! Coordinate transform context QgsCoordinateTransformContext mTransformContext; QgsPathResolver mPathResolver; + QgsMapThemeCollection *mMapThemes = nullptr; //!< Pointer to map themes (e.g. from the current project) to resolve map theme content from the name }; diff --git a/src/3d/qgslayoutitem3dmap.cpp b/src/3d/qgslayoutitem3dmap.cpp index 3301f151652..fdf7e427e4c 100644 --- a/src/3d/qgslayoutitem3dmap.cpp +++ b/src/3d/qgslayoutitem3dmap.cpp @@ -217,7 +217,13 @@ bool QgsLayoutItem3DMap::readPropertiesFromElement( const QDomElement &element, mSettings.reset( new Qgs3DMapSettings ); mSettings->readXml( elemSettings, context ); if ( mLayout->project() ) + { mSettings->resolveReferences( *mLayout->project() ); + + mSettings->setTransformContext( mLayout->project()->transformContext() ); + mSettings->setPathResolver( mLayout->project()->pathResolver() ); + mSettings->setMapThemeCollection( mLayout->project()->mapThemeCollection() ); + } } QDomElement elemCameraPose = element.firstChildElement( QStringLiteral( "camera-pose" ) ); diff --git a/src/3d/terrain/qgsterraintexturegenerator_p.cpp b/src/3d/terrain/qgsterraintexturegenerator_p.cpp index 33d95709f24..89695b0c3ce 100644 --- a/src/3d/terrain/qgsterraintexturegenerator_p.cpp +++ b/src/3d/terrain/qgsterraintexturegenerator_p.cpp @@ -136,9 +136,9 @@ QgsMapSettings QgsTerrainTextureGenerator::baseMapSettings() mapSettings.setTransformContext( mMap.transformContext() ); mapSettings.setPathResolver( mMap.pathResolver() ); - QgsMapThemeCollection *mapThemes = QgsProject::instance()->mapThemeCollection(); + QgsMapThemeCollection *mapThemes = mMap.mapThemeCollection(); QString mapThemeName = mMap.terrainMapTheme(); - if ( mapThemeName.isEmpty() || !mapThemes->hasMapTheme( mapThemeName ) ) + if ( mapThemeName.isEmpty() || !mapThemes || !mapThemes->hasMapTheme( mapThemeName ) ) { mapSettings.setLayers( mMap.layers() ); } diff --git a/src/app/qgisapp.cpp b/src/app/qgisapp.cpp index f00e048044d..26f42da3630 100644 --- a/src/app/qgisapp.cpp +++ b/src/app/qgisapp.cpp @@ -11128,8 +11128,10 @@ void QgisApp::new3DMapCanvas() map->setSelectionColor( mMapCanvas->selectionColor() ); map->setBackgroundColor( mMapCanvas->canvasColor() ); map->setLayers( mMapCanvas->layers() ); + map->setTransformContext( QgsProject::instance()->transformContext() ); map->setPathResolver( QgsProject::instance()->pathResolver() ); + map->setMapThemeCollection( QgsProject::instance()->mapThemeCollection() ); connect( QgsProject::instance(), &QgsProject::transformContextChanged, map, [map] { map->setTransformContext( QgsProject::instance()->transformContext() ); @@ -13544,6 +13546,14 @@ void QgisApp::readProject( const QDomDocument &doc ) map->readXml( elem3D, readWriteContext ); map->resolveReferences( *QgsProject::instance() ); + map->setTransformContext( QgsProject::instance()->transformContext() ); + map->setPathResolver( QgsProject::instance()->pathResolver() ); + map->setMapThemeCollection( QgsProject::instance()->mapThemeCollection() ); + connect( QgsProject::instance(), &QgsProject::transformContextChanged, map, [map] + { + map->setTransformContext( QgsProject::instance()->transformContext() ); + } ); + // these things are not saved in project map->setSelectionColor( mMapCanvas->selectionColor() ); map->setBackgroundColor( mMapCanvas->canvasColor() ); diff --git a/tests/src/3d/testqgs3drendering.cpp b/tests/src/3d/testqgs3drendering.cpp index 6f2702d0525..f9b96722bae 100644 --- a/tests/src/3d/testqgs3drendering.cpp +++ b/tests/src/3d/testqgs3drendering.cpp @@ -16,8 +16,12 @@ #include "qgstest.h" #include "qgsrenderchecker.h" +#include "qgsmaplayerstylemanager.h" +#include "qgsmapthemecollection.h" #include "qgsproject.h" #include "qgsrasterlayer.h" +#include "qgsrastershader.h" +#include "qgssinglebandpseudocolorrenderer.h" #include "qgsvectorlayer.h" #include "qgs3dmapscene.h" @@ -43,6 +47,7 @@ class TestQgs3DRendering : public QObject void testFlatTerrain(); void testDemTerrain(); void testExtrudedPolygons(); + void testMapTheme(); private: bool renderCheck( const QString &testName, QImage &image, int mismatchCount = 0 ); @@ -88,6 +93,39 @@ void TestQgs3DRendering::initTestCase() mLayerBuildings->setRenderer3D( renderer3d ); mProject->setCrs( mLayerDtm->crs() ); + + // + // prepare styles for DTM layer + // + + mLayerDtm->styleManager()->addStyleFromLayer( "grayscale" ); + + double vMin = 44, vMax = 198; + QColor cMin = Qt::red, cMax = Qt::yellow; + + // change renderer for the new style + std::unique_ptr colorRampShader( new QgsColorRampShader( vMin, vMax ) ); + colorRampShader->setColorRampItemList( QList() + << QgsColorRampShader::ColorRampItem( vMin, cMin ) + << QgsColorRampShader::ColorRampItem( vMax, cMax ) ); + std::unique_ptr shader( new QgsRasterShader( vMin, vMax ) ); + shader->setRasterShaderFunction( colorRampShader.release() ); + QgsSingleBandPseudoColorRenderer *r = new QgsSingleBandPseudoColorRenderer( mLayerDtm->renderer()->input(), 1, shader.release() ); + mLayerDtm->setRenderer( r ); + mLayerDtm->styleManager()->addStyleFromLayer( "my_style" ); + + mLayerDtm->styleManager()->setCurrentStyle( "grayscale" ); + + // + // add map theme + // + + QgsMapThemeCollection::MapThemeLayerRecord layerRecord( mLayerDtm ); + layerRecord.usingCurrentStyle = true; + layerRecord.currentStyle = "my_style"; + QgsMapThemeCollection::MapThemeRecord record; + record.addLayerRecord( layerRecord ); + mProject->mapThemeCollection()->insert( "theme_dtm", record ); } //runs after all tests @@ -204,6 +242,40 @@ void TestQgs3DRendering::testExtrudedPolygons() QVERIFY( renderCheck( "polygon3d_extrusion", img, 40 ) ); } +void TestQgs3DRendering::testMapTheme() +{ + QgsRectangle fullExtent = mLayerDtm->extent(); + + Qgs3DMapSettings *map = new Qgs3DMapSettings; + map->setCrs( mProject->crs() ); + map->setOrigin( QgsVector3D( fullExtent.center().x(), fullExtent.center().y(), 0 ) ); + map->setLayers( QList() << mLayerRgb ); + + // set theme - this should override what we set in setLayers() + map->setMapThemeCollection( mProject->mapThemeCollection() ); + map->setTerrainMapTheme( "theme_dtm" ); + + QgsFlatTerrainGenerator *flatTerrain = new QgsFlatTerrainGenerator; + flatTerrain->setCrs( map->crs() ); + flatTerrain->setExtent( fullExtent ); + map->setTerrainGenerator( flatTerrain ); + + QgsOffscreen3DEngine engine; + Qgs3DMapScene *scene = new Qgs3DMapScene( *map, &engine ); + engine.setRootEntity( scene ); + + // look from the top + scene->cameraController()->setLookingAtPoint( QgsVector3D( 0, 0, 0 ), 2500, 0, 0 ); + + // When running the test on Travis, it would initially return empty rendered image. + // Capturing the initial image and throwing it away fixes that. Hopefully we will + // find a better fix in the future. + Qgs3DUtils::captureSceneImage( engine, scene ); + + QImage img = Qgs3DUtils::captureSceneImage( engine, scene ); + QVERIFY( renderCheck( "terrain_theme", img, 40 ) ); +} + bool TestQgs3DRendering::renderCheck( const QString &testName, QImage &image, int mismatchCount ) { diff --git a/tests/testdata/control_images/3d/expected_terrain_theme/expected_terrain_theme.png b/tests/testdata/control_images/3d/expected_terrain_theme/expected_terrain_theme.png new file mode 100644 index 0000000000000000000000000000000000000000..155b1580fd0ab554d98d24dd0676734403003928 GIT binary patch literal 59309 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 literal 0 HcmV?d00001