... by improving the check whether an octree node might contain a point within radius. Previously this was done by a sphere around the node center (some nodes were checked although that would not have been necessary), now this is done exact (like a rounded cube).
Benchmarks:
NormalEstimation (without OpenMP) with octree:
NormalEstimation
Old
New
r=0.01, cloud=milk
914 ms
756 ms
r=0.01, cloud=mug
1133 ms
881 ms
r=0.02, cloud=milk
1979 ms
1784 ms
r=0.02, cloud=mug
2642 ms
2244 ms
Calling radiusSearch on every (valid) point of a cloud (r is tuned so that 5 and 50 neighbours are found on average, respectively):
... by improving the check whether an octree node might contain a point within radius. Previously this was done by a sphere around the node center (some nodes were checked although that would not have been necessary), now this is done exact (like a rounded cube).