67 Commits

Author SHA1 Message Date
Nyall Dawson
5be99bd5fe Show data type, scale, offset in metadata for point cloud layers 2020-12-07 12:08:35 +10:00
Nyall Dawson
0708f813f2 Add method to retrieve original metadata from point cloud files,
and expose some more useful metadata in layer properties (las version,
software, creation date)
2020-12-07 12:08:35 +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
Nyall Dawson
91048d4be8 Add possibility for point cloud renderers to create checkable legend nodes
(not implemented for any renderers yet)
2020-12-03 07:23:44 +01:00
Nyall Dawson
2d325940a9 Add method to QgsPointCloudDataProvider to retrieve a polygon representing
the best available indication of the actual point cloud bounds
2020-12-03 07:18:07 +01:00
Nyall Dawson
26fb54ef0f Add pointCount to QgsPointCloudLayer 2020-12-03 07:18:07 +01:00
Nyall Dawson
6a6b77a145 Implement legends for point clouds with the Attribute By Ramp renderer 2020-12-02 21:58:02 +10:00
Nyall Dawson
ecd486499c Add method to retrieve point count for layers 2020-12-02 19:14:58 +10:00
Nyall Dawson
ff672c4bd8 Add API to retrieve counts for classification classes 2020-12-02 19:14:58 +10:00
Nyall Dawson
55035a7b0a Add point cloud classification codes 2020-12-02 19:14:58 +10:00
Nyall Dawson
e70c6980a4 Use point cloud metadata statistics to pick a much better default
2d renderer for point clouds
2020-12-02 19:14:58 +10:00
Nyall Dawson
3df0469229 [pointclouds] Add API to retrieve precalculated attribute statistics
from the provider metadata

This method only returns existing statistics, it cannot be used
to calculated new ones!
2020-12-02 19:14:58 +10:00
Nyall Dawson
fc3d61aaea Cleanups, unit tests 2020-12-02 15:54:24 +10:00
Nyall Dawson
1581bb8cdf Use full featured color ramp shader 2020-12-02 15:54:24 +10:00
Nyall Dawson
af280eb124 Move old dummy point cloud renderer code to proper QgsPointCloudAttributeByRampRenderer class
And remove duplicate non-functional symbology tab in point cloud layer properties
2020-12-02 15:54:24 +10:00
Nyall Dawson
8ba9866c6b Move some code to reusable methods in QgsPointCloudRenderer 2020-12-02 15:54:24 +10:00
Nyall Dawson
d842a96579 Fix incorrect handling of unsigned short values in point cloud providers
These were getting incorrectly treated as signed short values, and
accordingly were subject to overflows
2020-12-01 17:19:54 +10:00
Nyall Dawson
0c7df50126 Add framework for calculating the overall elevation/z range of a QgsProject 2020-11-28 16:45:54 +10:00
Nyall Dawson
2632627d39 Add point cloud implementation of QgsMapLayerElevationProperties 2020-11-28 16:45:54 +10:00
Nyall Dawson
775320e095 Implement z range filtering for point clouds 2020-11-28 16:45:54 +10:00
Nyall Dawson
acbeebe32a [pointclouds] Expose option to set point size for 2d point cloud renders 2020-11-19 15:49:43 +01:00
Nyall Dawson
4e13ad5555 Spelling, dox 2020-11-16 19:38:07 +10:00
Nyall Dawson
0d3ccf7040 Move setting for maximum screen error to QgsPointCloudRenderer, expose in GUI 2020-11-16 19:38:07 +10:00
Nyall Dawson
28c2788989 Spelling 2020-11-16 19:38:07 +10:00
Nyall Dawson
bf8ccad89e Add contrast enhancement options for point cloud RGB renderer 2020-11-16 19:38:07 +10:00
Nyall Dawson
5158922428 Default to a RGB renderer for point clouds with Red/Green/Blue attributes present 2020-11-13 02:59:05 +10:00
Nyall Dawson
948a7dc9bc Move some common code to base class 2020-11-13 02:59:05 +10:00
Nyall Dawson
3ca572c0e3 2D RGB Renderer for point clouds 2020-11-13 02:59:05 +10:00
Nyall Dawson
a6d61c000a Start on registry for 2d point cloud renderers 2020-11-13 02:59:05 +10:00
Nyall Dawson
70e6cc7304 Implement QgsMapLayer methods required for saving/loading renderer properties 2020-11-13 02:59:05 +10:00
Nyall Dawson
1feccd1ea1 Add more methods to QgsPointCloudRenderer class 2020-11-13 02:59:05 +10:00
Nyall Dawson
1a2d6ec5d5 Add scale, offset and counter for points rendered to QgsPointCloudRenderContext 2020-11-13 02:59:05 +10:00
Nyall Dawson
0169347f5b Hookup API for point cloud data providers to create default renderers for associated layers 2020-11-13 02:59:05 +10:00
Nyall Dawson
c2fe0d3749 Hook QgsPointCloudRenderer into QgsPointCloudLayerRenderer (non-functional for now) 2020-11-13 02:59:05 +10:00
Nyall Dawson
abbd634b44 API shell for QgsPointCloudRenderer 2d point cloud renderer 2020-11-13 02:59:05 +10:00
Nyall Dawson
8bb7edbbc6 Expose QgsPointCloudBlock to Python 2020-11-13 02:59:05 +10:00
Nyall Dawson
5924ff7cf5 Move guts of qgspointcloudrenderer.* to qgspointcloudlayerrenderer.* 2020-11-13 02:59:05 +10:00
Nyall Dawson
38e6b6b93e Add proxy model for filtering QgsPointCloudAttributeModel by attribute type 2020-11-12 17:33:37 +10:00
Nyall Dawson
d8f6a2e152 Add attribute index role to point cloud attribute model 2020-11-12 17:33:37 +10:00
Nyall Dawson
b9a7a365c0 Add attributes() member to QgsPointCloudDataProvider, QgsPointCloudLayer
Gives direct access to point cloud attributes
2020-11-12 17:33:37 +10:00
Nyall Dawson
819fc50b0e Don't use generic "QgsMapLayer" class name in map layer Python repr
strings

Rather use actual layer subclass type, e.g. QgsVectorLayer
2020-11-12 16:05:52 +10:00
Nyall Dawson
8d54dc8f9a Fix sip build 2020-11-10 02:17:10 +10:00
Nyall Dawson
59601bf17d Add QgsPointCloudAttributeComboBox widget
A reusable widget for selecting an attribute from a point cloud layer
2020-11-10 02:17:10 +10:00
Nyall Dawson
aa428a060e Add QgsPointCloudAttributeModel model for display of attributes in
a point cloud layer
2020-11-10 02:17:10 +10:00
Nyall Dawson
d0d7aa6ca9 Expose QgsPointCloudAttribute/QgsPointCloudAttributeCollection to sip 2020-11-10 02:17:10 +10:00
Peter Petrik
3dec432cb6 [pointclouds] add basic structure for PDAL layer 2020-11-04 21:56:09 +01:00