eVision C++ API 26.10.0-beta.2.dev
Loading...
Searching...
No Matches
eVision::Easy3D::EPointCloudMerger Class Reference

Merges several EPointCloud of the same scene from different sensors after having performed a calibration. More...

#include <eVision/Easy3D/Easy3DMatch/EPointCloudMerger.h>

Collaboration diagram for eVision::Easy3D::EPointCloudMerger:

Public Member Functions

 EPointCloudMerger ()
 Constructs an EPointCloudMerger.
 EPointCloudMerger (const eVision::Easy3D::EPointCloudMerger &other)
 Constructs an EPointCloudMerger.
 EPointCloudMerger (bool enableDecimation, float mergedCloudResolution, const std::vector< eVision::Easy3D::E3DTransformMatrix > &transforms)
 Constructs an EPointCloudMerger.
virtual ~EPointCloudMerger () throw ()
eVision::Easy3D::EPointCloudMerger & operator= (const eVision::Easy3D::EPointCloudMerger &other)
 Assignment operator.
void Load (const std::string &path)
 Loads the EPointCloudMerger. The given ESerializer must have been created for reading.
void Load (eVision::ESerializer *serializer)
 Loads the EPointCloudMerger. The given ESerializer must have been created for reading.
void Save (const std::string &path)
 Saves the EPointCloudMerger. The given ESerializer must have been created for writing.
void Save (eVision::ESerializer *serializer)
 Saves the EPointCloudMerger. The given ESerializer must have been created for writing.
void SetMergedCloudResolution (float mergedCloudResolution)
 Sets/Gets the resolution of the merged point clouds.
float GetMergedCloudResolution () const
 Sets/Gets the resolution of the merged point clouds.
void SetTransformations (const std::vector< eVision::Easy3D::E3DTransformMatrix > &transforms)
 Sets/Gets the transformations to apply to all of the clouds to merge.
std::vector< eVision::Easy3D::E3DTransformMatrix > GetTransformations () const
 Sets/Gets the transformations to apply to all of the clouds to merge.
void SetEnableDecimation (bool enableDecimation)
 Sets/Gets whether the filtering of the merged cloud is enabled. If set to true, an EGridDecimator is used to perform a grid decimation so that a point present in several clouds is not duplicated. Defaults to true.
bool GetEnableDecimation () const
 Sets/Gets whether the filtering of the merged cloud is enabled. If set to true, an EGridDecimator is used to perform a grid decimation so that a point present in several clouds is not duplicated. Defaults to true.
float Calibrate (const std::vector< eVision::Easy3D::EPointCloud * > &calibrationClouds, float calibrationObjectSize, bool computeMergedCloudResolution)
 Calibrates the transformations to apply to the point clouds from clouds of the calibration object.
float Calibrate (const std::vector< eVision::Easy3D::EPointCloud * > &calibrationClouds, float calibrationObjectSize)
 Calibrates the transformations to apply to the point clouds from clouds of the calibration object.
float Calibrate (const std::vector< eVision::Easy3D::EPointCloud > &calibrationClouds, float calibrationObjectSize, bool computeMergedCloudResolution)
 Calibrates the transformations to apply to the point clouds from clouds of the calibration object.
float Calibrate (const std::vector< eVision::Easy3D::EPointCloud > &calibrationClouds, float calibrationObjectSize)
 Calibrates the transformations to apply to the point clouds from clouds of the calibration object.
void Merge (const std::vector< eVision::Easy3D::EPointCloud * > &clouds, eVision::Easy3D::EPointCloud &mergedCloud) const
 Merges the given clouds by applying the transformation matrices and optionally filter the result to remove duplicate points.
void Merge (const std::vector< eVision::Easy3D::EPointCloud > &clouds, eVision::Easy3D::EPointCloud &mergedCloud) const
 Merges the given clouds by applying the transformation matrices and optionally filter the result to remove duplicate points.
 EPointCloudMerger (CppWrapperInternal::InternalConstructor)

Public Attributes

CppWrapperInternal::WrappedClass wrappedClass_

Detailed Description

Merges several EPointCloud of the same scene from different sensors after having performed a calibration.

License(s): Easy3DMatch

Constructor & Destructor Documentation

◆ EPointCloudMerger() [1/4]

eVision::Easy3D::EPointCloudMerger::EPointCloudMerger ( )

Constructs an EPointCloudMerger.

◆ EPointCloudMerger() [2/4]

eVision::Easy3D::EPointCloudMerger::EPointCloudMerger ( const eVision::Easy3D::EPointCloudMerger & other)

Constructs an EPointCloudMerger.

Parameters
otherAnother EPointCloudMerger object to be copied in the new EPointCloudMerger object.

