73 AINFO <<
"UpdateMask, secondary_indices size is 0.";
77 if (index < 0 ||
static_cast<size_t>(index) >= point_number_) {
80 auto pt = frame->
cloud->at(index);
82 Eigen::Vector4d trans_point(pt.x, pt.y, pt.z, 1);
84 if (trans_point(2) >= height_threshold_) {
96 if (grid_y < 0 || grid_y >= width_ || grid_x < 0 || grid_x >= height_) {
100 size_t grid_idx = grid_x * width_ + grid_y;
105 if (trans_point(1) > FLAGS_y_back && trans_point(1) < FLAGS_y_front && trans_point(0) > FLAGS_x_back
106 && trans_point(0) < FLAGS_x_front) {
115 auto original_cloud = frame->
cloud;
120 auto pt = original_cloud->at(i);
126 if (
bg_nodes_.at(grid_idx).point_number == 0) {
127 bg_nodes_.at(grid_idx).id = valid_node_number_;
128 valid_node_number_ += 1;
130 bg_nodes_.at(grid_idx).point_number += 1;
132 int pt_number =
bg_nodes_.at(grid_idx).point_number;
134 if (pt_number == 1) {
135 bg_nodes_.at(grid_idx).mean_height = pt.z;
136 bg_nodes_.at(grid_idx).mean_intensity = pt.intensity;
139 + (pt.z -
bg_nodes_.at(grid_idx).mean_height) /
static_cast<float>(pt_number);
141 + (pt.intensity -
bg_nodes_.at(grid_idx).mean_intensity) /
static_cast<float>(pt_number);
144 bg_nodes_.at(grid_idx).max_height = std::max(
bg_nodes_.at(grid_idx).max_height, pt.z);
148 int index =
static_cast<int>(label);
150 bg_nodes_.at(grid_idx).pc_semantic_types[index]++;
154 int motion_index =
static_cast<int>(motion_label);
156 bg_nodes_.at(grid_idx).pc_motion_types[motion_index]++;