当我使用CGAL :: K_neighbor_search进行最近邻搜索时,如何获得最近点的索引?

时间:2016-03-09 07:27:55

标签: cgal nearest-neighbor

我正在使用CGAL的K_neighbor_search模块来执行最近邻搜索问题。这很好用,很容易使用。示例代码显示给定查询点,它可以从一组点以及距离中找到最近的邻居点。但是,我只能获得最近的邻居点。我不知道如何获得算法找到的点的索引。 例如,我使用以下代码,

std::list<Point_d> points;
Tree tree(points.begin(), points.end());
Neighbor_search search(tree, query, N);
for(Neighbor_search::iterator it = search.begin(); it != search.end(); ++it)
{
    std::cout << "Point: " << it->first << "\n";
    std::cout << "Distance: " << std::sqrt(it->second) << "\n";
}

结果如下:

  

点:222 129 161

     

距离:189.307

但是如何获得结果点的索引?至于这个问题的原因,我想得到最近邻点的法线,所以我需要引用这一点。 有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

如果您想直接在kd树中使用索引,可以查看this example。 点在外部向量中排序,kd树使用索引来指向内部存储的点。