30 impl_->pts_voxels.clear();
41 const auto& xs = p.getPointsBufferRef_x();
42 const auto& ys = p.getPointsBufferRef_y();
43 const auto& zs = p.getPointsBufferRef_z();
44 const auto npts = xs.size();
46 auto& pts_voxels =
impl_->pts_voxels;
48 pts_voxels.reserve(pts_voxels.size() + npts);
50 for (std::size_t i = 0; i < npts; i++)
58 auto itVoxel = pts_voxels.find(vxl_idx);
60 if (itVoxel != pts_voxels.end())
63 auto& vx =
const_cast<voxel_t&
>(itVoxel->second);
65 if (vx.pointCount == 0)
66 vx = {mrpt::math::TPoint3Df(
x, y, z), i, &p, 1};
73 pts_voxels[vxl_idx] = {mrpt::math::TPoint3Df(
x, y, z), i, &p, 1};
81 impl_->pts_voxels.min_load_factor(0.01
f);
82 impl_->pts_voxels.clear();
86 const std::function<
void(
const indices_t idx,
const voxel_t& vxl)>& userCode)
const
88 for (
const auto& [idx, vxl] :
impl_->pts_voxels) userCode(idx, vxl);