Skip to content

Conversation

viplix3
Copy link

@viplix3 viplix3 commented Jul 15, 2025

Adds a new IntensityOcTree / IntensityOcTreeNode that stores a single double intensity per leaf (same layout & API style as ColorOcTree).

  • integrateNodeIntensity() averages intensity weighted by occupancy; inner-node update & prune mirror ColorOcTree.
  • Useful for downstream intensity-based filtering / weighting without keeping an external map.
  • I/O, prune, and OpenMP paths unchanged

viplix3 added 8 commits July 13, 2025 15:46
Adds a new Octree implementation that stores intensity values in addition to occupancy probability.

This new tree type allows for representing intensity information alongside spatial occupancy, enabling applications that require both geometric and radiometric data.
Ensures that intensity values are correctly propagated to child nodes when expanding an IntensityOcTreeNode.

This change addresses a potential issue where newly created child nodes in an expanded node would not inherit the intensity of their parent, leading to inaccurate intensity representation in the octree.
Adds methods for intensity integration, pruning, and averaging
in IntensityOcTree, enhancing node management and data consistency.

Also introduces a small epsilon value to avoid division by zero.
Removes the unused `integrateNodeIntensity` method that takes an `IntensityOcTreeNode` and weight as input.
This simplifies the API and removes potentially confusing or redundant methods.
Updates inner node occupancy recursively for intensity octrees.

This change ensures that the intensity values of inner nodes are correctly
updated based on the children's values, leading to a more accurate
representation of the intensity distribution in the octree.
Adds a `computeUpdateKeys` method to `IntensityOcTree`.

This method allows to compute the set of free and occupied cells
corresponding to a pointcloud, using an alternative interface
based on octomath vectors.
Improves the efficiency of the inner node occupancy update process by adding a condition to check for the presence of children before recursively updating occupancy.

This avoids unnecessary processing when a node has no children, leading to performance gains, especially in sparse octrees.
@ahornung
Copy link
Member

Thanks! Any chance to add a few unit tests well?

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.

2 participants