oh_my_loam/common/visualizer/lidar_visualizer_utils.h

56 lines
2.1 KiB
C
Raw Normal View History

2020-10-28 02:09:59 +08:00
#pragma once
2021-01-04 21:26:09 +08:00
#include <pcl/visualization/pcl_visualizer.h>
#include <pcl/visualization/point_cloud_handlers.h>
2021-01-05 02:09:40 +08:00
2021-01-04 21:26:09 +08:00
#include <pcl/visualization/impl/pcl_visualizer.hpp>
#include <pcl/visualization/impl/point_cloud_geometry_handlers.hpp>
#include <string>
#include "common/color/color.h"
2021-02-08 17:09:52 +08:00
#include "common/geometry/trajectory.h"
2021-01-04 21:26:09 +08:00
#include "common/pcl/pcl_types.h"
namespace common {
2020-10-28 02:09:59 +08:00
using PCLVisualizer = pcl::visualization::PCLVisualizer;
#define PCLColorHandlerCustom pcl::visualization::PointCloudColorHandlerCustom
#define PCLColorHandlerGenericField \
pcl::visualization::PointCloudColorHandlerGenericField
2021-01-23 22:11:08 +08:00
template <typename PT>
void AddPointCloud(const typename pcl::PointCloud<PT>::ConstPtr &cloud,
2021-01-22 16:33:55 +08:00
const Color &color, const std::string &id,
PCLVisualizer *const viewer, int point_size = 3) {
2021-01-23 22:11:08 +08:00
PCLColorHandlerCustom<PT> color_handler(cloud, color.r, color.g, color.b);
viewer->addPointCloud<PT>(cloud, color_handler, id);
2020-10-28 02:09:59 +08:00
viewer->setPointCloudRenderingProperties(
2020-12-31 20:59:08 +08:00
pcl::visualization::PCL_VISUALIZER_POINT_SIZE, point_size, id);
2020-10-28 02:09:59 +08:00
}
2021-01-23 22:11:08 +08:00
template <typename PT>
void AddPointCloud(const typename pcl::PointCloud<PT>::ConstPtr &cloud,
2021-01-22 16:33:55 +08:00
const std::string &field, const std::string &id,
PCLVisualizer *const viewer, int point_size = 3) {
2021-01-23 22:11:08 +08:00
PCLColorHandlerGenericField<PT> color_handler(cloud, field);
viewer->addPointCloud<PT>(cloud, color_handler, id);
2020-10-28 02:09:59 +08:00
viewer->setPointCloudRenderingProperties(
2020-12-31 20:59:08 +08:00
pcl::visualization::PCL_VISUALIZER_POINT_SIZE, point_size, id);
2020-10-28 02:09:59 +08:00
}
2021-01-25 21:00:10 +08:00
template <typename PT>
void AddLine(const PT &pt1, const PT &pt2, const Color &color,
const std::string &id, PCLVisualizer *const viewer) {
viewer->addLine(pt1, pt2, color.r, color.g, color.b, id);
}
2021-01-04 21:26:09 +08:00
2021-01-25 21:00:10 +08:00
template <typename PT>
void AddSphere(const PT &center, double radius, const Color &color,
const std::string &id, PCLVisualizer *const viewer) {
viewer->addSphere(center, radius, color.r, color.g, color.b, id);
}
2020-11-03 15:10:16 +08:00
2021-02-08 17:09:52 +08:00
void AddTrajectory(const Trajectory &trajectory, const Color &color,
const std::string &id, PCLVisualizer *const viewer);
2021-01-04 21:26:09 +08:00
} // namespace common