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

Represents a 3D comparison context. More...

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

Collaboration diagram for eVision::Easy3D::E3DComparer:

Public Member Functions

 E3DComparer ()
 Constructs a 3D matching context.
 E3DComparer (const eVision::Easy3D::E3DComparer &other)
 Constructs a 3D matching context.
virtual ~E3DComparer () throw ()
eVision::Easy3D::E3DComparer & operator= (const eVision::Easy3D::E3DComparer &other)
 Assignment operator.
void Load (const std::string &path)
 Loads the E3DComparer. The given ESerializer must have been created for reading.
void Load (eVision::ESerializer *serializer)
 Loads the E3DComparer. The given ESerializer must have been created for reading.
void Save (const std::string &path)
 Saves the E3DComparer. The given ESerializer must have been created for writing.
void Save (eVision::ESerializer *serializer)
 Saves the E3DComparer. The given ESerializer must have been created for writing.
void SetMeshReference (const eVision::Easy3D::EMesh &mesh)
 Sets the 3D reference model. See also E3DComparer::SetPointCloudReference.
void SetPointCloudReference (const eVision::Easy3D::EPointCloud &pointcloud)
 Sets the 3D reference model. See also E3DComparer::SetMeshReference.
void Compare (const eVision::Easy3D::EPointCloud &scan)
 Compares the reference patterns against a scan.
void GetComparisonPointCloud (eVision::Easy3D::EPointCloud &cloudOut, bool storeDistances, bool storeColors, bool fullModel) const
 Gets the EPointCloud that is used for the comparison.
void GetComparisonPointCloud (eVision::Easy3D::EPointCloud &cloudOut, bool storeDistances, bool storeColors) const
 Gets the EPointCloud that is used for the comparison.
void GetComparisonPointCloud (eVision::Easy3D::EPointCloud &cloudOut, bool storeDistances) const
 Gets the EPointCloud that is used for the comparison.
void GetComparisonPointCloud (eVision::Easy3D::EPointCloud &cloudOut) const
 Gets the EPointCloud that is used for the comparison.
void SetROI (const std::vector< eVision::Easy3D::E3DBox > &roi)
 Sets/Gets a vector of E3DBox that defines the regions that should be compared. By default, the entire reference is considered.
std::vector< eVision::Easy3D::E3DBox > GetROI () const
 Sets/Gets a vector of E3DBox that defines the regions that should be compared. By default, the entire reference is considered.
void SetDontCare (const std::vector< eVision::Easy3D::E3DBox > &dontCare)
 Sets/Gets a vector of E3DBox that defines the regions that should not be compared. By default, no point of the reference is ignored.
std::vector< eVision::Easy3D::E3DBox > GetDontCare () const
 Sets/Gets a vector of E3DBox that defines the regions that should not be compared. By default, no point of the reference is ignored.
void SetNoExtraMaterial (const std::vector< eVision::Easy3D::E3DBox > &noExtraMaterial)
 Sets/Gets a vector of E3DBox that defines the regions where there should not be points in the scan far from the reference. By default, the points far from the reference are not considered as anomalies (if there also are some other points closer to the reference).
std::vector< eVision::Easy3D::E3DBox > GetNoExtraMaterial () const
 Sets/Gets a vector of E3DBox that defines the regions where there should not be points in the scan far from the reference. By default, the points far from the reference are not considered as anomalies (if there also are some other points closer to the reference).
void SetEnableAutomaticDecimation (bool state)
 If True, the given reference is automatically decimated with a resolution depending on the distance threshold to speed-up processing. If False, all the points of the given reference are used to compute the distance.
bool GetEnableAutomaticDecimation () const
 If True, the given reference is automatically decimated with a resolution depending on the distance threshold to speed-up processing. If False, all the points of the given reference are used to compute the distance.
