14 #include <mrpt/containers/yaml.h>
34 mrpt::system::COutputLogger::setLoggerName(
"FilterAdjustTimestamps");
41 MRPT_LOG_DEBUG_STREAM(
"Loading these params:\n" << c);
62 auto* TsPtr = pc.getPointsBufferRef_timestamp();
64 if (TsPtr ==
nullptr || (TsPtr->empty() && !pc.empty()))
69 MRPT_LOG_DEBUG_STREAM(
71 <<
"' with contents: " << pc.asString()
72 <<
" due to missing timestamps.");
78 "Cannot do time adjusting for input cloud '%s' "
79 "with contents: %s due to missing timestamps.",
86 std::optional<float> minT, maxT;
88 for (
size_t i = 0; i < Ts.size(); i++)
90 const float t = Ts[i];
92 if (!minT ||
t < *minT) minT =
t;
93 if (!maxT ||
t > *maxT) maxT =
t;
95 ASSERT_(minT && maxT);
102 for (
auto&
t : Ts)
t -= dt;
108 for (
auto&
t : Ts)
t -= dt;
113 const float m = *minT;
114 const float k = *maxT != *minT ? 1.0f / (*maxT - *minT) : 1.0
f;
120 THROW_EXCEPTION(
"Unknown value for 'method'");