Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Only update changed 3D entities when editing point cloud attributes #60225

Merged
merged 4 commits into from
Jan 23, 2025

Conversation

wonder-sk
Copy link
Member

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.

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.
@wonder-sk wonder-sk added 3D Relates to QGIS' 3D engine or rendering Point Clouds labels Jan 22, 2025
@github-actions github-actions bot added this to the 3.42.0 milestone Jan 22, 2025
Copy link

github-actions bot commented Jan 22, 2025

🪟 Windows builds

Download Windows builds of this PR for testing.
Debug symbols for this build are available here.
(Built from commit a279c2d)

🪟 Windows Qt6 builds

Download Windows Qt6 builds of this PR for testing.
(Built from commit a279c2d)

Copy link
Contributor

@uclaros uclaros left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

src/core/pointcloud/qgspointcloudlayer.h Outdated Show resolved Hide resolved
@wonder-sk wonder-sk merged commit d8f8d13 into qgis:master Jan 23, 2025
31 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3D Relates to QGIS' 3D engine or rendering Point Clouds
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants