Point Cloud Library (PCL)  1.9.1-dev
List of all members | Public Member Functions | Friends
pcl::PointXYZRGBNormal Struct Reference

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>

+ Inheritance diagram for pcl::PointXYZRGBNormal:

Public Member Functions

 PointXYZRGBNormal (const _PointXYZRGBNormal &p)
 
 PointXYZRGBNormal ()
 

Friends

std::ostream & operator<< (std::ostream &os, const PointXYZRGBNormal &p)
 

Additional Inherited Members

- Public Attributes inherited from pcl::_PointXYZRGBNormal
 PCL_ADD_POINT4D
 
 PCL_ADD_NORMAL4D
 
union {
   struct {
         PCL_ADD_UNION_RGB
 
      float   curvature
 
   } 
 
   float   data_c [4]
 
}; 
 
 PCL_ADD_EIGEN_MAPS_RGB
 

Detailed Description

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:

// 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 939 of file point_types.hpp.

Constructor & Destructor Documentation

pcl::PointXYZRGBNormal::PointXYZRGBNormal ( const _PointXYZRGBNormal p)
inline

Definition at line 941 of file point_types.hpp.

References pcl::_PointXYZRGBNormal::curvature.

pcl::PointXYZRGBNormal::PointXYZRGBNormal ( )
inline

Definition at line 949 of file point_types.hpp.

References pcl::operator<<().

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const PointXYZRGBNormal p 
)
friend

The documentation for this struct was generated from the following file: