void DiscreteTrajectory<Frame>::WriteSubTreeToMessage( not_null<serialization::Trajectory*> const message, std::vector<DiscreteTrajectory<Frame>*>& forks) const { Forkable<DiscreteTrajectory, Iterator>::WriteSubTreeToMessage(message, forks); for (auto const& pair : timeline_) { Instant const& instant = pair.first; DegreesOfFreedom<Frame> const& degrees_of_freedom = pair.second; auto const instantaneous_degrees_of_freedom = message->add_timeline(); instant.WriteToMessage(instantaneous_degrees_of_freedom->mutable_instant()); degrees_of_freedom.WriteToMessage( instantaneous_degrees_of_freedom->mutable_degrees_of_freedom()); } }