Factory object for creating point cloud objects. More...
#include <cvb/point_cloud_factory.hpp>
Static Public Member Functions | |
template<class T> | |
static std::shared_ptr< T > | Load (const String &fileName, PointCloudFlags flags) |
Loads a 3D point, polygon or mesh file (typed). | |
static PointCloudPtr | Load (const String &fileName, PointCloudFlags flags) |
Loads a 3D point, polygon or mesh file. | |
static PointCloudPtr | Create (const ImagePlane &rangeMap, const Calibrator3D &calibrator, PointCloudFlags flags) |
Creates a new Cartesian 3D point cloud from the given 2.5D range map image. | |
template<class T> | |
static std::shared_ptr< T > | Create (const ImagePlane &rangeMap, const Calibrator3D &calibrator, PointCloudFlags flags) |
Creates a new Cartesian 3D point cloud from the given 2.5D range map image (typed). | |
static PointCloudPtr | CreateWithSettings (const ImagePlane &rangeMap, const Calibrator3D &calibrator, PointCloudFlags flags, const SensorSettings &settings, double encoderStep) |
Creates a new Cartesian 3D point cloud from the given 2.5D range map image with modified camera settings. | |
template<class T> | |
static std::shared_ptr< T > | CreateWithSettings (const ImagePlane &rangeMap, const Calibrator3D &calibrator, PointCloudFlags flags, const SensorSettings &settings, double encoderStep) |
Creates a new Cartesian 3D point cloud from the given 2.5D range map image with modified camera settings (typed). | |
static SparsePointCloudPtr | CreateSparse (std::size_t numPoints, PointCloudFlags flags) |
Creates a new sparse Cartesian 3D point cloud. | |
static SparsePointCloudPtr | CreateSparse (const std::vector< void * > &planeBasePtrs, int numPlanes, Cvb::DataType dataType, std::size_t numPoints, const std::vector< std::intptr_t > &planeIncs) |
Creates a point cloud from the given memory without copying the data. | |
static DensePointCloudPtr | CreateDense (Size2D< int > size, PointCloudFlags flags) |
Creates a new dense Cartesian 3D point cloud. | |
static DensePointCloudPtr | CreateDense (const Cvb::ImagePlane &rangeMap, Factors3D factors, PointCloudFlags flags) |
Creates a new Cartesian 3D point cloud from the given 2.5D range map image. | |
Factory object for creating point cloud objects.
|
inlinestatic |
Creates a new Cartesian 3D point cloud from the given 2.5D range map image.
Depending on the calibration method the point cloud resulting from the untyped function PointCloudFactory::Create is a DensePointCloud or a SparsePointCloud. Note, that if this output point cloud is dense, the confidence layer is always available. Background range map pixels are set non-confident. In case of a sparse point cloud, points representing background values and also the confidence layer are removed (except the user explicitly wants to keep the confidence layer which can be requested via the point cloud flags).
Only range maps with floating point and unsigned integer DataType values are supported. For unsigned integer data types, the following DataType::BytesPerPixel values are supported: 1, 2 and 4. Note, that only linear access is supported (check with function ImagePlane::TryLinearAccess).
[in] | rangeMap | Handle of 2.5D image plane. |
[in] | calibrator | Calibration object to apply. |
[in] | flags | Flags specifying the kind of point cloud to be created. |
Any | exception derived from std::exception including CvbException. |
|
inlinestatic |
Creates a new Cartesian 3D point cloud from the given 2.5D range map image (typed).
The point cloud will automatically be converted to the given type.
Depending on the calibration method the point cloud resulting from the untyped function PointCloudFactory::Create is a DensePointCloud or a SparsePointCloud. Note, that if this output point cloud is dense, the confidence layer is always available. Background range map pixels are set non-confident. In case of a sparse point cloud, points representing background values and also the confidence layer are removed (except the user explicitly wants to keep the confidence layer which can be requested via the point cloud flags).
Only range maps with floating point and unsigned integer DataType values are supported. For unsigned integer data types, the following DataType::BytesPerPixel values are supported: 1, 2 and 4. Note, that only linear access is supported (check with function ImagePlane::TryLinearAccess).
[in] | rangeMap | Handle of 2.5D image plane. |
[in] | calibrator | Calibration object to apply. |
[in] | flags | Flags specifying the kind of point cloud to be created. |
Any | exception derived from std::exception including CvbException. |
|
inlinestatic |
Creates a new Cartesian 3D point cloud from the given 2.5D range map image.
Only range maps with floating point and unsigned integer DataType values are supported. For unsigned integer data types, the following DataType::BytesPerPixel values are supported: 1, 2 and 4. Note, that only linear access is supported (check with function ImagePlane::TryLinearAccess).
[in] | rangeMap | 2.5D image plane. |
[in] | factors | Factors to apply. |
[in] | flags | Specifying the kind of point cloud to be created. |
Any | exception derived from std::exception including CvbException. |
|
inlinestatic |
Creates a new dense Cartesian 3D point cloud.
The resulting point cloud will always have a contiguous point array. Creating the point cloud with with PointCloudFlags::XYZConfidence will provide interleaved XYZConfidence (PointCloudLayout will be Linear), whereas creating it with PointCloudFlags::WithConfidence, only XYZ will be interleaved but not the confidence plane (PointCloudLayout will be Interleaved).
[in] | size | Number of Cartesian X, Y, Z(, W) points on the x/y-component of the lattice. |
[in] | flags | Specifying the kind of point cloud to be created. |
Any | exception derived from std::exception including CvbException. |
|
inlinestatic |
Creates a point cloud from the given memory without copying the data.
[in] | planeBasePtrs | Base pointers of the X, Y, Z and optionally W component planes. |
[in] | numPlanes | Number of pPlaneBasePtrs. |
[in] | dataType | Data type of the pPlaneBasePtrs. |
[in] | numPoints | Number of elements in each plane. |
[in] | planeIncs | Offset to the next component in the respective plane in bytes. |
Any | exception derived from std::exception including CvbException. |
Currently only single precision (float) data type is supported. Also currently number of planes must be 3.
|
inlinestatic |
Creates a new sparse Cartesian 3D point cloud.
The resulting point cloud will always have a contiguous point array. Creating the point cloud with with PointCloudFlags::XYZConfidence will provide interleaved XYZConfidence (PointCloudLayout will be Linear), whereas creating it with PointCloudFlags::WithConfidence, only XYZ will be interleaved but not the confidence plane (PointCloudLayout will be Interleaved).
[in] | numPoints | Number of Cartesian X, Y, Z(, W) points. |
[in] | flags | Specifying the kind of point cloud to be created. |
Any | exception derived from std::exception including CvbException. |
|
inlinestatic |
Creates a new Cartesian 3D point cloud from the given 2.5D range map image with modified camera settings.
Creating a calibrated point cloud, the camera settings applied during the acquisition of the range map have to be known. Default settings are read from the calibrator loaded from a calibration file. If the actual settings differ from the default ones, the user has to set them and create a calibrated point cloud via function this function. You can get and check the default settings via LaserPlaneCalibrator3D::SensorSettings. The default encoder step can also be get from the calibrator via function LaserPlaneCalibrator3D::YFactor.
Depending on the calibration method the point cloud resulting from the untyped function PointCloudFactory::CreateWithSettings is a DensePointCloud or a SparsePointCloud. Note, that if this output point cloud is dense, the confidence layer is always available. Background range map pixels are set non-confident. In case of a sparse point cloud, points representing background values and also the confidence layer are removed (except the user explicitly wants to keep the confidence layer which can be requested via the point cloud flags).
Only range maps with floating point and unsigned integer DataType values are supported. For unsigned integer data types, the following DataType::BytesPerPixel values are supported: 1, 2 and 4. Note, that only linear access is supported (check with function ImagePlane::TryLinearAccess).
[in] | rangeMap | Handle of 2.5D image plane. |
[in] | calibrator | Calibration object to apply. |
[in] | flags | Flags specifying the kind of point cloud to be created. |
[in] | settings | Sensor settings applied during the acquisition of the range map. |
[in] | encoderStep | Encoder step. |
Any | exception derived from std::exception including CvbException. |
|
inlinestatic |
Creates a new Cartesian 3D point cloud from the given 2.5D range map image with modified camera settings (typed).
The point cloud will automatically be converted to the given type.
Creating a calibrated point cloud, the camera settings applied during the acquisition of the range map have to be known. Default settings are read from the calibrator loaded from a calibration file. If the actual settings differ from the default ones, the user has to set them and create a calibrated point cloud via function this function. You can get and check the default settings via LaserPlaneCalibrator3D::SensorSettings. The default encoder step can also be get from the calibrator via function LaserPlaneCalibrator3D::YFactor.
Depending on the calibration method the point cloud resulting from the untyped function PointCloudFactory::CreateWithSettings is a DensePointCloud or a SparsePointCloud. Note, that if this output point cloud is dense, the confidence layer is always available. Background range map pixels are set non-confident. In case of a sparse point cloud, points representing background values and also the confidence layer are removed (except the user explicitly wants to keep the confidence layer which can be requested via the point cloud flags).
Only range maps with floating point and unsigned integer DataType values are supported. For unsigned integer data types, the following DataType::BytesPerPixel values are supported: 1, 2 and 4. Note, that only linear access is supported (check with function ImagePlane::TryLinearAccess).
[in] | rangeMap | Handle of 2.5D image plane. |
[in] | calibrator | Calibration object to apply. |
[in] | flags | Flags specifying the kind of point cloud to be created. |
[in] | settings | Sensor settings applied during the acquisition of the range map. |
[in] | encoderStep | Encoder step. |
Any | exception derived from std::exception including CvbException. |
|
inlinestatic |
Loads a 3D point, polygon or mesh file (typed).
[in] | fileName | Full path to the file to load. |
[in] | flags | PointCloudFlags specifying the kind of point cloud to be created. |
Any | exception derived from std::exception including CvbException. |
|
inlinestatic |
Loads a 3D point, polygon or mesh file.
[in] | fileName | Complete path to the file to load. |
[in] | flags | Flags specifying the kind of point cloud to be created. |
Any | exception derived from std::exception including CvbException. |
We use cookies to improve your experience. By using this documentation, you agree to our use of cookies.