@@ -41,6 +41,7 @@ typedef unsigned char TextureTexelFormat;
4141#define ENTITY_ID_I32 RGL_FIELD_ENTITY_ID_I32
4242#define INTENSITY_F32 RGL_FIELD_INTENSITY_F32
4343#define INTENSITY_U8 RGL_FIELD_INTENSITY_U8
44+ #define REFLECTIVITY_F32 RGL_FIELD_REFLECTIVITY_F32
4445#define LASER_RETRO_F32 RGL_FIELD_LASER_RETRO_F32
4546#define RING_ID_U16 RGL_FIELD_RING_ID_U16
4647#define AZIMUTH_F32 RGL_FIELD_AZIMUTH_F32
@@ -73,6 +74,7 @@ inline const std::set<rgl_field_t>& getAllRealFields()
7374 ENTITY_ID_I32,
7475 INTENSITY_F32,
7576 INTENSITY_U8,
77+ REFLECTIVITY_F32,
7678 LASER_RETRO_F32,
7779 RING_ID_U16,
7880 AZIMUTH_F32,
@@ -122,6 +124,7 @@ FIELD(RAY_IDX_U32, uint32_t); // PCL uses uint32_t
122124FIELD (ENTITY_ID_I32, int32_t );
123125FIELD (INTENSITY_F32, float );
124126FIELD (INTENSITY_U8, uint8_t );
127+ FIELD (REFLECTIVITY_F32, float );
125128FIELD (LASER_RETRO_F32, float );
126129FIELD (IS_HIT_I32, int32_t ); // Signed may be faster
127130FIELD (IS_GROUND_I32, int32_t ); // Signed may be faster
@@ -156,6 +159,7 @@ inline std::size_t getFieldSize(rgl_field_t type)
156159 case IS_GROUND_I32: return Field<IS_GROUND_I32>::size;
157160 case INTENSITY_F32: return Field<INTENSITY_F32>::size;
158161 case INTENSITY_U8: return Field<INTENSITY_U8>::size;
162+ case REFLECTIVITY_F32: return Field<REFLECTIVITY_F32>::size;
159163 case LASER_RETRO_F32: return Field<LASER_RETRO_F32>::size;
160164 case RING_ID_U16: return Field<RING_ID_U16>::size;
161165 case AZIMUTH_F32: return Field<AZIMUTH_F32>::size;
@@ -215,6 +219,7 @@ inline std::shared_ptr<IAnyArray> createArray(rgl_field_t type, Args&&... args)
215219 case ENTITY_ID_I32: return Subclass<Field<ENTITY_ID_I32>::type>::create (std::forward<Args>(args)...);
216220 case INTENSITY_F32: return Subclass<Field<INTENSITY_F32>::type>::create (std::forward<Args>(args)...);
217221 case INTENSITY_U8: return Subclass<Field<INTENSITY_U8>::type>::create (std::forward<Args>(args)...);
222+ case REFLECTIVITY_F32: return Subclass<Field<REFLECTIVITY_F32>::type>::create (std::forward<Args>(args)...);
218223 case LASER_RETRO_F32: return Subclass<Field<LASER_RETRO_F32>::type>::create (std::forward<Args>(args)...);
219224 case RING_ID_U16: return Subclass<Field<RING_ID_U16>::type>::create (std::forward<Args>(args)...);
220225 case AZIMUTH_F32: return Subclass<Field<AZIMUTH_F32>::type>::create (std::forward<Args>(args)...);
@@ -251,6 +256,7 @@ inline std::string toString(rgl_field_t type)
251256 case ENTITY_ID_I32: return " ENTITY_ID_I32" ;
252257 case INTENSITY_F32: return " INTENSITY_F32" ;
253258 case INTENSITY_U8: return " INTENSITY_U8" ;
259+ case REFLECTIVITY_F32: return " REFLECTIVITY_F32" ;
254260 case LASER_RETRO_F32: return " LASER_RETRO_F32" ;
255261 case RING_ID_U16: return " RING_ID_U16" ;
256262 case AZIMUTH_F32: return " AZIMUTH_F32" ;
@@ -291,6 +297,7 @@ inline std::vector<uint8_t> toRos2Fields(rgl_field_t type)
291297 case ENTITY_ID_I32: return {sensor_msgs::msg::PointField::INT32};
292298 case INTENSITY_F32: return {sensor_msgs::msg::PointField::FLOAT32};
293299 case INTENSITY_U8: return {sensor_msgs::msg::PointField::UINT8};
300+ case REFLECTIVITY_F32: return {sensor_msgs::msg::PointField::FLOAT32};
294301 case LASER_RETRO_F32: return {sensor_msgs::msg::PointField::FLOAT32};
295302 case RING_ID_U16: return {sensor_msgs::msg::PointField::UINT16};
296303 case AZIMUTH_F32: return {sensor_msgs::msg::PointField::FLOAT32};
@@ -342,6 +349,7 @@ inline std::vector<std::string> toRos2Names(rgl_field_t type)
342349 case INTENSITY_F32:
343350 case INTENSITY_U8:
344351 return {" intensity" };
352+ case REFLECTIVITY_F32: return {" reflectivity" };
345353 case LASER_RETRO_F32: return {" laser_retro" };
346354 case RING_ID_U16: return {" channel" };
347355 case AZIMUTH_F32: return {" azimuth" };
0 commit comments