53 Commits

Author SHA1 Message Date
uclaros
b81d9d7c13 Rename params and update docstring in point cloud index 2025-09-02 09:54:40 +02:00
uclaros
52a7ac096a Add authentication support to remote point cloud sources 2025-09-02 09:54:40 +02:00
Simon Lopez
be9608f776 Add QgsMapLayer::profileSource
This commit adds a virtual method to QgsMapLayer to enable the creation of custom
elevation profiles for any type of layer.
The methods returns a pointer to a helper class of type
QgsAbstractProfileSource which is a factory for profile generators
(cf. documentation for QgsAbstractProfileSource).
Existing layers that derive from QgsAbstractProfileSource just override
this method returning a *this* pointer.
As the method is *sipified* it can be used in python to declare custom
profile source for classes derived from PluginLayer (ownership of the
QgsAbstractProfileSource must then be managed on the python side).
2025-06-24 23:24:00 +02:00
Nyall Dawson
4a6fef278e Cleanup docs, don't mention QString in python docs 2025-04-19 18:17:34 +10:00
David Koňařík
5b9bb8b056 Parallelise point cloud attribute editing 2025-04-02 09:26:45 +02:00
Nyall Dawson
3f6b490218 Sipify 2025-04-02 11:11:10 +10:00
Nyall Dawson
4a10066b69 Fix grammar errors in class docstrings 2025-04-01 09:44:00 +10:00
Nyall Dawson
afd2e4f42d Fix doxygen class briefs which aren't full sentences 2025-04-01 09:44:00 +10:00
Nyall Dawson
6d122f0038 Sipify 2025-03-30 20:48:07 +10:00
Nyall Dawson
ac71664a83 Fix multiparagraphs in initial class docstrings 2025-03-30 20:48:07 +10:00
Nyall Dawson
29050007d7 Fix class documentation which starts with "this is..."/"a class..." etc 2025-03-30 20:48:07 +10:00
Martin Dobias
d8f8d13691 address review 2025-01-23 21:04:55 +01:00
Martin Dobias
0a54e009b0 Add some unit tests + fix signals on rollback/commit 2025-01-23 21:04:55 +01:00
Martin Dobias
b94229e024 Only update changed 3D entities when editing point cloud attributes
QgsChunkedEntity gets a capability to update an existing sub-entity for a node
by loading the node again, creating a new 3D entity, and then discarding the old
entity in favor of the new one.

QgsPointCloudLayer gets a new signal - emitted whenever a particular node's
attribute values get changed.

