77 Commits

Author SHA1 Message Date
Nyall Dawson
3a578d6712 Header update 2024-08-13 20:28:55 +10:00
Nyall Dawson
6f652d251b Drop no-value copy constructor dox 2024-07-25 04:02:55 +10:00
Nyall Dawson
28943f9c1b Remove a bunch of useless default constructor doxygen 2024-07-23 02:08:28 +10:00
uclaros
b8288fd5c9 Allow point cloud classification categories to override point size 2023-12-13 08:19:00 +10:00
Martin Dobias
fbc2082b7e Nyall's review, spelling fixes, clang tidy fixes 2023-11-23 06:36:31 +10:00
Martin Dobias
fdc4ee7994 Add "Render as a surface" option to 2D point cloud renderers
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.
2023-11-23 06:36:31 +10:00
Nyall Dawson
f9c3da1e06 Move unit enums to Qgis, promote to enum class 2023-02-19 13:29:06 +10:00
Vincent Cloarec
3ca858af66
Global map terrain shading (#51535)
* QgsShadingRendering and pipe to render global elevation map

* gdal utils with datatype and resampling method enum

* raster layer elevation map

* optimize raster elevation map with rotation

* handle  no data value in the map elevation raster pipe

* mesh layer and some little fixes

* fix nodata and hillshading z factor

* render shading on layout

* activate/deactivate the shading from ui

* shading only for layer that have elevation

* apply Z scale and offset of layer elevation properties

* ui settings

* allow elevation from point cloud even edl is deactivate for pointcloud

* fix ui

* sipify

* Shading renderer widget in styling panel

* icone for shading renderer settings widget

* two methods to combin elevation

* rewording

* remove check box at the bottom of canvas

* use band of elevation properties

* fix styling pannel

* render shading in layout

* keep EDL point cloud shading individually

* add shading rendering tests

* add missing code for local EDL for point cloud

* shading inactive by default

* rework raster layer resampling

* improve nodata in elevation map

* don't allow elevation map with != size to be combined

* remove EDL from point cloud

* renaming

* sipify

* colorize tests

* renaming

* RGB32

* renaming leftover

* some ui fixes

* fix border for EDL alg

* fix EDL closed next to nodata value

* fix first shading when activated

* renaming and typo

* fixes for doc, doxygen, indentation and spelling

* remove leftover member

* fix clang-tidy

* fix edl tests

* fix dll export

* minor fixes

* adapt images of tests

* fix narrowing

* fix indentation

* sipify

* WIP

* minor ui changes
2023-01-26 15:02:16 +01:00
Martin Dobias
e6da9ac607 Bring back some Python methods to make the test in Python work again 2022-09-02 07:52:22 -07:00
Martin Dobias
ec36709bfe Address reviews from Stefanos and Nyall 2022-09-02 07:52:22 -07:00
Martin Dobias
18b3bdd139 Refactor elevation map related code to a new class QgsElevationMap 2022-09-02 07:52:22 -07:00
Martin Dobias
8f933496b6 Eye dome lighting code fixes
- make it independent on the current view's Z range
- simplify scaling code
- reverse Z handling (higher Z value == closer to "camera")
- remove unused API functions and member variables
2022-09-02 07:52:22 -07:00
NEDJIMAbelgacem
83cf5fab0b fix layout tests 2022-09-02 07:52:22 -07:00
NEDJIMAbelgacem
789a83cd37 address reviews and fix docs 2022-09-02 07:52:22 -07:00
NEDJIMAbelgacem
5b6ba3e80a Revert to RGBA elevation 2022-09-02 07:52:22 -07:00
NEDJIMAbelgacem
3eedcf0d8f address reviews 2022-09-02 07:52:22 -07:00
NEDJIMAbelgacem
5ccb83b5c6 switch to using grayscale image and fix the default draw order rendering 2022-09-02 07:52:22 -07:00
NEDJIMAbelgacem
f4830334cf initial implementation 2022-09-02 07:52:22 -07:00
Nyall Dawson
c9678be608 Simplify api 2022-05-01 09:13:08 +10:00
Nyall Dawson
51a178279c API for rendering point cloud profiles using renderer colors 2022-05-01 09:13:08 +10:00
Nyall Dawson
c35d17b6e4 Move useful point cloud renderer enums to Qgis namespace 2022-04-29 19:58:21 +10:00
uclaros
d1d148f0c6 Address more comments 2022-01-19 06:24:20 +10:00
uclaros
a28cd2ce11 Address review 2022-01-19 06:24:20 +10:00
Stefanos Natsis
be99a166d9 Added pointcloud ordered by Z rendering for 2d views 2022-01-19 06:24:20 +10:00
Juergen E. Fischer
c6008b7ee1 fix MSVC build: reverts fee62e4, dff05dd and e3a77b9484c effectivly
reverting 3fb0f66 (followup #45348)

Using --no-public-is-protected (default on Windows) also works on Linux
and fixes #45331 too
2021-10-21 23:03:48 +02:00
nirvn
ef84e48a09 Run sipify_all.sh 2021-10-12 16:34:05 +10:00
Denis Rouzaud
ec16736306 run sipify 2021-10-12 16:34:05 +10:00
NEDJIMAbelgacem
7a03571fa7 code style review 2021-05-04 10:11:21 +02:00
NEDJIMAbelgacem
42ce3b6ae9 fix misplaced laszip tiles 2021-05-04 10:11:21 +02:00
NEDJIMAbelgacem
1a60a4562d fix tests 2021-04-08 14:26:31 -07:00
NEDJIMAbelgacem
4a0230fc5c Add QgsFeedback to handle canceling rendering 2021-04-08 14:26:31 -07:00
Denis Rouzaud
ba8a445850 run sipify 2021-03-22 21:13:52 +01:00
NEDJIMAbelgacem
86a71391df remove point budget approach from 2D rendering 2021-02-10 13:49:28 +01:00
Belgacem
eb1ff089a6 implementation of point budget in 2D 2021-02-10 13:49:28 +01:00
Nyall Dawson
155ee72a17 Remove remnant docx 2021-01-18 13:47:31 +10:00
Belgacem
bec8fe5f2e rollback the existing implementation and use QgsHighlight 2021-01-18 08:54:56 +10:00
Belgacem
6de83cd662 initial highlighting implementation 2021-01-18 08:54:56 +10:00
NEDJIMAbelgacem
8ec26000b4 remove layer and elevation properties 2021-01-04 10:20:04 +10:00
NEDJIMAbelgacem
839636635b add docs 2021-01-04 10:20:04 +10:00
NEDJIMAbelgacem
6b7be9c909 fix spelling 2021-01-04 10:20:04 +10:00
NEDJIMAbelgacem
8178add788 Address Nyall suggestions 2021-01-04 10:20:04 +10:00
NEDJIMAbelgacem
9358c9bd3e change to variant and remove QgsPointCloudIdentifyResults 2021-01-04 10:20:04 +10:00
NEDJIMAbelgacem
2d274af355 Add classified renderer filtering behaviour 2021-01-04 10:20:04 +10:00
Nyall Dawson
7b141e92f0 Also add scaling factor option, test 2020-12-16 13:58:20 +10:00
Nyall Dawson
1963ef9784 [pointclouds] Add an elevation tab in layer properties, and allow
users to set a manual offset to apply to point cloud z values

This allows for adjustment of the elevation of point clouds, eg so that:
1. They match nicely with point clouds from other datasources
2. Users can use point clouds from sources with arbitrary z values,
eg. a point cloud made by opendronemap without any actual reference
z values available
2020-12-16 13:58:20 +10:00
Nyall Dawson
def587fa77 [pointclouds] Add an extent only 2d renderer for point clouds
Useful when you just want an overview of the bounds of the layer in a
2d map. Also potentially usable as a temporary renderer for las/laz
files while we build the indexed representation of the file in the
background.
2020-12-04 17:44:23 +10:00
Nyall Dawson
c48f29a8b9 Add choice of point style for 2d point cloud renders
Options are Square or Circle shapes
2020-12-03 07:23:44 +01:00
Nyall Dawson
19fdf11976 Code cleanup 2020-12-03 07:23:44 +01:00
Nyall Dawson
666479494b [pointclouds] Add a classified 2d renderer for point clouds
Allows styling point cloud layers by a classification attribute
2020-12-03 07:23:44 +01:00
Nyall Dawson
b3255c4cfd Hookup some more support for toggling point cloud legend items 2020-12-03 07:23:44 +01:00