Until now, chunk bounds entity used axis-aligned bboxes in world coordinates (floats)
We are switching to bboxes in map coordinates (doubles) and we use
QgsGeoTransform to react correctly when the origin vector changes.
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.
This commit contains some changes created during rebasing onto current master, however they are insifignant and should be ignored, as they will match the changes already in master.
* cannot return min max if triangular mesh does not exist
* only create QgsRenderedLayerStatistics if values changed to prevent loop in rendering
* this was set from two places, remove it from here
* Revert "this was set from two places, remove it from here"
This reverts commit 5d8fbcc321330f1054e5e07cad2ee70c0f9aa661.
* add test case for not existing triangular mesh
* only emit signals here, everything else is handled in renderer creation (avoids double rendering of the mesh layer)
* while updating the widget the component signals need to be blocked
* do not update render here
* add const
* 3D map should not update layer statistics
* update renderer settings from here, signals are emitted from mesh layer
* update test to simulate main canvas extent update
* do rendering in single pass
* emit renderer changed and remove emit of legendChanged