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"
|
|
|
|
#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
|
|
|
|
|
2020-12-31 20:59:08 +08:00
|
|
|
template <typename PointType>
|
|
|
|
void AddPointCloud(const typename pcl::PointCloud<PointType>::ConstPtr& cloud,
|
|
|
|
const Color& color, const std::string& id,
|
|
|
|
PCLVisualizer* const viewer, int point_size = 3) {
|
|
|
|
PCLColorHandlerCustom<PointType> color_handler(cloud, color.r, color.g,
|
|
|
|
color.b);
|
|
|
|
viewer->addPointCloud<PointType>(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
|
|
|
}
|
|
|
|
|
2020-12-31 20:59:08 +08:00
|
|
|
template <typename PointType>
|
|
|
|
void AddPointCloud(const typename pcl::PointCloud<PointType>::ConstPtr& cloud,
|
|
|
|
const std::string& field, const std::string& id,
|
|
|
|
PCLVisualizer* const viewer, int point_size = 3) {
|
|
|
|
PCLColorHandlerGenericField<PointType> color_handler(cloud, field);
|
|
|
|
viewer->addPointCloud<PointType>(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-04 21:26:09 +08:00
|
|
|
void AddLine(const pcl::PointXYZ& pt1, const pcl::PointXYZ& pt2,
|
|
|
|
const Color& color, const std::string& id,
|
|
|
|
PCLVisualizer* const viewer);
|
|
|
|
|
|
|
|
void DrawSphere(const pcl::PointXYZ& center, double radius, const Color& color,
|
|
|
|
const std::string& id, PCLVisualizer* const viewer);
|
2020-11-03 15:10:16 +08:00
|
|
|
|
2021-01-04 21:26:09 +08:00
|
|
|
} // namespace common
|