void SetAutomaticCropFactor (float factor)
 Sets/Gets the automatic cropping factor. The factor multiplies the anomaly distance threshold (E3DComparer::SetAnomalyThresholds) to obtain the margin for the cropping. If the value is smaller than 0, then no crop is performed before computing the distance.
float GetAutomaticCropFactor () const
 Sets/Gets the automatic cropping factor. The factor multiplies the anomaly distance threshold (E3DComparer::SetAnomalyThresholds) to obtain the margin for the cropping. If the value is smaller than 0, then no crop is performed before computing the distance.
void PrepareReference ()
 Prepare the reference internal structures. By default, this is done on the first call to E3DComparer::Compare.
void SetAnomalyThresholds (eVision::Easy3D::EAnomalyThresholds thesholds)
 Gets/Sets the thresholds related to the anomalies detection.
eVision::Easy3D::EAnomalyThresholds GetAnomalyThresholds () const
 Gets/Sets the thresholds related to the anomalies detection.
void ResetAnomalyThresholds ()
 Sets the anomaly thresholds to their default values (computed automatically from the model size).
void SetAnomalyThresholds (float distanceThreshold, float areaThreshold)
 Sets the thresholds related to the anomalies detection.
void GetAnomalyThresholds (float &distanceThreshold, float &areaThreshold) const
 Gets the thresholds related to the anomalies detection.
void SetAnomalyHysteresis (eVision::Easy3D::EAnomalyThresholds hysteresisThesholds)
 Gets/Sets the hysteresis related to the anomalies detection.
eVision::Easy3D::EAnomalyThresholds GetAnomalyHysteresis () const
 Gets/Sets the hysteresis related to the anomalies detection.
void SetAnomalyHysteresis (float distanceHysteresisThreshold, float areaHysteresisThreshold)
 Sets the hysteresis related to the anomalies detection.
void GetAnomalyHysteresis (float &distanceHysteresisThreshold, float &areaHysteresisThreshold) const
 Gets the hysteresis related to the anomalies detection.
std::vector< eVision::Easy3D::E3DAnomaly > ComputesAnomalies () const
 Computes the anomalies and returns them as a vector of E3DAnomaly.
void SetComparisonDistanceMode (eVision::Easy3D::EComparisonDistanceMode mode)
 Sets/Gets the distance mode for the 3D comparison. All values of the enum are not allowed for E3DComparer.
eVision::Easy3D::EComparisonDistanceMode GetComparisonDistanceMode () const
 Sets/Gets the distance mode for the 3D comparison. All values of the enum are not allowed for E3DComparer.
void SetEdgeCroppingParameters (eVision::Easy3D::EEdgeCroppingParameters parameters)
 Gets/Sets the parameters driving the edge cropping.
eVision::Easy3D::EEdgeCroppingParameters GetEdgeCroppingParameters () const
 Gets/Sets the parameters driving the edge cropping.
void SetEdgeCroppingParameters (uint32_t numberNeighbors, float curvatureThreshold)
 Sets the parameters driving the edge cropping.
void GetEdgeCroppingParameters (uint32_t &numberNeighbors, float &curvatureThreshold) const
 Gets the parameters driving the edge cropping.
void SetEnableAutomaticEdgeCropping (bool state)
 If True, edges in the reference will be cropped automatically. This is useful to avoid false positives that could occur near the edges of the object, in particular when using normals (see E3DComparer::SetComparisonDistanceMode and EComparisonDistanceMode). To modify the parameters of the cropping, see E3DComparer::SetEdgeCroppingParameters.
bool GetEnableAutomaticEdgeCropping () const
 If True, edges in the reference will be cropped automatically. This is useful to avoid false positives that could occur near the edges of the object, in particular when using normals (see E3DComparer::SetComparisonDistanceMode and EComparisonDistanceMode). To modify the parameters of the cropping, see E3DComparer::SetEdgeCroppingParameters.
 E3DComparer (CppWrapperInternal::InternalConstructor)

Public Attributes

