# Point Type

Header: [pcl/point\_types.h](https://github.com/PointCloudLibrary/pcl/blob/master/common/include/pcl/point_types.h)\
Implementation: [pcl/impl/point\_types.hpp](https://github.com/PointCloudLibrary/pcl/blob/master/common/include/pcl/impl/point_types.hpp)

### Intensity

* 4 bytes
* Members: float intensity
* intensity = 0.0f;

### Label

* 4 bytes
* Members: uint32\_t label

### RGB

* 4 bytes
* Members: uint32\_t rgba
* r = g = b = 0; a = 255;

### PointXY

* 8 bytes
* Members: float x, y

### **PointXYZ**

* 16 bytes (12 bytes used)
* Members: float x, y, z
* data\[3] = 1.0f;

### PointXYZI

* 32 bytes (12 bytes + 4 bytes used)
* Members: float x, y, z; float intensity
* data\[3] = 1.0f;
* intensity = 0.0f;

### PointXYZL

* 32 bytes (12 bytes + 4 bytes used)
* Members: float x, y, z; uint32\_t label
* data\[3] = 1.0f;
* label = 0;

### PointXYZRGB

* 32 bytes (12 bytes + 4 bytes used)
* Members: float x, y, z; uint32\_t rgba
* data\[3] = 1.0f;&#x20;
* r = g = b = 0;  &#x20;a = 255;

### PointXYZRGBA

* 32 bytes (12 bytes + 4 bytes used)&#x20;
* Members: float x, y, z; uint32\_t rgba
* data\[3] = 1.0f;&#x20;
* r = g = b = 0;  &#x20;a = 255;

### PointXYZRGBL

* 32 bytes (12 bytes + 8 bytes used)
* Members: float x, y, z; uint32\_t rgba, label
* data\[3] = 1.0f;&#x20;
* r = g = b = 0;  &#x20;a = 255;
* label = 0;

### Normal

* 32 bytes (12 bytes + 4 bytes used)
* Members: float normal\[3]; float curvature
* data\_n\[3] = 0.0f;&#x20;
* curvature = 0;

### PointWithScale

* 32 bytes (12 bytes + 16 bytes used)
* Members: float x, y, z; float scale, angle, response, octave
* data\[3] = 1.0f;
* scale = 1.0f;  &#x20;
* angle = -1.0f;  &#x20;
* response = 0.0f;  &#x20;
* octave = 0;

### PointNormal

* 48 bytes (12 bytes + 12 bytes + 4 bytes used)
* Members: float x, y, z; float normal\[3]; float curvature
* data\[3] = 1.0f;
* data\_n\[3] = 0.0f;&#x20;
* curvature = 0;

### PointXYZRGBNormal

* 48 bytes (12 bytes + 12 bytes + 8 bytes used)
* Members: float x, y, z; float normal\[3]; uint32\_t rgba, float curvature
* data\[3] = 1.0f;
* data\_n\[3] = 0.0f;&#x20;
* r = g = b = 0;  &#x20;a = 255;
* curvature = 0;

### PointSurfel

* 48 bytes (12 bytes + 12 bytes + 16 bytes used)
* Members: float x, y, z; float normal\[3]; uint32\_t rgba, float radius, confidence, curvature
* data\[3] = 1.0f;
* data\_n\[3] = 0.0f;&#x20;
* r = g = b = 0;  &#x20;a = 255;
* radius = confidence = curvature = 0.0f;
