如何获取指向 pcl::P ointCloud 中点的指针

How can I obtain a pointer to a point in a pcl::PointCloud

本文关键字:指针 ointCloud 取指 pcl 何获      更新时间:2023-10-16

我有一个pcl::PointCloud<pcl::PointXYZ>,我想在云中的各个点上构建一个图形。 我不想复制云中各个点的内存,因此更愿意在图形中存储指向这些点的指针。 如何获取指向单个点的指针? 我可以只获取迭代器返回的PointXYZ的地址,还是实际点的副本?

像这样的东西的迭代器不太可能复制你正在迭代的数据,并且查看 http://docs.pointclouds.org/trunk/classpcl_1_1_cloud_iterator.html,迭代器是引用点云构造的,并且 operator*(( 返回 PointT&,所以看起来你可以只存储指向这些数据的指针。

或者,迭代器实现似乎提供了获取点索引的方法,您可以改为存储点索引。

要从迭代器获取指针,

PointT* pointer_to_point = &(*iter);

如果要更改点云的添加/删除点,则可能还需要检查指针或指示是否仍然有效。我怀疑他们会。