6 sensor_msgs::msg::PointCloud2::SharedPtr& trimmed_cloud)
const {
8 trimmed_cloud->header = cloud->header;
9 trimmed_cloud->height = 1;
10 trimmed_cloud->is_dense =
false;
11 trimmed_cloud->fields = cloud->fields;
12 trimmed_cloud->point_step = cloud->point_step;
13 trimmed_cloud->width = 0;
14 trimmed_cloud->row_step = 0;
15 trimmed_cloud->data.resize(cloud->data.size());
17 const auto& data = cloud->data;
18 const size_t n = cloud->width * cloud->height;
26 cos_t = std::cos(theta);
27 sin_t = std::sin(theta);
30 for (
size_t i = 0; i < n; ++i) {
37 if (x == 0.0f && y == 0.0f && z == 0.0f) {
45 rx =
static_cast<float>(x * cos_t - y * sin_t);
46 ry =
static_cast<float>(x * sin_t + y * cos_t);
60 trimmed_cloud->width++;
bool within_limits(float x, float y, float z, float intensity, const TrimmingParameters ¶ms, const double max_range) const