Структура точки, представляющая евклидовы координаты xyz и цвет RGB.
По историческим причинам (PCL был первоначально разработан как пакет ROS), информация RGB упаковывается в целое число и приводится к типу float. Мы хотим убрать это в ближайшем будущем, но пока фрагмент кода ниже поможет вам упаковывать и распаковывать цвета RGB в вашей структуре PointXYZRGB:
// pack r/g/b into rgb
std::uint8_t r = 255, g = 0, b = 0; // Example: Red color
std::uint32_t rgb = ((std::uint32_t)r << 16 | (std::uint32_t)g << 8 | (std::uint32_t)b);
p.rgb = *reinterpret_cast<float*>(&rgb);
Для распаковки данных в отдельные значения используйте: