The basic data type in PCL is a PointCloud.
A Point Cloud is a templated C++ class which contains the following data fields
- width (int) specifies the width of the point cloud dataset in the number of points.
- the total number of points in the cloud (equal with the number of elements in points) for unorganized datasets.
 
- the width (total number of points in a row) of an organized point cloud dataset.
 
 
- height (int) specifies the height of the point cloud dataset in the number of points.
- set to 1 for unorganized point clouds
 
- the height (total number of rows) of an organized point cloud dataaset
 
 
- points (std::vector<PointT>) contains the data array where all the points of type PointT are stored.
 
- is_dense (bool) specifies if all data in points is finite (true) or whether the XYZ values of certain points might contain Inf or NaN value (false)
 
- sensor_origin_ (Eigen::Vector4f) specifies the sensor acquisition pose (origin or translation). This member is usually optional, and not used by the majority of the algorithms in PCL.
 
- sensor_orientation_ (Eigen::Quanternionf) specifies the sensor acquisition pose (orientation). This member is usually optional, and not used by the majority of the algorithms in PCL.
 
Point Types
- PointXYZ- float x, y, z
 
- PointXYZI- float x, y, z, intensity
 
- PointXYZRGB- float x, y, z, rgb
 
- PointXYZRGBA- float x, y, z, uint32_t rgba
 
- Normal- float normal[3], curvature
 
- PointNormal- float x, y, z, normal[3], curvature
 
- Histogram- float historam[N]
 
- and many more.