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.
Avoid using 'slightly' since this could be a considerable performance improvement depending on the provider.
Co-authored-by: Matthias Kuhn <matthias@opengis.ch>
This allows provider classes to have a useable elevation properties class, for example to know
if the provided data is 3D or 2D. This will be useful to compute 3D/2D extent.
message box warnings when closing Settings dialog
This is confusing for users who have accidentally enabled the plugin.
If the path is empty, chances are the user isn't wanting to use
the OTB provider and it's nicer not to show a big confusing
message box warning to them.
This feature improves feedback/cancel management during the map rendering to handle when
the client closes the in/out socket. This can occur when the client (an http server as
nginx) has a timeout shorter than the rendering time (fe. the rendering is very long due
database issue). Without this feature, the http server may resent new requests to the qgis
server which is busy and can not handle it.
For each new FCGI request, we start a new thread to monitor the incoming socket stream and
detect its closing. If the socket closes before the rendering, we update a feedback object
to cancel the rendering jobs. When the rendering is done, the thread is closed.
The `height` property is in fact a vertical offset applied to the
line. Also, the `offset` phrase is already used by the terrain for
similar purposes.
height() are setHeight() are kept for API compatibility reasons.
Allows all layer types (including vector, mesh and point cloud)
providers to show custom metadata in the layer properties dialog.
Previously this was limited to raster/vector tile and tiled
scene layers only.
Also fix const for a lot of raster providers as a consequence.