Public Attributes

pcl::_PointXYZRGBNormal Struct Reference
[Module common]

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:
Inheritance graph
[legend]
Collaboration diagram for pcl::_PointXYZRGBNormal:
Collaboration graph
[legend]

List of all members.

Public Attributes

 PCL_ADD_POINT4D
 PCL_ADD_NORMAL4D
union {
   struct {
      union {
         struct {
            uint8_t   b
            uint8_t   g
            uint8_t   r
            uint8_t   _unused
         } 
         float   rgb
         uint32_t   rgba
      } 
      float   curvature
   } 
   float   data_c [4]
}; 

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:

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


Member Data Documentation

union { ... }

Definition at line 602 of file point_types.hpp.

Definition at line 599 of file point_types.hpp.

Definition at line 607 of file point_types.hpp.

Definition at line 609 of file point_types.hpp.

Definition at line 600 of file point_types.hpp.

Definition at line 589 of file point_types.hpp.

Definition at line 588 of file point_types.hpp.

Definition at line 601 of file point_types.hpp.

Definition at line 604 of file point_types.hpp.

Definition at line 605 of file point_types.hpp.


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