The voxels of the rolling grid are now stored using an
std::unordered_map instead of
This allows to only save the required voxels, leading to a sparse rolling grid.
Looping over the 3 dimensions is therefore not needed anymore, as we can directly iterate on non empty voxels.
This brings a significant speed performance improvement of the
RollingGrid operations. Typical speed gains on common datasets are:
- Roll: 3x
- Add (without the roll part): x1.5
- Get (ROI): ~same
- Get (all): x10