QGIS API Documentation
3.8.0-Zanzibar (11aff65)
|
3 Definition of the world More...
#include <qgs3dmapsettings.h>
Signals | |
void | backgroundColorChanged () |
Emitted when the background color has changed. More... | |
void | fieldOfViewChanged () |
Emitted when the camer lens field of view changes. More... | |
void | layersChanged () |
Emitted when the list of map layers for terrain texture has changed. More... | |
void | mapTileResolutionChanged () |
Emitted when the map tile resoulution has changed. More... | |
void | maxTerrainGroundErrorChanged () |
Emitted when the maximum terrain ground error has changed. More... | |
void | maxTerrainScreenErrorChanged () |
Emitted when the maximum terrain screen error has changed. More... | |
void | pointLightsChanged () |
Emitted when the list of point lights changes. More... | |
void | selectionColorChanged () |
Emitted when the selection color has changed. More... | |
void | showCameraViewCenterChanged () |
Emitted when the flag whether camera's view center is shown has changed. More... | |
void | showLabelsChanged () |
Emitted when the flag whether labels are displayed on terrain tiles has changed. More... | |
void | showTerrainBoundingBoxesChanged () |
Emitted when the flag whether terrain's bounding boxes are shown has changed. More... | |
void | showTerrainTilesInfoChanged () |
Emitted when the flag whether terrain's tile info is shown has changed. More... | |
void | terrainGeneratorChanged () |
Emitted when the terrain generator has changed. More... | |
void | terrainMapThemeChanged () |
Emitted when terrain's map theme has changed. More... | |
void | terrainShadingChanged () |
Emitted when terrain shading enabled flag or terrain shading material has changed. More... | |
void | terrainVerticalScaleChanged () |
Emitted when the vertical scale of the terrain has changed. More... | |
Public Member Functions | |
Qgs3DMapSettings ()=default | |
Constructor for Qgs3DMapSettings. More... | |
Qgs3DMapSettings (const Qgs3DMapSettings &other) | |
Copy constructor. More... | |
~Qgs3DMapSettings () override | |
QColor | backgroundColor () const |
Returns background color of the 3D map view. More... | |
QgsCoordinateReferenceSystem | crs () const |
Returns coordinate reference system used in the 3D scene. More... | |
float | fieldOfView () const |
Returns the camera lens' field of view. More... | |
bool | hasSkyboxEnabled () const |
Returns whether skybox is enabled. More... | |
bool | isTerrainShadingEnabled () const |
Returns whether terrain shading is enabled. More... | |
QList< QgsMapLayer * > | layers () const |
Returns the list of map layers to be rendered as a texture of the terrain. More... | |
QgsMapThemeCollection * | mapThemeCollection () const |
Returns pointer to the collection of map themes. More... | |
int | mapTileResolution () const |
Returns resolution (in pixels) of the texture of a terrain tile. More... | |
QgsVector3D | mapToWorldCoordinates (const QgsVector3D &mapCoords) const |
Converts map coordinates to 3D world coordinates (applies offset and turns (x,y,z) into (x,-z,y)) More... | |
float | maxTerrainGroundError () const |
Returns maximum ground error of terrain tiles in world units. More... | |
float | maxTerrainScreenError () const |
Returns maximum allowed screen error of terrain tiles in pixels. More... | |
QgsVector3D | origin () const |
Returns coordinates in map CRS at which 3D scene has origin (0,0,0) More... | |
const QgsPathResolver & | pathResolver () const |
Returns the path resolver for conversion between relative and absolute paths during rendering operations, e.g. More... | |
QList< QgsPointLightSettings > | pointLights () const |
Returns list of point lights defined in the scene. More... | |
void | readXml (const QDomElement &elem, const QgsReadWriteContext &context) |
Reads configuration from a DOM element previously written by writeXml() More... | |
QList< QgsAbstract3DRenderer * > | renderers () const |
Returns list of extra 3D renderers. More... | |
void | resolveReferences (const QgsProject &project) |
Resolves references to other objects (map layers) after the call to readXml() More... | |
QColor | selectionColor () const |
Returns color used for selected features. More... | |
void | setBackgroundColor (const QColor &color) |
Sets background color of the 3D map view. More... | |
void | setCrs (const QgsCoordinateReferenceSystem &crs) |
Sets coordinate reference system used in the 3D scene. More... | |
void | setFieldOfView (const float fieldOfView) |
Sets the camera lens' field of view. More... | |
void | setLayers (const QList< QgsMapLayer *> &layers) |
Sets the list of map layers to be rendered as a texture of the terrain. More... | |
void | setMapThemeCollection (QgsMapThemeCollection *mapThemes) |
Sets pointer to the collection of map themes. More... | |
void | setMapTileResolution (int res) |
Sets resolution (in pixels) of the texture of a terrain tile. More... | |
void | setMaxTerrainGroundError (float error) |
Returns maximum ground error of terrain tiles in world units. More... | |
void | setMaxTerrainScreenError (float error) |
Sets maximum allowed screen error of terrain tiles in pixels. More... | |
void | setOrigin (const QgsVector3D &origin) |
Sets coordinates in map CRS at which our 3D world has origin (0,0,0) More... | |
void | setPathResolver (const QgsPathResolver &resolver) |
Sets the path resolver for conversion between relative and absolute paths during rendering operations, e.g. More... | |
void | setPointLights (const QList< QgsPointLightSettings > &pointLights) |
Sets list of point lights defined in the scene. More... | |
void | setRenderers (const QList< QgsAbstract3DRenderer *> &renderers) |
Sets list of extra 3D renderers to use in the scene. Takes ownership of the objects. More... | |
void | setSelectionColor (const QColor &color) |
Sets color used for selected features. More... | |
void | setShowCameraViewCenter (bool enabled) |
Sets whether to show camera's view center as a sphere (for debugging) More... | |
void | setShowLabels (bool enabled) |
Sets whether to display labels on terrain tiles. More... | |
void | setShowTerrainBoundingBoxes (bool enabled) |
Sets whether to display bounding boxes of terrain tiles (for debugging) More... | |
void | setShowTerrainTilesInfo (bool enabled) |
Sets whether to display extra tile info on top of terrain tiles (for debugging) More... | |
void | setSkybox (bool enabled, const QString &fileBase=QString(), const QString &fileExtension=QString()) |
Sets skybox configuration. More... | |
void | setTerrainGenerator (QgsTerrainGenerator *gen) |
Sets terrain generator. More... | |
void | setTerrainMapTheme (const QString &theme) |
Sets name of the map theme. More... | |
void | setTerrainShadingEnabled (bool enabled) |
Sets whether terrain shading is enabled. More... | |
void | setTerrainShadingMaterial (const QgsPhongMaterialSettings &material) |
Sets terrain shading material. More... | |
void | setTerrainVerticalScale (double zScale) |
Sets vertical scale (exaggeration) of terrain (1 = true scale, > 1 = hills get more pronounced) More... | |
void | setTransformContext (const QgsCoordinateTransformContext &context) |
Sets the coordinate transform context, which stores various information regarding which datum transforms should be used when transforming points from a source to destination coordinate reference system. More... | |
bool | showCameraViewCenter () const |
Returns whether to show camera's view center as a sphere (for debugging) More... | |
bool | showLabels () const |
Returns whether to display labels on terrain tiles. More... | |
bool | showTerrainBoundingBoxes () const |
Returns whether to display bounding boxes of terrain tiles (for debugging) More... | |
bool | showTerrainTilesInfo () const |
Returns whether to display extra tile info on top of terrain tiles (for debugging) More... | |
QString | skyboxFileBase () const |
Returns base part of filenames of skybox (see setSkybox()) More... | |
QString | skyboxFileExtension () const |
Returns extension part of filenames of skybox (see setSkybox()) More... | |
QgsTerrainGenerator * | terrainGenerator () const |
Returns terrain generator. It takes care of producing terrain tiles from the input data. More... | |
QString | terrainMapTheme () const |
Returns name of the map theme (from the active project) that will be used for terrain's texture. More... | |
QgsPhongMaterialSettings | terrainShadingMaterial () const |
Returns terrain shading material. More... | |
double | terrainVerticalScale () const |
Returns vertical scale (exaggeration) of terrain. More... | |
QgsCoordinateTransformContext | transformContext () const |
Returns the coordinate transform context, which stores various information regarding which datum transforms should be used when transforming points from a source to destination coordinate reference system. More... | |
QgsVector3D | worldToMapCoordinates (const QgsVector3D &worldCoords) const |
Converts 3D world coordinates to map coordinates (applies offset and turns (x,y,z) into (x,-z,y)) More... | |
QDomElement | writeXml (QDomDocument &doc, const QgsReadWriteContext &context) const |
Writes configuration to a DOM element, to be used later with readXml() More... | |
|
default |
Constructor for Qgs3DMapSettings.
Qgs3DMapSettings::Qgs3DMapSettings | ( | const Qgs3DMapSettings & | other | ) |
Copy constructor.
Definition at line 31 of file qgs3dmapsettings.cpp.
|
override |
Definition at line 64 of file qgs3dmapsettings.cpp.
QColor Qgs3DMapSettings::backgroundColor | ( | ) | const |
Returns background color of the 3D map view.
Definition at line 329 of file qgs3dmapsettings.cpp.
|
signal |
Emitted when the background color has changed.
|
inline |
Returns coordinate reference system used in the 3D scene.
Definition at line 91 of file qgs3dmapsettings.h.
|
inline |
Returns the camera lens' field of view.
Definition at line 335 of file qgs3dmapsettings.h.
|
signal |
Emitted when the camer lens field of view changes.
|
inline |
Returns whether skybox is enabled.
Definition at line 288 of file qgs3dmapsettings.h.
|
inline |
Returns whether terrain shading is enabled.
When enabled, in addition to the terrain texture generated from the map, the terrain rendering will take into account position of the lights, terrain normals and terrain shading material (ambient and specular colors, shininess).
Definition at line 240 of file qgs3dmapsettings.h.
QList< QgsMapLayer * > Qgs3DMapSettings::layers | ( | ) | const |
Returns the list of map layers to be rendered as a texture of the terrain.
Definition at line 378 of file qgs3dmapsettings.cpp.
|
signal |
Emitted when the list of map layers for terrain texture has changed.
|
inline |
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.
Definition at line 135 of file qgs3dmapsettings.h.
int Qgs3DMapSettings::mapTileResolution | ( | ) | const |
Returns resolution (in pixels) of the texture of a terrain tile.
This parameter influences how many zoom levels for terrain tiles there will be (together with maxTerrainGroundError())
Definition at line 399 of file qgs3dmapsettings.cpp.
|
signal |
Emitted when the map tile resoulution has changed.
QgsVector3D Qgs3DMapSettings::mapToWorldCoordinates | ( | const QgsVector3D & | mapCoords | ) | const |
Converts map coordinates to 3D world coordinates (applies offset and turns (x,y,z) into (x,-z,y))
Definition at line 295 of file qgs3dmapsettings.cpp.
float Qgs3DMapSettings::maxTerrainGroundError | ( | ) | const |
Returns maximum ground error of terrain tiles in world units.
This parameter influences how many zoom levels there will be (together with mapTileResolution()). This value tells that when the given ground error is reached (e.g. 10 meters), it makes no sense to further split terrain tiles into finer ones because they will not add extra details anymore.
Definition at line 427 of file qgs3dmapsettings.cpp.
|
signal |
Emitted when the maximum terrain ground error has changed.
float Qgs3DMapSettings::maxTerrainScreenError | ( | ) | const |
Returns maximum allowed screen error of terrain tiles in pixels.
This parameter decides how aggressively less detailed terrain tiles are swapped to more detailed ones as camera gets closer. Each tile has its error defined in world units - this error gets projected to screen pixels according to camera view and if the tile's error is greater than the allowed error, it will be swapped by more detailed tiles with lower error.
Definition at line 413 of file qgs3dmapsettings.cpp.
|
signal |
Emitted when the maximum terrain screen error has changed.
|
inline |
Returns coordinates in map CRS at which 3D scene has origin (0,0,0)
Definition at line 81 of file qgs3dmapsettings.h.
|
inline |
Returns the path resolver for conversion between relative and absolute paths during rendering operations, e.g.
for resolving relative symbol paths.
Definition at line 118 of file qgs3dmapsettings.h.
|
inline |
Returns list of point lights defined in the scene.
Definition at line 323 of file qgs3dmapsettings.h.
|
signal |
Emitted when the list of point lights changes.
void Qgs3DMapSettings::readXml | ( | const QDomElement & | elem, |
const QgsReadWriteContext & | context | ||
) |
Reads configuration from a DOM element previously written by writeXml()
Definition at line 69 of file qgs3dmapsettings.cpp.
|
inline |
Returns list of extra 3D renderers.
Definition at line 278 of file qgs3dmapsettings.h.
void Qgs3DMapSettings::resolveReferences | ( | const QgsProject & | project | ) |
Resolves references to other objects (map layers) after the call to readXml()
Definition at line 278 of file qgs3dmapsettings.cpp.
QColor Qgs3DMapSettings::selectionColor | ( | ) | const |
Returns color used for selected features.
Definition at line 343 of file qgs3dmapsettings.cpp.
|
signal |
Emitted when the selection color has changed.
void Qgs3DMapSettings::setBackgroundColor | ( | const QColor & | color | ) |
Sets background color of the 3D map view.
Definition at line 320 of file qgs3dmapsettings.cpp.
void Qgs3DMapSettings::setCrs | ( | const QgsCoordinateReferenceSystem & | crs | ) |
Sets coordinate reference system used in the 3D scene.
Definition at line 305 of file qgs3dmapsettings.cpp.
void Qgs3DMapSettings::setFieldOfView | ( | const float | fieldOfView | ) |
Sets the camera lens' field of view.
Definition at line 515 of file qgs3dmapsettings.cpp.
void Qgs3DMapSettings::setLayers | ( | const QList< QgsMapLayer *> & | layers | ) |
Sets the list of map layers to be rendered as a texture of the terrain.
Definition at line 362 of file qgs3dmapsettings.cpp.
|
inline |
Sets pointer to the collection of map themes.
Definition at line 142 of file qgs3dmapsettings.h.
void Qgs3DMapSettings::setMapTileResolution | ( | int | res | ) |
Sets resolution (in pixels) of the texture of a terrain tile.
Definition at line 390 of file qgs3dmapsettings.cpp.
void Qgs3DMapSettings::setMaxTerrainGroundError | ( | float | error | ) |
Returns maximum ground error of terrain tiles in world units.
Definition at line 418 of file qgs3dmapsettings.cpp.
void Qgs3DMapSettings::setMaxTerrainScreenError | ( | float | error | ) |
Sets maximum allowed screen error of terrain tiles in pixels.
Definition at line 404 of file qgs3dmapsettings.cpp.
|
inline |
Sets coordinates in map CRS at which our 3D world has origin (0,0,0)
We move the 3D world origin to the center of the extent of our terrain: this is done to minimize the impact of numerical errors when operating with 32-bit floats. Unfortunately this is not enough when working with a large area (still results in jitter with scenes spanning hundreds of kilometers and zooming in a lot).
Need to look into more advanced techniques like "relative to center" or "relative to eye" to improve the precision.
Definition at line 79 of file qgs3dmapsettings.h.
|
inline |
Sets the path resolver for conversion between relative and absolute paths during rendering operations, e.g.
for resolving relative symbol paths.
Definition at line 127 of file qgs3dmapsettings.h.
void Qgs3DMapSettings::setPointLights | ( | const QList< QgsPointLightSettings > & | pointLights | ) |
Sets list of point lights defined in the scene.
Definition at line 506 of file qgs3dmapsettings.cpp.
void Qgs3DMapSettings::setRenderers | ( | const QList< QgsAbstract3DRenderer *> & | renderers | ) |
Sets list of extra 3D renderers to use in the scene. Takes ownership of the objects.
Definition at line 465 of file qgs3dmapsettings.cpp.
void Qgs3DMapSettings::setSelectionColor | ( | const QColor & | color | ) |
Sets color used for selected features.
Definition at line 334 of file qgs3dmapsettings.cpp.
void Qgs3DMapSettings::setShowCameraViewCenter | ( | bool | enabled | ) |
Sets whether to show camera's view center as a sphere (for debugging)
Definition at line 488 of file qgs3dmapsettings.cpp.
void Qgs3DMapSettings::setShowLabels | ( | bool | enabled | ) |
Sets whether to display labels on terrain tiles.
Definition at line 497 of file qgs3dmapsettings.cpp.
void Qgs3DMapSettings::setShowTerrainBoundingBoxes | ( | bool | enabled | ) |
Sets whether to display bounding boxes of terrain tiles (for debugging)
Definition at line 470 of file qgs3dmapsettings.cpp.
void Qgs3DMapSettings::setShowTerrainTilesInfo | ( | bool | enabled | ) |
Sets whether to display extra tile info on top of terrain tiles (for debugging)
Definition at line 479 of file qgs3dmapsettings.cpp.
void Qgs3DMapSettings::setSkybox | ( | bool | enabled, |
const QString & | fileBase = QString() , |
||
const QString & | fileExtension = QString() |
||
) |
Sets skybox configuration.
When enabled, map scene will try to load six texture files using the following syntax of filenames: "[base]_[side][extension]" where [side] is one of the following: posx/posy/posz/negx/negy/negz and [base] and [extension] are the arguments passed this method.
void Qgs3DMapSettings::setTerrainGenerator | ( | QgsTerrainGenerator * | gen | ) |
Sets terrain generator.
It takes care of producing terrain tiles from the input data. Takes ownership of the generator
Definition at line 432 of file qgs3dmapsettings.cpp.
void Qgs3DMapSettings::setTerrainMapTheme | ( | const QString & | theme | ) |
Sets name of the map theme.
Definition at line 456 of file qgs3dmapsettings.cpp.
void Qgs3DMapSettings::setTerrainShadingEnabled | ( | bool | enabled | ) |
Sets whether terrain shading is enabled.
Definition at line 438 of file qgs3dmapsettings.cpp.
void Qgs3DMapSettings::setTerrainShadingMaterial | ( | const QgsPhongMaterialSettings & | material | ) |
Sets terrain shading material.
Definition at line 447 of file qgs3dmapsettings.cpp.
void Qgs3DMapSettings::setTerrainVerticalScale | ( | double | zScale | ) |
Sets vertical scale (exaggeration) of terrain (1 = true scale, > 1 = hills get more pronounced)
Definition at line 348 of file qgs3dmapsettings.cpp.
void Qgs3DMapSettings::setTransformContext | ( | const QgsCoordinateTransformContext & | context | ) |
Sets the coordinate transform context, which stores various information regarding which datum transforms should be used when transforming points from a source to destination coordinate reference system.
Definition at line 315 of file qgs3dmapsettings.cpp.
|
inline |
Returns whether to show camera's view center as a sphere (for debugging)
Definition at line 313 of file qgs3dmapsettings.h.
|
signal |
Emitted when the flag whether camera's view center is shown has changed.
|
inline |
Returns whether to display labels on terrain tiles.
Definition at line 317 of file qgs3dmapsettings.h.
|
signal |
Emitted when the flag whether labels are displayed on terrain tiles has changed.
|
inline |
Returns whether to display bounding boxes of terrain tiles (for debugging)
Definition at line 297 of file qgs3dmapsettings.h.
|
signal |
Emitted when the flag whether terrain's bounding boxes are shown has changed.
|
inline |
Returns whether to display extra tile info on top of terrain tiles (for debugging)
Definition at line 301 of file qgs3dmapsettings.h.
|
signal |
Emitted when the flag whether terrain's tile info is shown has changed.
|
inline |
Returns base part of filenames of skybox (see setSkybox())
Definition at line 290 of file qgs3dmapsettings.h.
|
inline |
Returns extension part of filenames of skybox (see setSkybox())
Definition at line 292 of file qgs3dmapsettings.h.
|
inline |
Returns terrain generator. It takes care of producing terrain tiles from the input data.
Definition at line 225 of file qgs3dmapsettings.h.
|
signal |
Emitted when the terrain generator has changed.
|
inline |
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.
Definition at line 269 of file qgs3dmapsettings.h.
|
signal |
Emitted when terrain's map theme has changed.
|
signal |
Emitted when terrain shading enabled flag or terrain shading material has changed.
|
inline |
Returns terrain shading material.
Diffuse color component is ignored since the diffuse component is provided by 2D rendered map texture. Only used when isTerrainShadingEnabled() is true
.
Definition at line 254 of file qgs3dmapsettings.h.
double Qgs3DMapSettings::terrainVerticalScale | ( | ) | const |
Returns vertical scale (exaggeration) of terrain.
Definition at line 357 of file qgs3dmapsettings.cpp.
|
signal |
Emitted when the vertical scale of the terrain has changed.
QgsCoordinateTransformContext Qgs3DMapSettings::transformContext | ( | ) | const |
Returns the coordinate transform context, which stores various information regarding which datum transforms should be used when transforming points from a source to destination coordinate reference system.
Definition at line 310 of file qgs3dmapsettings.cpp.
QgsVector3D Qgs3DMapSettings::worldToMapCoordinates | ( | const QgsVector3D & | worldCoords | ) | const |
Converts 3D world coordinates to map coordinates (applies offset and turns (x,y,z) into (x,-z,y))
Definition at line 300 of file qgs3dmapsettings.cpp.
QDomElement Qgs3DMapSettings::writeXml | ( | QDomDocument & | doc, |
const QgsReadWriteContext & | context | ||
) | const |
Writes configuration to a DOM element, to be used later with readXml()
Definition at line 195 of file qgs3dmapsettings.cpp.