CppWrapperInternal::WrappedClass wrappedClass_

Detailed Description

Represents a 3D comparison context.

License(s): Easy3DMatch

Constructor & Destructor Documentation

◆ E3DComparer() [1/3]

eVision::Easy3D::E3DComparer::E3DComparer ( )

Constructs a 3D matching context.

◆ E3DComparer() [2/3]

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

Constructs a 3D matching context.

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

◆ ~E3DComparer()

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

◆ E3DComparer() [3/3]

eVision::Easy3D::E3DComparer::E3DComparer ( CppWrapperInternal::InternalConstructor )

Member Function Documentation

◆ Compare()

void eVision::Easy3D::E3DComparer::Compare ( const eVision::Easy3D::EPointCloud & scan)

Compares the reference patterns against a scan.

Parameters
scanAn EPointCloud that represents the scan to compare to the reference.

◆ ComputesAnomalies()

std::vector< eVision::Easy3D::E3DAnomaly > eVision::Easy3D::E3DComparer::ComputesAnomalies ( ) const

Computes the anomalies and returns them as a vector of E3DAnomaly.

◆ GetAnomalyHysteresis() [1/2]

eVision::Easy3D::EAnomalyThresholds eVision::Easy3D::E3DComparer::GetAnomalyHysteresis ( ) const

Gets/Sets the hysteresis related to the anomalies detection.

To be considered as an anomaly, a cluster of points with a distance greater than distanceThreshold must have an area greater than areaThreshold. See E3DComparer::SetAnomalyThresholds. In addition, an hysteresis can be specified, such that the cluster will also have to contain a subset of points whose distance is greater than distanceHysteresisThreshold * distanceThreshold and area greater than areaHysteresisThreshold * areaThreshold. See also E3DComparer::SetAnomalyThresholds.

◆ GetAnomalyHysteresis() [2/2]

void eVision::Easy3D::E3DComparer::GetAnomalyHysteresis ( float & distanceHysteresisThreshold,
float & areaHysteresisThreshold ) const

Gets the hysteresis related to the anomalies detection.

Parameters
distanceHysteresisThresholdThe distance hysteresis threshold. Must be greater than or equal to 1. Default: 1
areaHysteresisThresholdThe area hysteresis threshold. Must be smaller than or equal to 1. Default: 1.

To be considered as an anomaly, a cluster of points with a distance greater than distanceThreshold must have an area greater than areaThreshold. See E3DComparer::SetAnomalyThresholds. In addition, an hysteresis can be specified, such that the cluster will also have to contain a subset of points whose distance is greater than distanceHysteresisThreshold * distanceThreshold and area greater than areaHysteresisThreshold * areaThreshold. See also E3DComparer::SetAnomalyThresholds.

Deprecated

Use E3DComparer::SetAnomalyHysteresis instead.

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

◆ GetAnomalyThresholds() [1/2]

eVision::Easy3D::EAnomalyThresholds eVision::Easy3D::E3DComparer::GetAnomalyThresholds ( ) const

Gets/Sets the thresholds related to the anomalies detection.

To be considered as an anomaly, a cluster of points with a distance greater than distanceThreshold must have an area greater than areaThreshold. See also E3DComparer::SetAnomalyHysteresis to more advanced anomaly detection.

If the anomaly thresholds aren't set, they will be computed automatically from the given reference once E3DComparer::PrepareReference is called. Trying to get the anomaly thresholds before they are set or automatically computed will throw an exception.

◆ GetAnomalyThresholds() [2/2]

void eVision::Easy3D::E3DComparer::GetAnomalyThresholds ( float & distanceThreshold,
float & areaThreshold ) const

Gets the thresholds related to the anomalies detection.

Parameters
distanceThresholdThe distance threshold.
areaThresholdThe area threshold.

To be considered as an anomaly, a cluster of points with a distance greater than distanceThreshold must have an area greater than areaThreshold. See also E3DComparer::SetAnomalyHysteresis to more advanced anomaly detection.

