Class PointCloud2Modifier

Class Documentation

class PointCloud2Modifier

Enables modifying a sensor_msgs::msg::PointCloud2 like a container.

Public Functions

inline explicit PointCloud2Modifier(sensor_msgs::msg::PointCloud2 &cloud_msg)

Default constructor.

Parameters:

cloud_msg – The sensor_msgs::msg::PointCloud2 to modify

inline size_t size() const
Returns:

the number of T’s in the original sensor_msgs::msg::PointCloud2

inline void reserve(size_t size)
Parameters:

size – The number of T’s to reserve in the original sensor_msgs::msg::PointCloud2 for

inline void resize(size_t size)
Parameters:

size – The number of T’s to change the size of the original sensor_msgs::msg::PointCloud2 by

inline void resize(uint32_t width, uint32_t height)
Parameters:
  • width – The new width of the point cloud.

  • height – The new height of the point cloud.

inline void clear()

remove all T’s from the original sensor_msgs::msg::PointCloud2

inline void setPointCloud2Fields(int n_fields, ...)

Function setting some fields in a PointCloud and adjusting the internals of the PointCloud2.

E.g, you create your PointCloud2 message with XYZ/RGB as follows:

*   setPointCloud2Fields(cloud_msg, 4, "x", 1, sensor_msgs::msg::PointField::FLOAT32,
*                                              "y", 1, sensor_msgs::msg::PointField::FLOAT32,
*                                              "z", 1, sensor_msgs::msg::PointField::FLOAT32,
*                                              "rgb", 1, sensor_msgs::msg::PointField::FLOAT32);
*
WARNING: THIS DOES NOT TAKE INTO ACCOUNT ANY PADDING For simple usual cases, the overloaded setPointCloud2FieldsByString is what you want.

Parameters:

n_fields – the number of fields to add. The fields are given as triplets: name of the field as char*, number of elements in the field, the datatype of the field, the datatype of the elements in the field

inline void setPointCloud2FieldsByString(int n_fields, ...)

Function setting some fields in a PointCloud and adjusting the internals of the PointCloud2.

WARNING: THIS FUNCTION ADDS ANY NECESSARY PADDING TRANSPARENTLY

Parameters:

n_fields – the number of fields to add. The fields are given as strings: “xyz” (3 floats), “rgb” (3 uchar stacked in a float), “rgba” (4 uchar stacked in a float)

Returns:

void

Protected Attributes

sensor_msgs::msg::PointCloud2 &cloud_msg_

A reference to the original sensor_msgs::msg::PointCloud2 that we read