Point Cloud Library (PCL)  1.6.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions | Public Attributes
pcl::PointXYZRGB Struct Reference

A point structure representing Euclidean xyz coordinates, and the RGB color. More...

#include <pcl/impl/point_types.hpp>

Inheritance diagram for pcl::PointXYZRGB:
Inheritance graph
[legend]
Collaboration diagram for pcl::PointXYZRGB:
Collaboration graph
[legend]

Public Member Functions

 PointXYZRGB ()
 
 PointXYZRGB (uint8_t _r, uint8_t _g, uint8_t _b)
 
Eigen::Vector3i getRGBVector3i ()
 
const Eigen::Vector3i getRGBVector3i () const
 
Eigen::Vector4i getRGBVector4i ()
 
const Eigen::Vector4i getRGBVector4i () const
 

Public Attributes

 PCL_ADD_POINT4D
 
 PCL_ADD_RGB
 

Detailed Description

A point structure representing Euclidean xyz coordinates, and the RGB color.

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

Constructor & Destructor Documentation

pcl::PointXYZRGB::PointXYZRGB ( )
inline

Definition at line 421 of file point_types.hpp.

pcl::PointXYZRGB::PointXYZRGB ( uint8_t  _r,
uint8_t  _g,
uint8_t  _b 
)
inline

Definition at line 427 of file point_types.hpp.

Member Function Documentation

Eigen::Vector3i pcl::PointXYZRGB::getRGBVector3i ( )
inline

Definition at line 437 of file point_types.hpp.

const Eigen::Vector3i pcl::PointXYZRGB::getRGBVector3i ( ) const
inline

Definition at line 438 of file point_types.hpp.

Eigen::Vector4i pcl::PointXYZRGB::getRGBVector4i ( )
inline

Definition at line 439 of file point_types.hpp.

const Eigen::Vector4i pcl::PointXYZRGB::getRGBVector4i ( ) const
inline

Definition at line 440 of file point_types.hpp.

Member Data Documentation

pcl::_PointXYZRGB::PCL_ADD_POINT4D
inherited

Definition at line 375 of file point_types.hpp.

pcl::_PointXYZRGB::PCL_ADD_RGB
inherited

Definition at line 376 of file point_types.hpp.


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