Как я могу получить указатель на точку в pcl :: PointCloud - PullRequest
0 голосов
/ 01 июня 2018

У меня есть pcl::PointCloud<pcl::PointXYZ>, и я хочу построить график для отдельных точек в облаке.Я не хочу дублировать память для отдельных точек в облаке, поэтому предпочел бы хранить указатели на эти точки на графике.Как я могу получить указатель на отдельную точку?Могу ли я просто взять адрес PointXYZ, возвращенный итератором, или это копия фактической точки?

1 Ответ

0 голосов
/ 01 июня 2018

Маловероятно, что итератор для чего-то подобного сделал бы копию данных, для которых вы выполняете итерацию, и, глядя на http://docs.pointclouds.org/trunk/classpcl_1_1_cloud_iterator.html,, итератор построен со ссылкой на облако точек,и с помощью оператора * (), возвращающего PointT &, похоже, что вы можете просто сохранить указатель на эти данные.

В качестве альтернативы реализация итератора, по-видимому, предоставляет метод для получения индекса точки, который вы можете сохранить вместо этого.

, чтобы получить указатель от вашего итератора,

PointT* pointer_to_point = &(*iter);

Если вы меняете добавление / удаление точек в облаке точек, вы также можете проверить, что указатели или индикаторы все еще действительны,Я подозреваю, что они будут.

...