struct mp2p_icp_filters::PointCloudToVoxelGridAverage::Impl

Overview

struct Impl
{
    // fields

    tsl::robin_map<indices_t, uint32_t, IndicesHash> slot_of_voxel;
    std::map<indices_t, uint32_t, IndicesHash> slot_of_voxel_std_map;
    std::vector<Accumulator> accumulators;
    std::vector<uint32_t> slot_of_point;
};

Fields

tsl::robin_map<indices_t, uint32_t, IndicesHash> slot_of_voxel

Voxel key -> slot within accumulators.

std::vector<uint32_t> slot_of_point

Slot of the voxel each input point fell into, so that the second pass does not have to hash the coordinates again. Its capacity is kept across calls, since consecutive clouds have a similar number of points.