mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-15 00:02:52 -04:00
When enabled, we will do Delaunay triangulation of the points in the current map view, and then render triangles instead of points. For each point we keep its color for interpolation in the triangle. Global map shading is also supported with the new option, when enabled, we also keep elevation of each point, and then rasterize triangles with interpolated elevations to the provided elevation map. When "Render as a surface" is enabled, drawing order is ignored, because points do not obscure other points anymore - all input points participate in the triangulation. There is also an option to filter large triangles (given by the maximum length of edge of a triangle), which is useful when one wants to see the actual holes in the data. Compared to the implementation for 3D rendering, the 2D rendering only provides filtering based on horizontal length of triangles. Filtering based on triangle size on the vertical axis seems irrelevant because the 2D view is always from the top.
157 lines
5.1 KiB
Plaintext
157 lines
5.1 KiB
Plaintext
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/core/qgselevationmap.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
|
************************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
class QgsElevationMap
|
|
{
|
|
%Docstring(signature="appended")
|
|
Stores digital elevation model in a raster image which may get updated
|
|
as a part of map layer rendering process. Afterwards the elevations can
|
|
be used for post-processing effects of the rendered color map image.
|
|
|
|
Elevations are encoded as colors in QImage, thanks to this it is not
|
|
only possible to set elevation for each pixel, but also to use QPainter
|
|
for more complex updates of elevations. We encode elevations to 24 bits
|
|
in range of [-7900, 8877] with precision of three decimal digits, which
|
|
should give millimiter precision and enough range for elevation values
|
|
in meters.
|
|
|
|
.. versionadded:: 3.28
|
|
%End
|
|
|
|
%TypeHeaderCode
|
|
#include "qgselevationmap.h"
|
|
%End
|
|
public:
|
|
|
|
QgsElevationMap();
|
|
%Docstring
|
|
Default constructor
|
|
%End
|
|
|
|
explicit QgsElevationMap( const QSize &size, float devicePixelRatio = 1.0 );
|
|
%Docstring
|
|
Constructs an elevation map with the given width and height
|
|
%End
|
|
|
|
explicit QgsElevationMap( const QImage &image );
|
|
%Docstring
|
|
Constructs an elevation map from an existing raw elevation ``image``.
|
|
The image must have ARGB32 format and obtained by the :py:func:`~QgsElevationMap.rawElevationImage` method.
|
|
|
|
.. seealso:: :py:func:`rawElevationImage`
|
|
|
|
.. versionadded:: 3.30
|
|
%End
|
|
|
|
QgsElevationMap( const QgsElevationMap &other );
|
|
%Docstring
|
|
Copy constructor
|
|
%End
|
|
|
|
void applyEyeDomeLighting( QImage &image, int distance, float strength, float rendererScale ) const;
|
|
%Docstring
|
|
Applies eye dome lighting effect to the given ``image``. The effect makes
|
|
angled surfaces darker and adds silhouettes in case of larger differences
|
|
of elevations between neighboring pixels.
|
|
|
|
The ``distance`` parameter tells how many pixels away from the original pixel
|
|
to sample neighboring pixels. Normally distance of 2 pixels gives good results.
|
|
|
|
The ``strength`` parameter adjusts how strong the added shading will be.
|
|
Good default for this value seems to be 1000.
|
|
|
|
The ``rendererScale`` parameter adjusts scale of elevation values. It is recommended
|
|
to set this to the map's scale denominator to get similarly looking results
|
|
at different map scales.
|
|
%End
|
|
|
|
void applyHillshading( QImage &image, bool multiDirectional, double altitude, double azimuth, double zFactor, double cellSizeX, double cellSizeY ) const;
|
|
%Docstring
|
|
Applies hill shading effect to the given ``image``.
|
|
|
|
If the ``multidirectinal`` parameter is ``True``, the algorithm will considered a
|
|
multi horizontal directional light to apply the shading.
|
|
|
|
The parameter ``altitude`` (could also be named zenith) is the vertical direction of the light.
|
|
|
|
The parameter ``azimuth`` is the horizontal direction of the light considered if
|
|
``multidirectional`` is ``False``.
|
|
|
|
The parameter ``zFactor`` is the vertical exageration of the terrain.
|
|
|
|
The parameters ``cellSizeX`` and ``cellSizeY`` are the sizes of the elevation map cells in unit consistent
|
|
with the unit of the encoded elevation in this elevation map.
|
|
|
|
.. versionadded:: 3.30
|
|
%End
|
|
|
|
QImage rawElevationImage() const;
|
|
%Docstring
|
|
Returns raw elevation image with elevations encoded as color values
|
|
%End
|
|
|
|
|
|
QPainter *painter() const;
|
|
%Docstring
|
|
Returns painter to the underlying QImage with elevations
|
|
%End
|
|
|
|
void combine( const QgsElevationMap &otherElevationMap, Qgis::ElevationMapCombineMethod method );
|
|
%Docstring
|
|
Combines this elevation map with ``otherElevationMap``.
|
|
This elevation map keeps its size and takes elevation values of otherElevationMap that
|
|
is not null for same row and column following the combine ``method``.
|
|
The other elevation map can have a different size, only rows and columns contained in
|
|
this elevation map will be considered.
|
|
|
|
.. versionadded:: 3.30
|
|
%End
|
|
|
|
|
|
bool isValid() const;
|
|
%Docstring
|
|
Returns whether the elevation map is valid.
|
|
|
|
.. versionadded:: 3.30
|
|
%End
|
|
|
|
static QRgb encodeElevation( float z );
|
|
%Docstring
|
|
Converts elevation value to an actual color
|
|
%End
|
|
static float decodeElevation( QRgb colorRaw );
|
|
%Docstring
|
|
Converts a color back to elevation value
|
|
%End
|
|
|
|
|
|
bool isNoData( QRgb colorRaw ) const;
|
|
%Docstring
|
|
Returns whether the encoded value is a no data value
|
|
%End
|
|
|
|
float noDataValue() const;
|
|
%Docstring
|
|
Returns the no data value for the elevation map
|
|
%End
|
|
|
|
|
|
};
|
|
|
|
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/core/qgselevationmap.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
|
************************************************************************/
|