Trying to get the anomaly thresholds before they are set or automatically computed will throw an exception.

Deprecated

Use E3DComparer::SetAnomalyThresholds instead.

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

◆ GetAutomaticCropFactor()

float eVision::Easy3D::E3DComparer::GetAutomaticCropFactor ( ) const

Sets/Gets the automatic cropping factor. The factor multiplies the anomaly distance threshold (E3DComparer::SetAnomalyThresholds) to obtain the margin for the cropping. If the value is smaller than 0, then no crop is performed before computing the distance.

Default: 1

Note that if the cropping margin is too small, the E3DPoint of the anomalies will not be visible (with the function E3DComparer::GetComparisonPointCloud and the parameter pointFromReference = False).

◆ GetComparisonDistanceMode()

eVision::Easy3D::EComparisonDistanceMode eVision::Easy3D::E3DComparer::GetComparisonDistanceMode ( ) const

Sets/Gets the distance mode for the 3D comparison. All values of the enum are not allowed for E3DComparer.

Default: EComparisonDistanceMode::EComparisonDistanceMode_Euclidean.

◆ GetComparisonPointCloud() [1/4]

void eVision::Easy3D::E3DComparer::GetComparisonPointCloud ( eVision::Easy3D::EPointCloud & cloudOut) const

Gets the EPointCloud that is used for the comparison.

Parameters
cloudOutWhere to store the EPointCloud.

◆ GetComparisonPointCloud() [2/4]

void eVision::Easy3D::E3DComparer::GetComparisonPointCloud ( eVision::Easy3D::EPointCloud & cloudOut,
bool storeDistances ) const

Gets the EPointCloud that is used for the comparison.

Parameters
cloudOutWhere to store the EPointCloud.
storeDistancesIf set to True, the distances computed will be stored in the EPointCloud. The function EPointCloud::GetAttributeBuffer can be used with E3DAttribute::E3DAttribute_Distance to retrieve the distances.

Default: True

◆ GetComparisonPointCloud() [3/4]

void eVision::Easy3D::E3DComparer::GetComparisonPointCloud ( eVision::Easy3D::EPointCloud & cloudOut,
bool storeDistances,
bool storeColors ) const

Gets the EPointCloud that is used for the comparison.

Parameters
cloudOutWhere to store the EPointCloud.
storeDistancesIf set to True, the distances computed will be stored in the EPointCloud. The function EPointCloud::GetAttributeBuffer can be used with E3DAttribute::E3DAttribute_Distance to retrieve the distances.

Default: True

Parameters
storeColorsIf set to True, the colors related to the distances computed will be stored in the EPointCloud. The functions EPointCloud::GetAttributeBuffer can be used with E3DAttribute::E3DAttribute_Color to retrieve the distances.

The colors can also be used in the E3DViewer.

Default: True

◆ GetComparisonPointCloud() [4/4]

void eVision::Easy3D::E3DComparer::GetComparisonPointCloud ( eVision::Easy3D::EPointCloud & cloudOut,
bool storeDistances,
bool storeColors,
bool fullModel ) const

Gets the EPointCloud that is used for the comparison.

Parameters
cloudOutWhere to store the EPointCloud.
storeDistancesIf set to True, the distances computed will be stored in the EPointCloud. The function EPointCloud::GetAttributeBuffer can be used with E3DAttribute::E3DAttribute_Distance to retrieve the distances.

Default: True

Parameters
storeColorsIf set to True, the colors related to the distances computed will be stored in the EPointCloud. The functions EPointCloud::GetAttributeBuffer can be used with E3DAttribute::E3DAttribute_Color to retrieve the distances.

The colors can also be used in the E3DViewer.

Default: True

Parameters
fullModelIf set to True, the points that are not inside the ROI (see E3DComparer::SetROI) will also be in the EPointCloud.

Default: False

◆ GetDontCare()

std::vector< eVision::Easy3D::E3DBox > eVision::Easy3D::E3DComparer::GetDontCare ( ) const

Sets/Gets a vector of E3DBox that defines the regions that should not be compared. By default, no point of the reference is ignored.

◆ GetEdgeCroppingParameters() [1/2]

eVision::Easy3D::EEdgeCroppingParameters eVision::Easy3D::E3DComparer::GetEdgeCroppingParameters ( ) const

Gets/Sets the parameters driving the edge cropping.

Edge cropping is disabled by default, enable it using E3DComparer::SetEnableAutomaticEdgeCropping.

◆ GetEdgeCroppingParameters() [2/2]

void eVision::Easy3D::E3DComparer::GetEdgeCroppingParameters ( uint32_t & numberNeighbors,
float & curvatureThreshold ) const

Gets the parameters driving the edge cropping.

Parameters
numberNeighborsThe number of neighbors that we will use to compute the local curvature. The bigger this parameter, the thicker the cropping will be. This number must be bigger than 10. Default: 100
curvatureThresholdThe curvature value above which a point is cropped (must be between 0 and 1). Default: 0.15

Edge cropping is disabled by default, enable it using E3DComparer::SetEnableAutomaticEdgeCropping.

Deprecated

Use E3DComparer::SetEdgeCroppingParameters instead.

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

◆ GetEnableAutomaticDecimation()

bool eVision::Easy3D::E3DComparer::GetEnableAutomaticDecimation ( ) const

If True, the given reference is automatically decimated with a resolution depending on the distance threshold to speed-up processing. If False, all the points of the given reference are used to compute the distance.

Default: True

◆ GetEnableAutomaticEdgeCropping()

bool eVision::Easy3D::E3DComparer::GetEnableAutomaticEdgeCropping ( ) const

If True, edges in the reference will be cropped automatically. This is useful to avoid false positives that could occur near the edges of the object, in particular when using normals (see E3DComparer::SetComparisonDistanceMode and EComparisonDistanceMode). To modify the parameters of the cropping, see E3DComparer::SetEdgeCroppingParameters.

Default: False

◆ GetNoExtraMaterial()

std::vector< eVision::Easy3D::E3DBox > eVision::Easy3D::E3DComparer::GetNoExtraMaterial ( ) const

Sets/Gets a vector of E3DBox that defines the regions where there should not be points in the scan far from the reference. By default, the points far from the reference are not considered as anomalies (if there also are some other points closer to the reference).

◆ GetROI()

std::vector< eVision::Easy3D::E3DBox > eVision::Easy3D::E3DComparer::GetROI ( ) const

Sets/Gets a vector of E3DBox that defines the regions that should be compared. By default, the entire reference is considered.

◆ Load() [1/2]

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

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

Parameters
pathThe file path.

◆ Load() [2/2]

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

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

Parameters
serializerThe serializer.

◆ operator=()

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

Assignment operator.

Parameters
otherThe E3DComparer object that should be copied.

◆ PrepareReference()

void eVision::Easy3D::E3DComparer::PrepareReference ( )

Prepare the reference internal structures. By default, this is done on the first call to E3DComparer::Compare.

◆ ResetAnomalyThresholds()

void eVision::Easy3D::E3DComparer::ResetAnomalyThresholds ( )

Sets the anomaly thresholds to their default values (computed automatically from the model size).

◆ Save() [1/2]

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

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

Parameters
pathThe file path.

◆ Save() [2/2]

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

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

Parameters
serializerThe serializer.

◆ SetAnomalyHysteresis() [1/2]

void eVision::Easy3D::E3DComparer::SetAnomalyHysteresis ( eVision::Easy3D::EAnomalyThresholds hysteresisThesholds)

Gets/Sets the hysteresis related to the anomalies detection.

Parameters
hysteresisThesholdsThe distance and area hysteresis thresholds. Distance threshold must be greater than or equal to 1 and defaults to 1. Area threshold must be smaller than or equal to 1 and defaults to 1.

