SetBasicLayersFilter.cpp
Go to the documentation of this file.
00001 /*
00002  * SetBasicLayersFilters.cpp
00003  *
00004  *  Created on: Aug 16, 2017
00005  *      Author: Peter Fankhauser
00006  *   Institute: ETH Zurich, Robotic Systems Lab
00007  */
00008 
00009 #include "../include/grid_map_filters/SetBasicLayersFilter.hpp"
00010 
00011 #include <grid_map_core/GridMap.hpp>
00012 #include <pluginlib/class_list_macros.h>
00013 
00014 using namespace filters;
00015 
00016 namespace grid_map {
00017 
00018 template<typename T>
00019 SetBasicLayersFilter<T>::SetBasicLayersFilter()
00020 {
00021 }
00022 
00023 template<typename T>
00024 SetBasicLayersFilter<T>::~SetBasicLayersFilter()
00025 {
00026 }
00027 
00028 template<typename T>
00029 bool SetBasicLayersFilter<T>::configure()
00030 {
00031   if (!FilterBase<T>::getParam(std::string("layers"), layers_)) {
00032     ROS_ERROR("SetBasicLayersFilters did not find parameter 'layers'.");
00033     return false;
00034   }
00035 
00036   return true;
00037 }
00038 
00039 template<typename T>
00040 bool SetBasicLayersFilter<T>::update(const T& mapIn, T& mapOut)
00041 {
00042   mapOut = mapIn;
00043   std::vector<std::string> layersChecked;
00044 
00045   for (const auto& layer : layers_) {
00046     if (!mapOut.exists(layer)) {
00047       ROS_WARN("Layer `%s` does not exist and is not set as basic layer.", layer.c_str());
00048       continue;
00049     }
00050     layersChecked.push_back(layer);
00051   }
00052 
00053   mapOut.setBasicLayers(layersChecked);
00054   return true;
00055 }
00056 
00057 } /* namespace */
00058 
00059 PLUGINLIB_EXPORT_CLASS(grid_map::SetBasicLayersFilter<grid_map::GridMap>, filters::FilterBase<grid_map::GridMap>)


grid_map_filters
Author(s): Péter Fankhauser , Martin Wermelinger
autogenerated on Mon Oct 9 2017 03:09:30