15 #include <mrpt/core/exceptions.h>
16 #include <mrpt/maps/CPointsMapXYZI.h>
17 #include <mrpt/maps/CPointsMapXYZIRT.h>
20 const mrpt::maps::CPointsMap& pc,
bool printWarnings)
23 const size_t n = pc.size();
25 if (
auto* pcIRT =
dynamic_cast<const mrpt::maps::CPointsMapXYZIRT*
>(&pc);
28 if (pcIRT->hasIntensityField() &&
29 pcIRT->getPointsBufferRef_intensity()->size() != n)
31 ASSERT_EQUAL_(pcIRT->getPointsBufferRef_intensity()->size(), n);
34 std::cerr <<
"[mp2p_icp] WARNING: Intensity channel has "
38 if (pcIRT->hasRingField() &&
39 pcIRT->getPointsBufferRef_ring()->size() != n)
43 std::cerr <<
"[mp2p_icp] WARNING: Ring channel has "
47 if (pcIRT->hasTimeField() &&
48 pcIRT->getPointsBufferRef_timestamp()->size() != n)
52 std::cerr <<
"[mp2p_icp] WARNING: Timestamp channel has "
57 else if (
auto* pcI =
dynamic_cast<const mrpt::maps::CPointsMapXYZI*
>(&pc);
60 if (pcI->getPointsBufferRef_intensity() &&
61 pcI->getPointsBufferRef_intensity()->size() != n)
65 std::cerr <<
"[mp2p_icp] WARNING: Intensity channel has "