To be considered as an anomaly, a cluster of points with a distance greater than distanceThreshold must have an area greater than areaThreshold. See E3DComparer::SetAnomalyThresholds. In addition, an hysteresis can be specified, such that the cluster will also have to contain a subset of points whose distance is greater than distanceHysteresisThreshold * distanceThreshold and area greater than areaHysteresisThreshold * areaThreshold. See also E3DComparer::SetAnomalyThresholds.

◆ SetAnomalyHysteresis() [2/2]

void eVision::Easy3D::E3DComparer::SetAnomalyHysteresis ( float distanceHysteresisThreshold,
float areaHysteresisThreshold )

Sets the hysteresis related to the anomalies detection.

Parameters
distanceHysteresisThresholdThe distance hysteresis threshold. Must be greater than or equal to 1. Default: 1
areaHysteresisThresholdThe area hysteresis threshold. Must be smaller than or equal to 1. Default: 1.

To be considered as an anomaly, a cluster of points with a distance greater than distanceThreshold must have an area greater than areaThreshold. See E3DComparer::SetAnomalyThresholds. In addition, an hysteresis can be specified, such that the cluster will also have to contain a subset of points whose distance is greater than distanceHysteresisThreshold * distanceThreshold and area greater than areaHysteresisThreshold * areaThreshold. See also E3DComparer::SetAnomalyThresholds.

Deprecated

Use E3DComparer::SetAnomalyHysteresis instead.

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

◆ SetAnomalyThresholds() [1/2]

void eVision::Easy3D::E3DComparer::SetAnomalyThresholds ( eVision::Easy3D::EAnomalyThresholds thesholds)

Gets/Sets the thresholds related to the anomalies detection.

Parameters
thesholdsThe distance and area thresholds. Both must be > 0.

To be considered as an anomaly, a cluster of points with a distance greater than distanceThreshold must have an area greater than areaThreshold. See also E3DComparer::SetAnomalyHysteresis to more advanced anomaly detection.

If the anomaly thresholds aren't set, they will be computed automatically from the given reference once E3DComparer::PrepareReference is called. Trying to get the anomaly thresholds before they are set or automatically computed will throw an exception.

◆ SetAnomalyThresholds() [2/2]

void eVision::Easy3D::E3DComparer::SetAnomalyThresholds ( float distanceThreshold,
float areaThreshold )

Sets the thresholds related to the anomalies detection.

Parameters
distanceThresholdThe distance threshold. Must be > 0.
areaThresholdThe area threshold. Must be > 0.

To be considered as an anomaly, a cluster of points with a distance greater than distanceThreshold must have an area greater than areaThreshold. See also E3DComparer::SetAnomalyHysteresis to more advanced anomaly detection.

If the anomaly thresholds aren't set, they will be computed automatically from the given reference once E3DComparer::PrepareReference is called.

Deprecated

Use E3DComparer::SetAnomalyThresholds instead.

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

◆ SetAutomaticCropFactor()

void eVision::Easy3D::E3DComparer::SetAutomaticCropFactor ( float factor)

Sets/Gets the automatic cropping factor. The factor multiplies the anomaly distance threshold (E3DComparer::SetAnomalyThresholds) to obtain the margin for the cropping. If the value is smaller than 0, then no crop is performed before computing the distance.

Default: 1

Note that if the cropping margin is too small, the E3DPoint of the anomalies will not be visible (with the function E3DComparer::GetComparisonPointCloud and the parameter pointFromReference = False).

◆ SetComparisonDistanceMode()

void eVision::Easy3D::E3DComparer::SetComparisonDistanceMode ( eVision::Easy3D::EComparisonDistanceMode mode)

Sets/Gets the distance mode for the 3D comparison. All values of the enum are not allowed for E3DComparer.

Default: EComparisonDistanceMode::EComparisonDistanceMode_Euclidean.

