// filter.h - 点云 XY 过滤(原点无效点 + 多边形过滤) #ifndef FILTER_H #define FILTER_H #include #include // 判定原点(0,0)附近的无效雷达噪点(x和y同时接近0) bool is_origin_point(double x_mm, double y_mm); // 射线法判断点是否在多边形内(支持凹/凸多边形) // px,py: 点坐标, poly: 顶点数组(与点坐标相同单位), n: 顶点数 bool point_in_polygon(double px, double py, const std::vector>& poly, int n); // 综合过滤: 通过(FILTER_ENABLE && cfg.filter.poly_n)判定该 XY 点是否保留 // 返回 true=保留, false=丢弃(原点噪点或超出多边形) bool xy_filter_allowed(double x_mm, double y_mm); #endif // FILTER_H