Этот фрагмент кода кажется неэффективным [закрыто]C++

Программы на C++. Форум разработчиков
Anonymous
Этот фрагмент кода кажется неэффективным [закрыто]

Сообщение Anonymous »

Код: Выделить всё

if (surface_ != input_ ||
indices_->size () != surface_->size ())
{
for (const auto& p_idx: *indices_)
{
if (this->searchForNeighbors (p_idx, search_parameter_, nn_indices, nn_dists) == 0)
continue;

spfh_indices.insert (nn_indices.begin (), nn_indices.end ());
}
}`
Этот фрагмент кода взят из функции ComputeSPFHSignatures в файле fpfh.hpp, а комментарий указывает, что он вычисляет SPFH для всех точек во входной точке. cloud.Комментарии взяты из файла fpfh.h.
Например, после понижения разрешения облака точек, где поверхность_ != input_ имеет значение true, this->searchForNeighbors(p_idx, search_parameter_, nn_indices , nn_dists) выполняет поиск ближайшего соседа в облаке точек с пониженной дискретизацией. Несмотря на это, после цикла spfh_indices по-прежнему сохраняет индексы из input_. В чем тогда его значение? Мы можем просто присвоить индексы, хранящиеся в index_, spfh_indices.
Ссылка на репозиторий: https://github.com/ PointCloudLibrary/pcl/blob/master/features/include/pcl/features/impl/fpfh.hpp
https://github.com/PointCloudLibrary/pc ... tures/fpfh .h
Я не понимаю цели этого фрагмента кода.

Подробнее здесь: https://stackoverflow.com/questions/786 ... neffective

Вернуться в «C++»