From fc78288ef86563f5abe0efd3cba70f85ad23adfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Schw=C3=B6rer?= Date: Mon, 23 Jul 2018 17:38:48 +0200 Subject: [PATCH] remove duplicate code for deserialization of Submap3D from proto (#1322) This PR removes the duplicate code for deserialization/updating Submap3Ds from a proto. --- cartographer/mapping/3d/submap_3d.cc | 14 ++++++-------- cartographer/mapping/3d/submap_3d.h | 2 ++ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/cartographer/mapping/3d/submap_3d.cc b/cartographer/mapping/3d/submap_3d.cc index 83b0a07..c277895 100644 --- a/cartographer/mapping/3d/submap_3d.cc +++ b/cartographer/mapping/3d/submap_3d.cc @@ -204,13 +204,8 @@ Submap3D::Submap3D(const float high_resolution, const float low_resolution, common::make_unique(low_resolution)) {} Submap3D::Submap3D(const proto::Submap3D& proto) - : Submap(transform::ToRigid3(proto.local_pose())), - high_resolution_hybrid_grid_( - common::make_unique(proto.high_resolution_hybrid_grid())), - low_resolution_hybrid_grid_( - common::make_unique(proto.low_resolution_hybrid_grid())) { - set_num_range_data(proto.num_range_data()); - set_finished(proto.finished()); + : Submap(transform::ToRigid3(proto.local_pose())) { + UpdateFromProto(proto); } proto::Submap Submap3D::ToProto( @@ -231,7 +226,10 @@ proto::Submap Submap3D::ToProto( void Submap3D::UpdateFromProto(const proto::Submap& proto) { CHECK(proto.has_submap_3d()); - const auto& submap_3d = proto.submap_3d(); + UpdateFromProto(proto.submap_3d()); +} + +void Submap3D::UpdateFromProto(const proto::Submap3D& submap_3d) { set_num_range_data(submap_3d.num_range_data()); set_finished(submap_3d.finished()); if (submap_3d.has_high_resolution_hybrid_grid()) { diff --git a/cartographer/mapping/3d/submap_3d.h b/cartographer/mapping/3d/submap_3d.h index a770936..39f0bf9 100644 --- a/cartographer/mapping/3d/submap_3d.h +++ b/cartographer/mapping/3d/submap_3d.h @@ -67,6 +67,8 @@ class Submap3D : public Submap { void Finish(); private: + void UpdateFromProto(const proto::Submap3D& submap_3d); + std::unique_ptr high_resolution_hybrid_grid_; std::unique_ptr low_resolution_hybrid_grid_; };