135 output.resize (input_->size ());
137 Device<float>::type::iterator nr_points = thrust::copy_if (input_->points_x.begin (), input_->points_x.end (), output.points_x.begin (),
isFiniteSOA ());
138 nr_points = thrust::copy_if (input_->points_y.begin (), input_->points_y.end (), output.points_y.begin (),
isFiniteSOA ());
139 nr_points = thrust::copy_if (input_->points_z.begin (), input_->points_z.end (), output.points_z.begin (),
isFiniteSOA ());
140 output.resize (nr_points - output.points_z.begin ());
149 PointCloud::zip_iterator result = thrust::remove_if (output.zip_begin (), output.zip_end (),
isFiniteZIPSOA ());
150 PointCloud::iterator_tuple result_tuple = result.get_iterator_tuple ();
151 PointCloud::float_iterator xiter = thrust::get<0> (result_tuple),
152 yiter = thrust::get<1> (result_tuple),
153 ziter = thrust::get<2> (result_tuple);
155 unsigned badpoints = distance (xiter, output.points_x.end ());
156 unsigned goodpoints = distance (output.points_x.begin (), xiter);
158 output.resize (goodpoints);