These two are combined for point cloud layer's 3D chunked entity: whenever there
are edits to the point cloud data, instead of doing big hard reload of the whole
point cloud, we only update entities of the few nodes that were modified.
This greatly improves the user experience of point cloud editing (no "flashing"
of the 3D view while loading everything from scratch), and it improves how quickly
the changes can be seen.
2025-01-23 21:04:55 +01:00
Martin Dobias
377df63098 Point cloud editing: write COPC when committing changes 2025-01-16 14:59:05 +01:00
uclaros
d989f5981f adjust to use the new QgsPointCloudIndex class 2025-01-10 13:36:09 +01:00
uclaros
3e773e798e Point cloud editing part 1 2025-01-10 13:36:09 +01:00
Withalion
2bed2b7c3c Fix review issues 2025-01-08 12:40:34 +01:00
Withalion
1d3f3bbb21 Remake overview vpc options 2025-01-08 12:40:34 +01:00
Withalion
efa8912b0b Add option to change between VPC overview and extends 2025-01-08 12:40:34 +01:00
David Koňařík
b49f5ccd38 Expose QgsPointCloudIndex to Python 2025-01-06 21:31:40 +01:00
David Koňařík
252ab6ce12 Move QgsPointCloudAccessType to Qgis 2025-01-06 21:31:40 +01:00
David Koňařík
320ee6b374 Split point cloud index into implementation & wrapper 2025-01-06 21:31:40 +01:00
Nyall Dawson
72f07dc851 Fix build 2024-12-15 11:37:53 +10:00
Matej Bagar
22fe235648
Virtual point clouds - Tile Labels (#59726)
* Add label rendering into VPC tiles

* Move tile labels rendering into QgsPointCloudExtentRenderer

* Rework showLabels flag once more & connect it to widget

* Add widget for label TextFormat WIP

* Rework and fix text format widget issues

* Improve default text format used in VPC labels

* Fix banned keywords issue

* Fix QgsTextFormat review issue

* Fix labels drawing efficiency issue

* Fix formating issues

* Fix review issues
2024-12-11 10:11:44 +01:00
David Koňařík
d47ad7dfe0 Minor changes per review 2024-12-03 09:26:55 +01:00
David Koňařík
f2afd6a498 Expose point cloud class statistics to Python 2024-12-03 09:26:55 +01:00
David Koňařík
e5064f092a Refactor QgsPointCloudIndex statistics methods 2024-12-03 09:26:55 +01:00
David Koňařík
71b2591c62 Fix Identify tool on virtual point cloud
(fix #54729)
2024-10-25 08:26:00 +02:00
Nyall Dawson
08eb9c1049 Populate subset string metadata for provider subclasses 2024-09-18 17:27:06 +10:00
Nyall Dawson
49d31fa527 Fix some malformed docs 2024-08-30 05:47:07 +10:00
Nyall Dawson
3a578d6712 Header update 2024-08-13 20:28:55 +10:00
Nyall Dawson
c2c75f3b19
More no-value dox removal 2024-07-25 09:04:22 +10:00
Nyall Dawson
6d829ff7b4 Drop some more no value documentation 2024-07-25 04:02: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
Nyall Dawson
145de5fb5e
Move QgsDataProvider::ReadFlag to Qgis::DataProviderReadFlag
and promote to enum class
2024-07-18 10:01:59 +10:00
Nyall Dawson
1f27af64a9
Use \see not \sa
So that sipify docstring processing works
2024-07-17 09:02:51 +10:00
Julien Cabieces
0ccaf2d299 sipify 2024-05-31 08:46:33 +10:00
Nyall Dawson
c8d66e1e8d Add method to retrieve significant elevation values from a layer 2024-05-20 11:52:10 +02:00
Nyall Dawson
4383a3a225 Add "dynamic elevation range per band" mode for rasters
In this mode, the user can specify a QGIS expression for the
lower and upper value corresponding to raster bands, using
variables like @band, @band_name and @band_description.

E.g

    @band * 100

Can be used when each band represents a 100 m vertical slice
of data.

The expression will be evaluated when required to determine
the actual elevation range corresponding to each band.

This differs from the existing "Fixed Elevation Range Per Band"
mode in that "Fixed Elevation Range Per Band" requires users
to manually enter an elevation for each band separately,
and these values are then treated as constants. That mode works
best for rasters with non-regular steps in the band
elevation values, while this new mode is better for regular
band elevation steps
2024-03-21 12:33:33 +01:00
Even Rouault
a68422b982 Various typo fixes
Including 3 public methods, which are deprecated by this commit and replaced by a typo-fixed version
2024-02-29 06:03:03 +10:00
Nyall Dawson
0096246afe Sipify 2024-02-13 20:51:03 +10:00
Nyall Dawson
814e6db3b4 Don't map non-list of QVariantMaps to QMap<QString,QVariant>
The original workaround was only supposed to apply to QList/
QVector of QVariantMaps. By replacing them all in sip we
break mapping of signals defined in c++ which are emitted
by Python code.

Fixes exceptions after running processing algorithms in Qt6
builds.
2024-02-12 12:16:14 +10:00
Nyall Dawson
ac2f1179c8 More item data role enum to enum class conversions 2024-02-06 21:04:43 +10:00
uclaros
a09b3d0341 Don't cache failed blocks
Address review
2024-02-05 09:11:56 +00:00
uclaros
1285a8dfe2 Add a static QCache to QgsPointCloudIndex for storing decoded data blocks 2024-02-05 09:11:56 +00:00
Nyall Dawson
503a95a1a1 Move enums to Qgis namespace for consistency 2024-02-02 04:59:04 +10:00
Nyall Dawson
078fd4f2ea Make IntFlag enum type opt-in, rather than opt-out
And make sipify handle this nicely. This means that all our non-flag
style enums correctly map across to IntFlag python enums on Qt 6,
fixing issues with negative enum values for these and providing
a better match for the original c++ enum.
2024-01-31 17:16:18 +10:00
Nyall Dawson
4654ad3db5 Sipify 2024-01-23 08:32:38 +01:00