Point Cloud Library (PCL)
1.7.0
|
A point structure representing Euclidean xyz coordinates, and the RGB color, together with normal coordinates and the surface curvature estimate. More...
#include <pcl/impl/point_types.hpp>
Public Member Functions | |
PointXYZRGBNormal (const _PointXYZRGBNormal &p) | |
PointXYZRGBNormal () | |
Eigen::Vector3i | getRGBVector3i () |
const Eigen::Vector3i | getRGBVector3i () const |
Eigen::Vector4i | getRGBVector4i () |
const Eigen::Vector4i | getRGBVector4i () const |
Friends | |
std::ostream & | operator<< (std::ostream &os, const PointXYZRGBNormal &p) |
A point structure representing Euclidean xyz coordinates, and the RGB color, together with normal coordinates and the surface curvature estimate.
Due to historical reasons (PCL was first developed as a ROS package), the RGB information is packed into an integer and casted to a float. This is something we wish to remove in the near future, but in the meantime, the following code snippet should help you pack and unpack RGB colors in your PointXYZRGB structure:
// pack r/g/b into rgb uint8_t r = 255, g = 0, b = 0; // Example: Red color uint32_t rgb = ((uint32_t)r << 16 | (uint32_t)g << 8 | (uint32_t)b); p.rgb = *reinterpret_cast<float*>(&rgb);
To unpack the data into separate values, use:
PointXYZRGB p; // unpack rgb into r/g/b uint32_t rgb = *reinterpret_cast<int*>(&p.rgb); uint8_t r = (rgb >> 16) & 0x0000ff; uint8_t g = (rgb >> 8) & 0x0000ff; uint8_t b = (rgb) & 0x0000ff;
Alternatively, from 1.1.0 onwards, you can use p.r, p.g, and p.b directly.
Definition at line 900 of file point_types.hpp.
pcl::PointXYZRGBNormal::PointXYZRGBNormal | ( | const _PointXYZRGBNormal & | p | ) | [inline] |
Definition at line 902 of file point_types.hpp.
References pcl::_PointXYZRGBNormal::curvature, and pcl::_PointXYZRGBNormal::rgba.
pcl::PointXYZRGBNormal::PointXYZRGBNormal | ( | ) | [inline] |
Definition at line 910 of file point_types.hpp.
References pcl::_PointXYZRGBNormal::a, pcl::_PointXYZRGBNormal::b, pcl::_PointXYZRGBNormal::curvature, pcl::_PointXYZRGBNormal::g, and pcl::_PointXYZRGBNormal::r.
Eigen::Vector3i pcl::PointXYZRGBNormal::getRGBVector3i | ( | ) | [inline] |
Definition at line 919 of file point_types.hpp.
References pcl::_PointXYZRGBNormal::b, pcl::_PointXYZRGBNormal::g, and pcl::_PointXYZRGBNormal::r.
const Eigen::Vector3i pcl::PointXYZRGBNormal::getRGBVector3i | ( | ) | const [inline] |
Definition at line 923 of file point_types.hpp.
References pcl::_PointXYZRGBNormal::b, pcl::_PointXYZRGBNormal::g, and pcl::_PointXYZRGBNormal::r.
Eigen::Vector4i pcl::PointXYZRGBNormal::getRGBVector4i | ( | ) | [inline] |
Definition at line 924 of file point_types.hpp.
References pcl::_PointXYZRGBNormal::a, pcl::_PointXYZRGBNormal::b, pcl::_PointXYZRGBNormal::g, and pcl::_PointXYZRGBNormal::r.
const Eigen::Vector4i pcl::PointXYZRGBNormal::getRGBVector4i | ( | ) | const [inline] |
Definition at line 928 of file point_types.hpp.
References pcl::_PointXYZRGBNormal::a, pcl::_PointXYZRGBNormal::b, pcl::_PointXYZRGBNormal::g, and pcl::_PointXYZRGBNormal::r.
std::ostream& operator<< | ( | std::ostream & | os, |
const PointXYZRGBNormal & | p | ||
) | [friend] |