@@ -300,14 +300,17 @@ DiscreteTrajectorySegment<Frame>::ReadFromMessage(
300
300
}
301
301
302
302
// Finally, restore the downsampling information.
303
+ CHECK_EQ (message.has_downsampling_parameters (),
304
+ message.has_number_of_dense_points ())
305
+ << message.DebugString ();
303
306
if (message.has_downsampling_parameters ()) {
304
307
segment.downsampling_parameters_ = DownsamplingParameters{
305
308
.max_dense_intervals =
306
309
message.downsampling_parameters ().max_dense_intervals (),
307
310
.tolerance = Length::ReadFromMessage (
308
311
message.downsampling_parameters ().tolerance ())};
312
+ segment.number_of_dense_points_ = message.number_of_dense_points ();
309
313
}
310
- segment.number_of_dense_points_ = message.number_of_dense_points ();
311
314
312
315
return segment;
313
316
}
@@ -542,11 +545,11 @@ void DiscreteTrajectorySegment<Frame>::WriteToMessage(
542
545
downsampling_parameters_->max_dense_intervals );
543
546
downsampling_parameters_->tolerance .WriteToMessage (
544
547
serialized_downsampling_parameters->mutable_tolerance ());
548
+ message->set_number_of_dense_points (std::min (
549
+ timeline_size,
550
+ std::max<std::int64_t >(
551
+ 0 , number_of_dense_points_ - number_of_points_to_skip_at_end)));
545
552
}
546
- message->set_number_of_dense_points (std::min (
547
- timeline_size,
548
- std::max<std::int64_t >(
549
- 0 , number_of_dense_points_ - number_of_points_to_skip_at_end)));
550
553
551
554
// Convert the |exact| vector into a set, and add the extremities. This
552
555
// ensures that we don't have redundancies. The set is sorted by time to
0 commit comments