(«Functon» — опечатка компилятора, не моя: P)
мой вопрос,
Что мне нужно сделать, это получить данные pointcloud (XYZRGBA) из неуправляемого C ++ pcl в C #.
Я делаю это с помощью следующего кода:
Unmanaged.cpp (C ++)
float* getCloud(int clr_width, int clr_height, int dpth_width,
int dpth_height, int frameId, int clr_focal_x, int clr_focal_y,
int dpth_focal_x, int dpth_focal_y, unsigned char *image,
unsigned char *depth_image) const
{
(some implementation);
}
END OF Unmanaged.cpp
.
Managed.cpp (C ++)
property float[]^ Receiver
{
float[]^ get()
{
return gcnew float[]( Unmanaged->getCloud((int)clr_width,
(int)clr_height, (int)dpth_width, (int)dpth_height, (int)frameId,
(int)clr_focal_x, (int)clr_focal_y, (int)dpth_focal_x,
(int)dpth_focal_y, (unsigned char*)image,
(unsigned char*)depth_image) );
}
}
END OF Managed.cpp
Что я получаю, это ошибка из названия:
‘Kinecter :: getCloud’: эта функция не может быть скомпилирована как управляемая, рассмотрите возможность использования #pragma без управления
Кто-нибудь знает, как это исправить?
Кстати: предложение: #pragma неуправляемые также не работает 🙁
Я исправил это, оказывается, это не имело никакого отношения к этому куску кода.
это было создание облака, у которого были проблемы.
(для пользователей PCL)
cloud->sensor_origin_.setZero (); // BUGGY
cloud->sensor_orientation_.w () = 0.0;
cloud->sensor_orientation_.x () = 1.0;
cloud->sensor_orientation_.y () = 0.0;
cloud->sensor_orientation_.z () = 0.0;
return (cloud);
Я думаю, что я не могу отправить pointcloud, если я не создаю зеркальную версию на C #.
Других решений пока нет …