Go to the documentation of this file.
15 #include <mrpt/core/pimpl.h>
16 #include <mrpt/maps/CPointsMap.h>
91 static_assert(offsetof(
indices_t, cx_) == 0 *
sizeof(uint32_t));
92 static_assert(offsetof(
indices_t, cy_) == 1 *
sizeof(uint32_t));
93 static_assert(offsetof(
indices_t, cz_) == 2 *
sizeof(uint32_t));
95 const uint32_t* vec =
reinterpret_cast<const uint32_t*
>(&k);
96 return ((1 << 20) - 1) &
97 (vec[0] * 73856093 ^ vec[1] * 19349663 ^ vec[2] * 83492791);
103 if (k1.cx_ != k2.cx_)
return k1.cx_ < k2.cx_;
104 if (k1.cy_ != k2.cy_)
return k1.cy_ < k2.cy_;
105 return k1.cz_ < k2.cz_;
115 const std::function<
void(
const indices_t idx,
const voxel_t& vxl)>&
128 mrpt::pimpl<Impl>
impl_;
float min_consecutive_distance
bool operator()(const indices_t &k1, const indices_t &k2) const noexcept
int32_t coord2idx(float xyz) const
std::vector< std::size_t > indices
indices_t(int32_t cx, int32_t cy, int32_t cz)
mrpt::pimpl< Impl > impl_
void processPointCloud(const mrpt::maps::CPointsMap &p)
void setResolution(const float voxel_size)
std::size_t operator()(const indices_t &k) const noexcept
Hash operator for unordered maps:
void visit_voxels(const std::function< void(const indices_t idx, const voxel_t &vxl)> &userCode) const
size_t size() const
Returns the number of occupied voxels.
bool operator==(const indices_t &o) const
mp2p_icp
Author(s):
autogenerated on Fri Dec 20 2024 03:45:59