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.