Создайте pcl::PointCloud::Ptr из pcl::PointCloud

Я хотел бы знать, возможно ли это. У меня есть функция:

 pcl::PointCloud<pcl::PointXYZRGB> createPointCloud(std::Vector<Nodes> input)

, которая возвращает облако точек. Я хотел бы знать, можно ли взять это облако точек и сделать указатель на его копию. pcl создает указатели на облака следующим образом:

pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloudPTR(new pcl::PointCloud<pcl::PointXYZRGB>)

Я пытался сделать так:

pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloudPTR(createPointCloud(nodeList))

Это приводит к довольно очевидной ошибке, т.е. createPointCloud не возвращает указатель на облако.

Я также пробовал это:

pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloudPTR = &createPointCloud(nodeList)

и это:

pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloudPTR(&createPointCloud(nodeList))

И это приводит к ошибке компиляции: «взять адрес временного»

Является ли единственный вариант, чтобы функция возвращала тип указателя или есть способ сделать то, что я прошу?

РЕДАКТИРОВАТЬ:

Оба приведенных ниже ответа верны, я поставил Джонатону правильную отметку, так как на этот раз он занял первое место.

12
задан Fantastic Mr Fox 17 May 2012 в 23:04
поделиться