epoint_transform/
filter.rs

1use crate::Error;
2use epoint_core::PointCloud;
3use polars::prelude::{IntoLazy, all, col};
4
5pub fn filter_none_values_of_column_in_place(
6    point_cloud: &mut PointCloud,
7    column_name: &str,
8) -> Result<(), Error> {
9    let filtered_point_data = point_cloud
10        .point_data
11        .data_frame
12        .clone()
13        .lazy()
14        .filter(col(column_name).is_not_null())
15        .select([all().as_expr()])
16        .collect()?;
17
18    point_cloud.point_data.data_frame = filtered_point_data;
19
20    Ok(())
21}