◆ EPointCloudMerger() [3/4]

eVision::Easy3D::EPointCloudMerger::EPointCloudMerger ( bool enableDecimation,
float mergedCloudResolution,
const std::vector< eVision::Easy3D::E3DTransformMatrix > & transforms )

Constructs an EPointCloudMerger.

Parameters
enableDecimationWhether we want to filter the merged cloud to remove point duplicates coming from different clouds by using an EGridDecimator or not. Set to true by default.
mergedCloudResolutionThe size of a cubic cell of EGridDecimator applied to the merged EPointCloud. Set to 1 by default.
transformsA vector of E3DTransformMatrix that will be applied to each EPointCloud before merging them together.

◆ ~EPointCloudMerger()

eVision::Easy3D::EPointCloudMerger::~EPointCloudMerger ( )
throw ( )
virtual

◆ EPointCloudMerger() [4/4]

eVision::Easy3D::EPointCloudMerger::EPointCloudMerger ( CppWrapperInternal::InternalConstructor )

Member Function Documentation

◆ Calibrate() [1/4]

float eVision::Easy3D::EPointCloudMerger::Calibrate ( const std::vector< eVision::Easy3D::EPointCloud * > & calibrationClouds,
float calibrationObjectSize )

Calibrates the transformations to apply to the point clouds from clouds of the calibration object.

Parameters
calibrationCloudsA vector of EPointCloud representing different points of view of the calibration object.
calibrationObjectSizeThe size of an edge of the calibration cube in the point clouds.

The transformations to apply and possibly the mergedCloudResolution can also be set by EPointCloudMerger::SetTransformations and EPointCloudMerger::SetMergedCloudResolution respectively.

The biggest face of the calibration cube should at least contain 2% of the points in each calibration cloud for the object to be detected.

◆ Calibrate() [2/4]

float eVision::Easy3D::EPointCloudMerger::Calibrate ( const std::vector< eVision::Easy3D::EPointCloud * > & calibrationClouds,
float calibrationObjectSize,
bool computeMergedCloudResolution )

Calibrates the transformations to apply to the point clouds from clouds of the calibration object.

Parameters
calibrationCloudsA vector of EPointCloud representing different points of view of the calibration object.
calibrationObjectSizeThe size of an edge of the calibration cube in the point clouds.
computeMergedCloudResolutionWhether to compute the resolution of the merged cloud from the given clouds or not.

If set to true, the resolution will be set to half the average distance between a point on the calibration object of the first cloud and its nearest neighbor.

Defaults to false.

The transformations to apply and possibly the mergedCloudResolution can also be set by EPointCloudMerger::SetTransformations and EPointCloudMerger::SetMergedCloudResolution respectively.

The biggest face of the calibration cube should at least contain 2% of the points in each calibration cloud for the object to be detected.

◆ Calibrate() [3/4]

float eVision::Easy3D::EPointCloudMerger::Calibrate ( const std::vector< eVision::Easy3D::EPointCloud > & calibrationClouds,
float calibrationObjectSize )

Calibrates the transformations to apply to the point clouds from clouds of the calibration object.

Parameters
calibrationCloudsA vector of EPointCloud representing different points of view of the calibration object.
calibrationObjectSizeThe size of an edge of the calibration cube in the point clouds.

The transformations to apply and possibly the mergedCloudResolution can also be set by EPointCloudMerger::SetTransformations and EPointCloudMerger::SetMergedCloudResolution respectively.

The biggest face of the calibration cube should at least contain 2% of the points in each calibration cloud for the object to be detected.

◆ Calibrate() [4/4]

float eVision::Easy3D::EPointCloudMerger::Calibrate ( const std::vector< eVision::Easy3D::EPointCloud > & calibrationClouds,
float calibrationObjectSize,
bool computeMergedCloudResolution )

Calibrates the transformations to apply to the point clouds from clouds of the calibration object.

Parameters
calibrationCloudsA vector of EPointCloud representing different points of view of the calibration object.
calibrationObjectSizeThe size of an edge of the calibration cube in the point clouds.
computeMergedCloudResolutionWhether to compute the resolution of the merged cloud from the given clouds or not.

If set to true, the resolution will be set to half the average distance between a point on the calibration object of the first cloud and its nearest neighbor.

Defaults to false.

The transformations to apply and possibly the mergedCloudResolution can also be set by EPointCloudMerger::SetTransformations and EPointCloudMerger::SetMergedCloudResolution respectively.

The biggest face of the calibration cube should at least contain 2% of the points in each calibration cloud for the object to be detected.

◆ GetEnableDecimation()

bool eVision::Easy3D::EPointCloudMerger::GetEnableDecimation ( ) const

