File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1818 * @date Sep 10, 2021
1919 */
2020
21+ #include < mp2p_icp/pointcloud_field_utils.h>
2122#include < mp2p_icp_filters/FilterBoundingBox.h>
2223#include < mp2p_icp_filters/GetOrCreatePointLayer.h>
2324#include < mrpt/containers/yaml.h>
@@ -111,11 +112,13 @@ void FilterBoundingBox::filter(mp2p_icp::metric_map_t& inOut) const
111112 {
112113 insidePc->registerPointFieldsFrom (pc);
113114 ctxInside = insidePc->prepareForInsertPointsFrom (pc);
115+ mp2p_icp::warn_on_field_padding_mismatch (pc, *insidePc, *this );
114116 }
115117 if (outsidePc)
116118 {
117119 outsidePc->registerPointFieldsFrom (pc);
118120 ctxOutside = outsidePc->prepareForInsertPointsFrom (pc);
121+ mp2p_icp::warn_on_field_padding_mismatch (pc, *outsidePc, *this );
119122 }
120123
121124 const auto & xs = pc.getPointsBufferRef_x ();
Original file line number Diff line number Diff line change 1818 * @date Nov 14, 2023
1919 */
2020
21+ #include < mp2p_icp/pointcloud_field_utils.h>
2122#include < mp2p_icp/pointcloud_sanity_check.h>
2223#include < mp2p_icp_filters/FilterByRange.h>
2324#include < mp2p_icp_filters/GetOrCreatePointLayer.h>
@@ -122,11 +123,13 @@ void FilterByRange::filter(mp2p_icp::metric_map_t& inOut) const
122123 {
123124 outBetween->registerPointFieldsFrom (pc);
124125 ctxBetween = outBetween->prepareForInsertPointsFrom (pc);
126+ mp2p_icp::warn_on_field_padding_mismatch (pc, *outBetween, *this );
125127 }
126128 if (outOutside)
127129 {
128130 outOutside->registerPointFieldsFrom (pc);
129131 ctxOutside = outOutside->prepareForInsertPointsFrom (pc);
132+ mp2p_icp::warn_on_field_padding_mismatch (pc, *outOutside, *this );
130133 }
131134
132135 for (size_t i = 0 ; i < xs.size (); i++)
Original file line number Diff line number Diff line change 1818 * @date Jan 12, 2026
1919 */
2020
21+ #include < mp2p_icp/pointcloud_field_utils.h>
2122#include < mp2p_icp_filters/FilterDecimate.h>
2223#include < mp2p_icp_filters/GetOrCreatePointLayer.h>
2324#include < mrpt/containers/yaml.h>
@@ -82,21 +83,14 @@ void FilterDecimate::filter(mp2p_icp::metric_map_t& inOut) const
8283 pcIn->GetRuntimeClass ()->className );
8384
8485 // Efficiently copy points including all extra fields
85- #if MRPT_VERSION >= 0x020f00
8686 outPc->registerPointFieldsFrom (*pcIn);
8787 auto ctx = outPc->prepareForInsertPointsFrom (*pcIn);
88- # endif
88+ mp2p_icp::warn_on_field_padding_mismatch (*pcIn, *outPc, * this );
8989
9090 outPc->reserve (outPc->size () + (nIn / N));
9191
9292 for (size_t i = 0 ; i < nIn; i += N)
9393 {
94- #if MRPT_VERSION >= 0x020f03
9594 outPc->insertPointFrom (i, ctx);
96- #elif MRPT_VERSION >= 0x020f00
97- outPc->insertPointFrom (*pcIn, i, ctx);
98- #else
99- outPc->insertPointFrom (*pcIn, i);
100- #endif
10195 }
10296}
Original file line number Diff line number Diff line change 1818 * @date Nov 24, 2023
1919 */
2020
21+ #include < mp2p_icp/pointcloud_field_utils.h>
2122#include < mp2p_icp_filters/FilterDecimateAdaptive.h>
2223#include < mp2p_icp_filters/GetOrCreatePointLayer.h>
2324#include < mrpt/containers/yaml.h>
@@ -183,6 +184,7 @@ void FilterDecimateAdaptive::filter(mp2p_icp::metric_map_t& inOut) const
183184
184185 outPc->registerPointFieldsFrom (pc);
185186 mrpt::maps::CPointsMap::InsertCtx ctx = outPc->prepareForInsertPointsFrom (pc);
187+ mp2p_icp::warn_on_field_padding_mismatch (pc, *outPc, *this );
186188
187189 // Perform resampling:
188190 // -------------------
Original file line number Diff line number Diff line change 1818 * @date Sep 10, 2021
1919 */
2020
21+ #include < mp2p_icp/pointcloud_field_utils.h>
2122#include < mp2p_icp/pointcloud_sanity_check.h>
2223#include < mp2p_icp_filters/FilterDecimateVoxels.h>
2324#include < mp2p_icp_filters/GetOrCreatePointLayer.h>
@@ -172,6 +173,7 @@ void FilterDecimateVoxels::filter(mp2p_icp::metric_map_t& inOut) const
172173 outPc->registerPointFieldsFrom (*pcPtrs[mapIdx]);
173174 mrpt::maps::CPointsMap::InsertCtx ctxOut =
174175 outPc->prepareForInsertPointsFrom (*pcPtrs[mapIdx]);
176+ mp2p_icp::warn_on_field_padding_mismatch (*pcPtrs[mapIdx], *outPc, *this );
175177
176178 for (size_t i = 0 ; i < xs.size (); i++)
177179 {
Original file line number Diff line number Diff line change 2424#include < mola_imu_preintegration/trajectory_from_buffer.h>
2525#endif
2626
27+ #include < mp2p_icp/pointcloud_field_utils.h>
2728#include < mp2p_icp_filters/FilterDeskew.h>
2829#include < mp2p_icp_filters/GetOrCreatePointLayer.h>
2930#include < mrpt/containers/yaml.h>
@@ -430,6 +431,7 @@ void FilterDeskew::filter(mp2p_icp::metric_map_t& inOut) const
430431
431432 // and then, prepare structures for fast copying:
432433 insert_ctx = outPc->prepareForInsertPointsFrom (*inPc);
434+ mp2p_icp::warn_on_field_padding_mismatch (*inPc, *outPc, *this );
433435 }
434436
435437 // If the input is empty, just move on:
Original file line number Diff line number Diff line change 1919 * @date Oct 26, 2025
2020 */
2121
22+ #include < mp2p_icp/pointcloud_field_utils.h>
23+ #include < mp2p_icp/pointcloud_sanity_check.h>
2224#include < mp2p_icp_filters/FilterMLS.h>
2325#include < mp2p_icp_filters/GetOrCreatePointLayer.h>
2426#include < mrpt/containers/NonCopiableData.h>
@@ -630,6 +632,7 @@ void FilterMLS::filter(mp2p_icp::metric_map_t& inOut) const
630632 ASSERT_ (normals_z);
631633
632634 const auto ctx = outPc->prepareForInsertPointsFrom (*query_pc);
635+ mp2p_icp::warn_on_field_padding_mismatch (*query_pc, *outPc, *this );
633636
634637 const size_t firstIdx = outPc->size ();
635638 outPc->reserve (firstIdx + nNewPoints);
Original file line number Diff line number Diff line change 1919 * @date Dec 28, 2025
2020 */
2121
22+ #include < mp2p_icp/pointcloud_field_utils.h>
23+ #include < mp2p_icp/pointcloud_sanity_check.h>
2224#include < mp2p_icp_filters/FilterSOR.h>
2325#include < mp2p_icp_filters/GetOrCreatePointLayer.h>
2426#include < mrpt/containers/yaml.h>
@@ -87,11 +89,13 @@ void FilterSOR::filter(mp2p_icp::metric_map_t& inOut) const
8789 {
8890 outInliers->registerPointFieldsFrom (pc);
8991 ctxI = outInliers->prepareForInsertPointsFrom (pc);
92+ mp2p_icp::warn_on_field_padding_mismatch (pc, *outInliers, *this );
9093 }
9194 if (outOutliers)
9295 {
9396 outOutliers->registerPointFieldsFrom (pc);
9497 ctxO = outOutliers->prepareForInsertPointsFrom (pc);
98+ mp2p_icp::warn_on_field_padding_mismatch (pc, *outOutliers, *this );
9599 }
96100
97101 if (pcPtr->empty ())
Original file line number Diff line number Diff line change 1919 * @date Jan 21, 2026
2020 */
2121
22+ #include < mp2p_icp/pointcloud_field_utils.h>
23+ #include < mp2p_icp/pointcloud_sanity_check.h>
2224#include < mp2p_icp_filters/FilterVoxelSOR.h>
2325#include < mp2p_icp_filters/GetOrCreatePointLayer.h>
2426#include < mp2p_icp_filters/PointCloudToVoxelGrid.h>
@@ -92,16 +94,17 @@ void FilterVoxelSOR::filter(mp2p_icp::metric_map_t& inOut) const
9294 outOutliers->clear ();
9395 }
9496
95- #if MRPT_VERSION >= 0x020f00
9697 outInliers->registerPointFieldsFrom (*pcIn);
9798 auto ctxI = outInliers->prepareForInsertPointsFrom (*pcIn);
99+ mp2p_icp::warn_on_field_padding_mismatch (*pcIn, *outInliers, *this );
100+
98101 std::optional<mrpt::maps::CPointsMap::InsertCtx> ctxO;
99102 if (outOutliers)
100103 {
101104 outOutliers->registerPointFieldsFrom (*pcIn);
102105 ctxO = outOutliers->prepareForInsertPointsFrom (*pcIn);
106+ mp2p_icp::warn_on_field_padding_mismatch (pc, *outOutliers, *this );
103107 }
104- #endif
105108
106109 const auto & xs = pcIn->getPointsBufferRef_x ();
107110 const auto & ys = pcIn->getPointsBufferRef_y ();
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ set(LIB_SRCS
1111 src/NearestPlaneCapable.cpp
1212 src/NearestPointWithCovCapable.cpp
1313 src/point_with_cov_pair_t.cpp
14+ src/pointcloud_field_utils.cpp
1415 src/pointcloud_sanity_check.cpp
1516 src/update_velocity_buffer_from_obs.cpp
1617 #
@@ -30,6 +31,7 @@ set(LIB_PUBLIC_HDRS
3031 include/mp2p_icp/point_plane_pair_t.h
3132 include/mp2p_icp/point_with_cov_pair_t.h
3233 include/mp2p_icp/pointcloud_bitfield.h
34+ include/mp2p_icp/pointcloud_field_utils.h
3335 include/mp2p_icp/pointcloud_sanity_check.h
3436 include/mp2p_icp/render_params.h
3537 include/mp2p_icp/update_velocity_buffer_from_obs.h
You can’t perform that action at this time.
0 commit comments