Skip to content

[io] Document that OctreePointCloudCompression only encodes xyz and color - #6502

Open
ump45nose wants to merge 1 commit into
PointCloudLibrary:masterfrom
ump45nose:docs/octree-compression-fields
Open

ump45nose wants to merge 1 commit into
PointCloudLibrary:masterfrom
ump45nose:docs/octree-compression-fields

Conversation

@ump45nose

Copy link
Copy Markdown
Contributor

Fixes #6272.

As mentioned in the issue, OctreePointCloudCompression only encodes the coordinates and, optionally, the color, and that should be documented more clearly. In deserializeTreeCallback every decoded point starts as a default-constructed PointT; the point coder fills in x/y/z and the color coder writes the rgb/rgba field, nothing else. So e.g. a PointXYZI comes back with intensity 0.

Changes (documentation only):

  • octree_pointcloud_compression.h: add a note to the class docs saying which fields are encoded, that other fields (intensity, normals, ...) end up with their default values after decoding, and that the class is only precompiled for PointXYZ, PointXYZRGB and PointXYZRGBA, so other point types need impl/octree_pointcloud_compression.hpp (that is the linker error from [io] OctreePointCloudCompression only supports types pre-baked in io/src/compression.cpp #4516). This also replaces an empty \note.
  • compression.rst: add a short note near the top of the tutorial with the same information.

Checked: built a small program against current master that round-trips 100 PointXYZI points (intensity 1000–1099) through encodePointCloud/decodePointCloud; all decoded intensities are 0.

I used an AI assistant (Grok Bot) to help look through the encoder/decoder and draft the wording; I checked the code paths and the result myself.

The decoder default-constructs every output point and only fills in the
coordinates and (optionally) the rgb/rgba field, so fields such as
intensity or normals are lost after a round trip. Say so in the class
docs and in the compression tutorial, and note which point types are
precompiled.

Fixes PointCloudLibrary#6272.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[module_name] OctreePointCloudCompression loses intensity when decompressing pcl::PointXYZI point type

1 participant