◆ SetDontCare()

void eVision::Easy3D::E3DComparer::SetDontCare ( const std::vector< eVision::Easy3D::E3DBox > & dontCare)

Sets/Gets a vector of E3DBox that defines the regions that should not be compared. By default, no point of the reference is ignored.

◆ SetEdgeCroppingParameters() [1/2]

void eVision::Easy3D::E3DComparer::SetEdgeCroppingParameters ( eVision::Easy3D::EEdgeCroppingParameters parameters)

Gets/Sets the parameters driving the edge cropping.

Parameters
parametersThe number of neighbors that we will use to compute the local curvature and a threshold on that curvature. The bigger the number of neighbors, the thicker the cropping will be. This number must be bigger than 10 and defaults to 100. A point whose curvature is above the threshold is cropped. The threshold must be between 0 and 1 and defaults to 0.15

Edge cropping is disabled by default, enable it using E3DComparer::SetEnableAutomaticEdgeCropping.

◆ SetEdgeCroppingParameters() [2/2]

void eVision::Easy3D::E3DComparer::SetEdgeCroppingParameters ( uint32_t numberNeighbors,
float curvatureThreshold )

Sets the parameters driving the edge cropping.

Parameters
numberNeighborsThe number of neighbors that we will use to compute the local curvature. The bigger this parameter, the thicker the cropping will be. This number must be bigger than 10. Default: 100
curvatureThresholdThe curvature value above which a point is cropped (must be between 0 and 1). Default: 0.15

Edge cropping is disabled by default, enable it using E3DComparer::SetEnableAutomaticEdgeCropping.

Deprecated

Use E3DComparer::SetEdgeCroppingParameters instead.

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

◆ SetEnableAutomaticDecimation()

void eVision::Easy3D::E3DComparer::SetEnableAutomaticDecimation ( bool state)

If True, the given reference is automatically decimated with a resolution depending on the distance threshold to speed-up processing. If False, all the points of the given reference are used to compute the distance.

Default: True

◆ SetEnableAutomaticEdgeCropping()

void eVision::Easy3D::E3DComparer::SetEnableAutomaticEdgeCropping ( bool state)

If True, edges in the reference will be cropped automatically. This is useful to avoid false positives that could occur near the edges of the object, in particular when using normals (see E3DComparer::SetComparisonDistanceMode and EComparisonDistanceMode). To modify the parameters of the cropping, see E3DComparer::SetEdgeCroppingParameters.

Default: False

◆ SetMeshReference()

void eVision::Easy3D::E3DComparer::SetMeshReference ( const eVision::Easy3D::EMesh & mesh)

Sets the 3D reference model. See also E3DComparer::SetPointCloudReference.

Parameters
meshAn EMesh that represents the 3D reference model.

◆ SetNoExtraMaterial()

void eVision::Easy3D::E3DComparer::SetNoExtraMaterial ( const std::vector< eVision::Easy3D::E3DBox > & noExtraMaterial)

Sets/Gets a vector of E3DBox that defines the regions where there should not be points in the scan far from the reference. By default, the points far from the reference are not considered as anomalies (if there also are some other points closer to the reference).

◆ SetPointCloudReference()

void eVision::Easy3D::E3DComparer::SetPointCloudReference ( const eVision::Easy3D::EPointCloud & pointcloud)

Sets the 3D reference model. See also E3DComparer::SetMeshReference.

Parameters
pointcloudAn EPointCloud that represents the 3D reference model.

◆ SetROI()

void eVision::Easy3D::E3DComparer::SetROI ( const std::vector< eVision::Easy3D::E3DBox > & roi)

Sets/Gets a vector of E3DBox that defines the regions that should be compared. By default, the entire reference is considered.

Member Data Documentation

◆ wrappedClass_

CppWrapperInternal::WrappedClass eVision::Easy3D::E3DComparer::wrappedClass_