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). More... | |
static PointCloudPtr | Load (const String &fileName, PointCloudFlags flags) |
Loads a 3D point, polygon or mesh file. More... | |
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). More... | |
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. More... | |
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. More... | |
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. More... | |
static SparsePointCloudPtr | CreateSparse (std::size_t numPoints, PointCloudFlags flags) |
Creates a new sparse Cartesian 3D point cloud. More... | |
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. More... | |
static DensePointCloudPtr | CreateDense (Size2D< int > size, PointCloudFlags flags) |
Creates a new dense Cartesian 3D point cloud. More... | |
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. More... | |
Factory object for creating point cloud objects.
|
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.
[in] | rangeMap | Handle of 2.5D image plane. |
[in] | calibrator | Calibration object to apply. |
[in] | flags | PointCloudFlags 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.
[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.
[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.
The point cloud will automatically be converted to the given type.
[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.
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 from the LaserPlaneCalibrator3D object. The default encoder step can also be get from the calibrator via function YFactor().
[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. |