Go to the documentation of this file.
15 #include <mrpt/core/pimpl.h>
16 #include <mrpt/maps/CPointsMap.h>
46 std::optional<mrpt::math::TPoint3Df>
point;
48 std::optional<const mrpt::maps::CPointsMap*>
source;
83 static_assert(offsetof(
indices_t, cx_) == 0 *
sizeof(uint32_t));
84 static_assert(offsetof(
indices_t, cy_) == 1 *
sizeof(uint32_t));
85 static_assert(offsetof(
indices_t, cz_) == 2 *
sizeof(uint32_t));
87 const uint32_t* vec =
reinterpret_cast<const uint32_t*
>(&k);
88 return ((1 << 20) - 1) &
89 (vec[0] * 73856093 ^ vec[1] * 19349663 ^ vec[2] * 83492791);
95 if (k1.cx_ != k2.cx_)
return k1.cx_ < k2.cx_;
96 if (k1.cy_ != k2.cy_)
return k1.cy_ < k2.cy_;
97 return k1.cz_ < k2.cz_;
107 const std::function<
void(
const indices_t idx,
const voxel_t& vxl)>&
120 mrpt::pimpl<Impl>
impl_;
size_t size() const
Returns the number of occupied voxels.
int32_t coord2idx(float xyz) const
void processPointCloud(const mrpt::maps::CPointsMap &p)
bool operator==(const indices_t &o) const
std::optional< mrpt::math::TPoint3Df > point
bool operator()(const indices_t &k1, const indices_t &k2) const noexcept
indices_t(int32_t cx, int32_t cy, int32_t cz)
~PointCloudToVoxelGridSingle()
void visit_voxels(const std::function< void(const indices_t idx, const voxel_t &vxl)> &userCode) const
PointCloudToVoxelGridSingle()
std::optional< size_t > pointIdx
void setResolution(const float voxel_size)
mrpt::pimpl< Impl > impl_
std::size_t operator()(const indices_t &k) const noexcept
Hash operator for unordered maps:
std::optional< const mrpt::maps::CPointsMap * > source
mp2p_icp
Author(s):
autogenerated on Fri Dec 20 2024 03:45:59