remove duplicate code for deserialization of Submap3D from proto (#1322)

This PR removes the duplicate code for deserialization/updating Submap3Ds from a proto.
master
Martin Schwörer 2018-07-23 17:38:48 +02:00 committed by Wally B. Feed
parent 33fcc1a3de
commit fc78288ef8
2 changed files with 8 additions and 8 deletions

View File

@ -204,13 +204,8 @@ Submap3D::Submap3D(const float high_resolution, const float low_resolution,
common::make_unique<HybridGrid>(low_resolution)) {} common::make_unique<HybridGrid>(low_resolution)) {}
Submap3D::Submap3D(const proto::Submap3D& proto) Submap3D::Submap3D(const proto::Submap3D& proto)
: Submap(transform::ToRigid3(proto.local_pose())), : Submap(transform::ToRigid3(proto.local_pose())) {
high_resolution_hybrid_grid_( UpdateFromProto(proto);
common::make_unique<HybridGrid>(proto.high_resolution_hybrid_grid())),
low_resolution_hybrid_grid_(
common::make_unique<HybridGrid>(proto.low_resolution_hybrid_grid())) {
set_num_range_data(proto.num_range_data());
set_finished(proto.finished());
} }
proto::Submap Submap3D::ToProto( proto::Submap Submap3D::ToProto(
@ -231,7 +226,10 @@ proto::Submap Submap3D::ToProto(
void Submap3D::UpdateFromProto(const proto::Submap& proto) { void Submap3D::UpdateFromProto(const proto::Submap& proto) {
CHECK(proto.has_submap_3d()); 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_num_range_data(submap_3d.num_range_data());
set_finished(submap_3d.finished()); set_finished(submap_3d.finished());
if (submap_3d.has_high_resolution_hybrid_grid()) { if (submap_3d.has_high_resolution_hybrid_grid()) {

View File

@ -67,6 +67,8 @@ class Submap3D : public Submap {
void Finish(); void Finish();
private: private:
void UpdateFromProto(const proto::Submap3D& submap_3d);
std::unique_ptr<HybridGrid> high_resolution_hybrid_grid_; std::unique_ptr<HybridGrid> high_resolution_hybrid_grid_;
std::unique_ptr<HybridGrid> low_resolution_hybrid_grid_; std::unique_ptr<HybridGrid> low_resolution_hybrid_grid_;
}; };