7422 Commits

Author SHA1 Message Date
Nyall Dawson
762ee09e81 Spelling, sip 2020-12-03 07:23:44 +01: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
9bcdcf687a Add possibility for QgsRasterSymbolLegendNode nodes to be checked (API only, doesn't actually expose support for checkable raster classes!) 2020-12-03 07:23:44 +01:00
Nyall Dawson
902cb3debd Move QgsSymbolLegendNode checkAll/uncheckAll/toggle methods up to
QgsLayerTreeModelLegendNode base class

Preparing the way for other legend node types to offer checkable support
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
Vincent Cloarec
761831e6ec
fix displaying enabled/disable mesh dataset group 2020-12-03 07:32:17 +10:00
Nyall Dawson
6a6b77a145 Implement legends for point clouds with the Attribute By Ramp renderer 2020-12-02 21:58:02 +10:00
Loïc Bartoletti
d6ac6c4029 Fix since version for bisector method 2020-12-02 19:46:13 +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
Loïc Bartoletti
0f292cfb36
[API] Improve isValid method for curve type 2020-12-02 06:32:54 +10:00
Loïc Bartoletti
5f36925189 [API] Add asGml methods to QgsCircle 2020-12-02 06:32:00 +10:00
Alessandro Pasotti
c71a2ca589
Merge pull request #40360 from elpaso/server-cold-start-speed-boost
Server: skip initial style storage
2020-12-01 14:50:47 +01:00
Alessandro Pasotti
0ca4cf90d3 Add test for FlagDontStoreOriginalStyles 2020-12-01 09:04:07 +01: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
Alessandro Pasotti
9aa281abb4 Server: skip initial style storage
Background: at project load time for all layers a copy of the style
is loaded and stored as a DOM document. This was implemented for
broken layers to make it possible to store the style back to the
project if a broken layer was kept in the project.

Of course this is not needed nor useful in a server context.

By introducing a new project load flag and using it in the server
config (projects) cache we allow to skip the initial storage of
styles for the server and cut the startup times of our test "monster"
project (~1000 PG layers) from 26 seconds to 15.

Before you ask: I chose to always store the original style
with the idea that we might have been able to use the original
style copy also to "restore" styles to their initial state.
This was never implemented, so I guess we might be good to
make the initial style copy selectively available for broken
layers only in order to speed up project loading in the general
case (desktop).
2020-11-30 18:44:44 +01: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
89a7e3c7f7 Implement responsive map refresh when canvas z range changes 2020-11-28 16:45:54 +10:00
Nyall Dawson
17cc0d4aab Add style flag for elevation properties, and serialize layer
elevation properties
2020-11-28 16:45:54 +10:00
Nyall Dawson
7c964f1d41 Add base class for QgsMapLayerElevationProperties
Base class for storage of map layer elevation properties.
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
Loïc Bartoletti
25e14ee766 add python binding 2020-11-28 08:11:54 +10:00
Nyall Dawson
c0a579c719
Merge pull request #40223 from nyalldawson/vrt_separate
Don't default to placing each input file in a separate  band in build vrt algorithm
2020-11-27 14:45:57 +10:00
Nyall Dawson
928c969e82 More appropriate equality operator for QgsDoubleRange 2020-11-26 04:18:01 +10:00
Nyall Dawson
f6f03cd8e1 [api] Add z range filtering option to QgsMapSettings/QgsRenderContext/QgsMapCanvas
Allows for map renders to be filtered by a z or elevation range,
such that only parts of the layer which are considered within
this range will be rendered.

Implements https://github.com/qgis/QGIS-Enhancement-Proposals/issues/201

*Requires support for respecting the QgsRenderContext zRange to be added
to the relevant map layer renderers
2020-11-26 04:18:01 +10:00
Nyall Dawson
95fa338264 Add repr for QgsIntRange/QgsDoubleRange 2020-11-26 04:18:01 +10:00
Nyall Dawson
752746d494 Add equality operators for QgsRange 2020-11-26 04:18:01 +10:00
Nyall Dawson
5ae0453064 Add isInfinite function to QgsIntRange/QgsDoubleRange 2020-11-26 04:18:01 +10:00
Nyall Dawson
83ccb6554e [processing] Add method to set an explicit override for the default
value of a parameter for the GUI only

This allows us freedom to change the default settings for an algorithm
shown when opening the algorithm in the toolbox/batch/model without
changing the underlying default value used for the parameter in the
raw API (which we can't do easily without potentially breaking 3rd
party scripts/plugins)
2020-11-24 13:11:37 +10:00
Nyall Dawson
99fa35cdd4 Fix dox 2020-11-24 12:59:42 +10:00
Nyall Dawson
a035f434f4 Dox++ 2020-11-24 10:19:32 +10:00
Nyall Dawson
13e8d45fed Add signal for when project preset full extent is changed 2020-11-24 04:44:19 +10:00
Nyall Dawson
483cb8dfb1 Add api to set the maximal extent for a project
If set, this extent will be used when zooming to full extent (or for the
full extent for a map overview frame) instead of the extent calculated
from all map layers.

The intention is to eventually allow users a way to manually set their
desired "area of interest" for a project, so that zooming to full extent
won't zoom all the way out when the project contains global or national
datasets...
2020-11-24 04:44:19 +10:00
Matthias Kuhn
5bd0058bae
Merge pull request #38032 from troopa81/feat_gen_field_readonly
Display generated fields as read-only in editors
2020-11-23 11:24:49 +01:00
Nyall Dawson
6a86642c78
Merge pull request #40220 from nyalldawson/papercut_dd_grid
Don't show degrees based annotation format options for non-geographic map grids
2020-11-23 12:09:06 +10:00
Nyall Dawson
3234489d87 Add a __repr__ method to QgsDataSourceUri 2020-11-23 11:39:35 +10:00
Nyall Dawson
494bf24bc0 Add signals for when layout item map crs or grid crs are changed 2020-11-23 07:03:37 +10:00