Program Listing for File GridMapVisualization.hpp

Return to documentation for file (/tmp/ws/src/grid_map/grid_map_visualization/include/grid_map_visualization/GridMapVisualization.hpp)

/*
 * GridMapVisualization.hpp
 *
 *  Created on: Nov 19, 2013
 *      Author: Péter Fankhauser
 *   Institute: ETH Zurich, ANYbotics
 *
 */

#ifndef GRID_MAP_VISUALIZATION__GRIDMAPVISUALIZATION_HPP_
#define GRID_MAP_VISUALIZATION__GRIDMAPVISUALIZATION_HPP_

#include <grid_map_msgs/msg/grid_map.hpp>
#include <grid_map_visualization/visualizations/MapRegionVisualization.hpp>
#include <grid_map_visualization/visualizations/OccupancyGridVisualization.hpp>
#include <grid_map_visualization/visualizations/PointCloudVisualization.hpp>
#include <grid_map_visualization/visualizations/VectorVisualization.hpp>
#include <grid_map_visualization/visualizations/VisualizationFactory.hpp>

// ROS
#include <rclcpp/rclcpp.hpp>

// STD
#include <memory>
#include <string>
#include <vector>

namespace grid_map_visualization
{

class GridMapVisualization
{
public:
  explicit GridMapVisualization(const std::string & parameterName);

  virtual ~GridMapVisualization();

  void callback(const grid_map_msgs::msg::GridMap::SharedPtr message);

  rclcpp::Node::SharedPtr nodePtr;

private:
  bool readParameters();

  bool initialize();

  void updateSubscriptionCallback();

  std::string visualizationsParameter_;

  rclcpp::Subscription<grid_map_msgs::msg::GridMap>::SharedPtr mapSubscriber_;

  std::string mapTopic_;

  std::vector<std::shared_ptr<VisualizationBase>> visualizations_;

  std::shared_ptr<VisualizationFactory> factory_;

  rclcpp::TimerBase::SharedPtr activityCheckTimer_;

  double activityCheckRate_;

  bool isSubscribed_;

  bool isGridMapSubLatched_;
};

}  // namespace grid_map_visualization
#endif  // GRID_MAP_VISUALIZATION__GRIDMAPVISUALIZATION_HPP_