diff --git a/src/glim/preprocess/cloud_preprocessor.cpp b/src/glim/preprocess/cloud_preprocessor.cpp index 00445d02..d0ac89fa 100644 --- a/src/glim/preprocess/cloud_preprocessor.cpp +++ b/src/glim/preprocess/cloud_preprocessor.cpp @@ -190,10 +190,10 @@ std::vector CloudPreprocessor::find_neighbors(const Eigen::Vector4d* points std::vector neighbors(num_points * k); const auto perpoint_task = [&](int i) { - std::vector k_indices(k); + std::vector k_indices(k, i); std::vector k_sq_dists(k); - tree.knn_search(points[i].data(), k, k_indices.data(), k_sq_dists.data()); - std::copy(k_indices.begin(), k_indices.end(), neighbors.begin() + i * k); + size_t num_found = tree.knn_search(points[i].data(), k, k_indices.data(), k_sq_dists.data()); + std::copy(k_indices.begin(), k_indices.begin() + num_found, neighbors.begin() + i * k); }; if (gtsam_points::is_omp_default()) {