16#ifndef QGS3DMAPSETTINGS_H
17#define QGS3DMAPSETTINGS_H
24#include <Qt3DRender/QCamera>
68 void resolveReferences(
const QgsProject &project );
161 void setBackgroundColor(
const QColor &color );
163 QColor backgroundColor()
const;
166 void setSelectionColor(
const QColor &color );
168 QColor selectionColor()
const;
178 void setLayers(
const QList<QgsMapLayer *> &layers );
188 QList<QgsMapLayer *> layers()
const;
205 void setTerrainVerticalScale(
double zScale );
207 double terrainVerticalScale()
const;
213 void setMapTileResolution(
int res );
219 int mapTileResolution()
const;
225 void setMaxTerrainScreenError(
float error );
234 float maxTerrainScreenError()
const;
240 void setMaxTerrainGroundError(
float error );
248 float maxTerrainGroundError()
const;
255 void setTerrainElevationOffset(
float offset );
288 return mTerrainGenerator.get();
296 void setTerrainShadingEnabled(
bool enabled );
325 void setTerrainMapTheme(
const QString &theme );
340 void setShowTerrainBoundingBoxes(
bool enabled );
344 void setShowTerrainTilesInfo(
bool enabled );
352 void setShowCameraViewCenter(
bool enabled );
364 void setShowCameraRotationCenter(
bool enabled );
376 void setShowLightSourceOrigins(
bool enabled );
385 void setShowLabels(
bool enabled );
394 void setEyeDomeLightingEnabled(
bool enabled );
403 void setEyeDomeLightingStrength(
double strength );
412 void setEyeDomeLightingDistance(
int distance );
421 void setDebugShadowMapSettings(
bool enabled, Qt::Corner corner,
double size );
434 void setDebugDepthMapSettings(
bool enabled, Qt::Corner corner,
double size );
447 QList<QgsLightSource *> lightSources()
const;
457 void setLightSources(
const QList<QgsLightSource *> &lights
SIP_TRANSFER );
469 void setFieldOfView(
const float fieldOfView );
481 void setProjectionType(
const Qt3DRender::QCameraLens::ProjectionType projectionType )
SIP_SKIP;
508 void setCameraMovementSpeed(
double movementSpeed );
587 void setIsFpsCounterEnabled(
bool fpsCounterEnabled );
601 void setTerrainRenderingEnabled(
bool terrainRenderingEnabled );
631 void setViewSyncMode( Qgis::ViewSyncModeFlags mode );
645 void setViewFrustumVisualizationEnabled(
bool enabled );
664 bool isDebugOverlayEnabled()
const {
return mIsDebugOverlayEnabled; }
674 void setIsDebugOverlayEnabled(
bool debugOverlayEnabled );
687 void setShowExtentIn2DView(
bool show );
909 void connectChangedSignalsToSettingsChanged();
915 QColor mBackgroundColor = Qt::black;
916 QColor mSelectionColor;
917 double mTerrainVerticalScale = 1;
918 std::unique_ptr<QgsTerrainGenerator> mTerrainGenerator;
919 int mMapTileResolution = 512;
920 float mMaxTerrainScreenError = 3.f;
921 float mMaxTerrainGroundError = 1.f;
922 float mTerrainElevationOffset = 0.0f;
923 bool mTerrainShadingEnabled =
false;
925 QString mTerrainMapTheme;
926 bool mShowTerrainBoundingBoxes =
false;
927 bool mShowTerrainTileInfo =
false;
928 bool mShowCameraViewCenter =
false;
929 bool mShowCameraRotationCenter =
false;
930 bool mShowLightSources =
false;
931 bool mShowLabels =
false;
932 QList< QgsLightSource * > mLightSources;
933 float mFieldOfView = 45.0f;
934 Qt3DRender::QCameraLens::ProjectionType mProjectionType = Qt3DRender::QCameraLens::PerspectiveProjection;
936 double mCameraMovementSpeed = 5.0;
937 QList<QgsMapLayerRef> mLayers;
943 bool mIsFpsCounterEnabled =
false;
945 bool mIsSkyboxEnabled =
false;
950 bool mEyeDomeLightingEnabled =
false;
951 double mEyeDomeLightingStrength = 1000.0;
952 int mEyeDomeLightingDistance = 1;
954 Qgis::ViewSyncModeFlags mViewSyncMode;
955 bool mVisualizeViewFrustum =
false;
957 bool mDebugShadowMapEnabled =
false;
958 Qt::Corner mDebugShadowMapCorner = Qt::Corner::TopLeftCorner;
959 double mDebugShadowMapSize = 0.2;
961 bool mDebugDepthMapEnabled =
false;
962 Qt::Corner mDebugDepthMapCorner = Qt::Corner::TopRightCorner;
963 double mDebugDepthMapSize = 0.2;
965 bool mTerrainRenderingEnabled =
true;
971 bool mIsDebugOverlayEnabled =
false;
975 bool mShowExtentIn2DView =
false;
NavigationMode
The navigation mode used by 3D cameras.
@ TerrainBased
The default navigation based on the terrain.
RendererUsage
Usage of the renderer.
Contains the configuration of a 3d axis.
void extentChanged()
Emitted when the 3d view's 2d extent has changed.
void mapTileResolutionChanged()
Emitted when the map tile resoulution has changed.
void terrainVerticalScaleChanged()
Emitted when the vertical scale of the terrain has changed.
Qt::Corner debugDepthMapCorner() const
Returns the corner where the shadow map preview is displayed.
void settingsChanged()
Emitted when one of the configuration settings has changed.
void renderersChanged()
Emitted when the list of map's extra renderers have been modified.
void eyeDomeLightingDistanceChanged()
Emitted when the eye dome lighting distance has changed.
void terrainShadingChanged()
Emitted when terrain shading enabled flag or terrain shading material has changed.
const QgsPathResolver & pathResolver() const
Returns the path resolver for conversion between relative and absolute paths during rendering operati...
bool showExtentIn2DView() const
Returns whether the extent is displayed on the main 2D map canvas.
double cameraMovementSpeed() const
Returns the camera movement speed.
Qt3DRender::QCameraLens::ProjectionType projectionType() const
Returns the camera lens' projection type.
bool debugDepthMapEnabled() const
Returns whether the shadow map debugging is enabled.
bool isSkyboxEnabled() const
Returns whether the skybox is enabled.
void debugDepthMapSettingsChanged()
Emitted when depth map debugging has changed.
double outputDpi() const
Returns DPI used for conversion between real world units (e.g.
Qgis::NavigationMode cameraNavigationMode() const
Returns the navigation mode used by the camera.
double eyeDomeLightingStrength() const
Returns the eye dome lighting strength value.
void backgroundColorChanged()
Emitted when the background color has changed.
void showTerrainBoundingBoxesChanged()
Emitted when the flag whether terrain's bounding boxes are shown has changed.
Qt::Corner debugShadowMapCorner() const
Returns the corner where the shadow map preview is displayed.
void setMapThemeCollection(QgsMapThemeCollection *mapThemes)
Sets pointer to the collection of map themes.
bool showCameraViewCenter() const
Returns whether to show camera's view center as a sphere (for debugging)
void showCameraRotationCenterChanged()
Emitted when the flag whether camera's rotation center is shown has changed.
void directionalLightsChanged()
Emitted when the list of directional lights changes.
void cameraNavigationModeChanged()
Emitted when the camera navigation mode was changed.
void shadowSettingsChanged()
Emitted when shadow rendering settings are changed.
void eyeDomeLightingEnabledChanged()
Emitted when the flag whether eye dome lighting is used has changed.
void debugOverlayEnabledChanged(bool debugOverlayEnabled)
Emitted when the debug overaly is enabled or disabled.
void setOutputDpi(const double dpi)
Sets DPI used for conversion between real world units (e.g.
void setIsSkyboxEnabled(bool enabled)
Sets whether the skybox is enabled.
void setOrigin(const QgsVector3D &origin)
Sets coordinates in map CRS at which our 3D world has origin (0,0,0)
void skyboxSettingsChanged()
Emitted when skybox settings are changed.
QgsShadowSettings shadowSettings() const
Returns the current configuration of shadows.
void terrainMapThemeChanged()
Emitted when terrain's map theme has changed.
void pointLightsChanged()
Emitted when the list of point lights changes.
double debugDepthMapSize() const
Returns the size of the shadow map preview.
Qgs3DAxisSettings get3DAxisSettings() const
Returns the current configuration of 3d axis.
bool viewFrustumVisualizationEnabled() const
Returns whether the camera's view frustum is visualized on the 2D map canvas.
void projectionTypeChanged()
Emitted when the camera lens projection type changes.
float fieldOfView() const
Returns the camera lens' field of view.
void selectionColorChanged()
Emitted when the selection color has changed.
QgsAmbientOcclusionSettings ambientOcclusionSettings() const
Returns the current configuration of screen space ambient occlusion.
QgsRectangle extent() const
Returns the 3D scene's 2D extent in project's CRS.
Qgis::ViewSyncModeFlags viewSyncMode() const
Returns the view sync mode (used to synchronize the 2D main map canvas and the 3D camera navigation)
float terrainElevationOffset() const
Returns the elevation offset of the terrain (used to move the terrain up or down)
int eyeDomeLightingDistance() const
Returns the eye dome lighting distance value (contributes to the contrast of the image)
void lightSourcesChanged()
Emitted when any of the light source settings in the map changes.
void showLightSourceOriginsChanged()
Emitted when the flag whether light source origins are shown has changed.
QgsTerrainGenerator * terrainGenerator() const
Returns the terrain generator.
double debugShadowMapSize() const
Returns the size of the shadow map preview.
void setPathResolver(const QgsPathResolver &resolver)
Sets the path resolver for conversion between relative and absolute paths during rendering operations...
bool showTerrainBoundingBoxes() const
Returns whether to display bounding boxes of terrain tiles (for debugging)
void showLabelsChanged()
Emitted when the flag whether labels are displayed on terrain tiles has changed.
Qgs3DMapSettings & operator=(Qgs3DMapSettings const &)=delete
void maxTerrainScreenErrorChanged()
Emitted when the maximum terrain screen error has changed.
bool showLabels() const
Returns whether to display labels on terrain tiles.
void terrainElevationOffsetChanged(float newElevation)
Emitted when the terrain elevation offset is changed.
bool debugShadowMapEnabled() const
Returns whether the shadow map debugging is enabled.
bool terrainRenderingEnabled() const
Returns whether the 2D terrain surface will be rendered.
void fpsCounterEnabledChanged(bool fpsCounterEnabled)
Emitted when the FPS counter is enabled or disabled.
void axisSettingsChanged()
Emitted when 3d axis rendering settings are changed.
void viewFrustumVisualizationEnabledChanged()
Emitted when the camera's view frustum visualization on the main 2D map canvas is enabled or disabled...
void ambientOcclusionSettingsChanged()
Emitted when ambient occlusion rendering settings are changed.
bool showTerrainTilesInfo() const
Returns whether to display extra tile info on top of terrain tiles (for debugging)
void showExtentIn2DViewChanged()
Emitted when the parameter to display 3d view's extent in the 2D canvas has changed.
void layersChanged()
Emitted when the list of map layers for 3d rendering has changed.
void showTerrainTilesInfoChanged()
Emitted when the flag whether terrain's tile info is shown has changed.
void eyeDomeLightingStrengthChanged()
Emitted when the eye dome lighting strength has changed.
QgsSkyboxSettings skyboxSettings() const
Returns the current configuration of the skybox.
bool isTerrainShadingEnabled() const
Returns whether terrain shading is enabled.
void cameraMovementSpeedChanged()
Emitted when the camera movement speed was changed.
QgsCoordinateReferenceSystem crs() const
Returns coordinate reference system used in the 3D scene.
bool eyeDomeLightingEnabled() const
Returns whether eye dome lighting is used.
QgsPhongMaterialSettings terrainShadingMaterial() const
Returns terrain shading material.
bool isFpsCounterEnabled() const
Returns whether FPS counter label is enabled.
QString terrainMapTheme() const
Returns name of the map theme (from the active project) that will be used for terrain's texture.
void fieldOfViewChanged()
Emitted when the camera lens field of view changes.
QgsMapThemeCollection * mapThemeCollection() const
Returns pointer to the collection of map themes.
void terrainGeneratorChanged()
Emitted when the terrain generator has changed.
bool showLightSourceOrigins() const
Returns whether to show light source origins as a sphere (for debugging)
void debugShadowMapSettingsChanged()
Emitted when shadow map debugging has changed.
void showCameraViewCenterChanged()
Emitted when the flag whether camera's view center is shown has changed.
void maxTerrainGroundErrorChanged()
Emitted when the maximum terrain ground error has changed.
QgsVector3D origin() const
Returns coordinates in map CRS at which 3D scene has origin (0,0,0)
bool showCameraRotationCenter() const
Returns whether to show camera's rotation center as a sphere (for debugging)
Base class for all renderers that may to participate in 3D view.
class containing the configuration of ambient occlusion rendering 3
This class represents a coordinate reference system (CRS).
Contains information about the context in which a coordinate transform is executed.
Base class for all map layer types.
Container class that allows storage of map themes consisting of visible map layers and layer styles.
Resolves relative paths into absolute paths and vice versa.
Contains elevation properties for a QgsProject.
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Represents a raster layer.
The class is used as a container of context for various read/write operations on other objects.
A rectangle specified with double values.
class containing the configuration of shadows rendering 3
Contains the configuration of a skybox entity.
Base class for objects with an associated (optional) temporal range.
Class for storage of 3D vectors similar to QVector3D, with the difference that it uses double precisi...
const QgsCoordinateReferenceSystem & crs