Sets/Gets whether the filtering of the merged cloud is enabled. If set to true, an EGridDecimator is used to perform a grid decimation so that a point present in several clouds is not duplicated. Defaults to true.

◆ GetMergedCloudResolution()

float eVision::Easy3D::EPointCloudMerger::GetMergedCloudResolution ( ) const

Sets/Gets the resolution of the merged point clouds.

◆ GetTransformations()

std::vector< eVision::Easy3D::E3DTransformMatrix > eVision::Easy3D::EPointCloudMerger::GetTransformations ( ) const

Sets/Gets the transformations to apply to all of the clouds to merge.

The transformations to apply can also be produced by EPointCloudMerger::Calibrate.

◆ Load() [1/2]

void eVision::Easy3D::EPointCloudMerger::Load ( const std::string & path)

Loads the EPointCloudMerger. The given ESerializer must have been created for reading.

Parameters
pathThe file path.

◆ Load() [2/2]

void eVision::Easy3D::EPointCloudMerger::Load ( eVision::ESerializer * serializer)

Loads the EPointCloudMerger. The given ESerializer must have been created for reading.

Parameters
serializerThe serializer.

◆ Merge() [1/2]

void eVision::Easy3D::EPointCloudMerger::Merge ( const std::vector< eVision::Easy3D::EPointCloud * > & clouds,
eVision::Easy3D::EPointCloud & mergedCloud ) const

Merges the given clouds by applying the transformation matrices and optionally filter the result to remove duplicate points.

Parameters
cloudsA vector of EPointCloud representing different points of view of the object.
mergedCloudAn empty cloud that will be filled with the merging of the clouds.

The EPointCloudMerger must have been calibrated or the transformations to apply set, see EPointCloudMerger::Calibrate, EPointCloudMerger::SetTransformations or constructor.

◆ Merge() [2/2]

void eVision::Easy3D::EPointCloudMerger::Merge ( const std::vector< eVision::Easy3D::EPointCloud > & clouds,
eVision::Easy3D::EPointCloud & mergedCloud ) const

Merges the given clouds by applying the transformation matrices and optionally filter the result to remove duplicate points.

Parameters
cloudsA vector of EPointCloud representing different points of view of the object.
mergedCloudAn empty cloud that will be filled with the merging of the clouds.

The EPointCloudMerger must have been calibrated or the transformations to apply set, see EPointCloudMerger::Calibrate, EPointCloudMerger::SetTransformations or constructor.

Deprecated

Deprecated because using this method causes unnecessary copies. Use overloads with vector of pointers instead.

Deprecated in version 25.6. Scheduled to be removed in version 27.6.

◆ operator=()

eVision::Easy3D::EPointCloudMerger & eVision::Easy3D::EPointCloudMerger::operator= ( const eVision::Easy3D::EPointCloudMerger & other)

Assignment operator.

Parameters
otherThe EPointCloudMerger object that should be assigned.

◆ Save() [1/2]

void eVision::Easy3D::EPointCloudMerger::Save ( const std::string & path)

Saves the EPointCloudMerger. The given ESerializer must have been created for writing.

Parameters
pathThe file path.

◆ Save() [2/2]

void eVision::Easy3D::EPointCloudMerger::Save ( eVision::ESerializer * serializer)

Saves the EPointCloudMerger. The given ESerializer must have been created for writing.

Parameters
serializerThe ESerializer object that is written to.

◆ SetEnableDecimation()

void eVision::Easy3D::EPointCloudMerger::SetEnableDecimation ( bool enableDecimation)

Sets/Gets whether the filtering of the merged cloud is enabled. If set to true, an EGridDecimator is used to perform a grid decimation so that a point present in several clouds is not duplicated. Defaults to true.

Parameters
enableDecimationWhether to perform decimation on the merged cloud or not.

◆ SetMergedCloudResolution()

void eVision::Easy3D::EPointCloudMerger::SetMergedCloudResolution ( float mergedCloudResolution)

Sets/Gets the resolution of the merged point clouds.

Parameters
mergedCloudResolutionThe size of a cubic cell of EGridDecimator applied to the merged EPointCloud.

◆ SetTransformations()

void eVision::Easy3D::EPointCloudMerger::SetTransformations ( const std::vector< eVision::Easy3D::E3DTransformMatrix > & transforms)

Sets/Gets the transformations to apply to all of the clouds to merge.

Parameters
transformsA vector of E3DTransformMatrix that will be applied to each EPointCloud before merging them together.

The transformations to apply can also be produced by EPointCloudMerger::Calibrate.

Member Data Documentation

◆ wrappedClass_

CppWrapperInternal::WrappedClass eVision::Easy3D::EPointCloudMerger::wrappedClass_