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

Represents a 3D point cloud. More...

#include <eVision/Easy3D/EPointCloud.h>

Collaboration diagram for eVision::Easy3D::EPointCloud:

Public Member Functions

 EPointCloud ()
 Creates an EPointCloud object.
 EPointCloud (const eVision::Easy3D::EPointCloud &other)
 Creates an EPointCloud object.
virtual ~EPointCloud () throw ()
eVision::Easy3D::EPointCloud & operator= (const eVision::Easy3D::EPointCloud &other)
 Assignment operator.
void Clear ()
 Empties the EPointCloud.
void AddPoint (const eVision::Easy3D::E3DPoint &point)
 Adds a point to the EPointCloud.
void AddPoints (const std::vector< eVision::Easy3D::E3DPoint > &points)
 Adds a vector of points to the EPointCloud.
void AddPointCloud (const eVision::Easy3D::EPointCloud &cloud, bool addAttributeIfNotPresent)
 Adds the points of another point cloud to EPointCloud.
void AddPointCloud (const eVision::Easy3D::EPointCloud &cloud)
 Adds the points of another point cloud to EPointCloud.
void AddPointAndAttributesTo (eVision::Easy3D::EPointCloud &dstCloud, uint32_t srcIndex, bool addAttributeIfNotPresent) const
 Adds a point and its attributes to another EPointCloud.
void AddPointAndAttributesTo (eVision::Easy3D::EPointCloud &dstCloud, uint32_t srcIndex) const
 Adds a point and its attributes to another EPointCloud.
void RemovePoint (uint32_t index)
 Removes a point and its corresponding attributes from the EPointCloud.
int GetNumPoints () const
 Number of points in the EPointCloud.
eVision::Easy3D::E3DPoint GetPoint (unsigned int index) const
 Retrieves a point from the EPointCloud.
void * GetPointsBuffer ()
 Retrieves a pointer to the internal points buffer.
const void * GetPointsBuffer () const
 Retrieves a pointer to the internal points buffer.
void FillPointsBuffer (void *pointsBuffer, int32_t numPoints)
 Copies an external points buffer into the internal points buffer.
const void * GetAttributeBuffer (int attribute) const
 Retrieves a pointer to the internal attribute buffer.
eVision::Easy3D::EAttributeType GetAttributeBufferType (int attribute) const
 Returns the EAttributeType corresponding to the E3DAttribute.
bool HasAttributeBuffer (int attribute) const
 Returns true if a buffer of the given E3DAttribute exists in the point cloud.
void ClearAttributeBuffer (int attribute)
 Empties the attribute buffer.
void AllocateAttributeBufferUInt8 (int attribute, uint8_t defaultValue)
 Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.
void AllocateAttributeBufferUInt16 (int attribute, uint16_t defaultValue)
 Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.
void AllocateAttributeBufferUInt32 (int attribute, uint32_t defaultValue)
 Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.
void AllocateAttributeBufferInt32 (int attribute, int32_t defaultValue)
 Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.
void AllocateAttributeBufferFloat (int attribute, float defaultValue)
 Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.
void AllocateAttributeBufferDouble (int attribute, double defaultValue)
 Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.
void AllocateAttributeBufferEC24A (int attribute, const eVision::EC24A &defaultValue)
 Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.
void AllocateAttributeBufferE3DPoint (int attribute, const eVision::Easy3D::E3DPoint &defaultValue)
 Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.
void AllocateAttributeBuffer (int attribute, uint8_t defaultValue)
 Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.
void AllocateAttributeBuffer (int attribute, uint16_t defaultValue)
 Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.
void AllocateAttributeBuffer (int attribute, uint32_t defaultValue)
 Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.
void AllocateAttributeBuffer (int attribute, int32_t defaultValue)
 Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.
void AllocateAttributeBuffer (int attribute, float defaultValue)
 Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.
void AllocateAttributeBuffer (int attribute, double defaultValue)
 Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.
void AllocateAttributeBuffer (int attribute, const eVision::EC24A &defaultValue)
 Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.
void AllocateAttributeBuffer (int attribute, const eVision::Easy3D::E3DPoint &defaultValue)
 Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.
void FillAttributeBufferUInt8 (int attribute, const std::vector< uint8_t > &data)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBufferUInt8 (int attribute, const std::vector< uint8_t > &data, uint8_t defaultValue)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBufferUInt16 (int attribute, const std::vector< uint16_t > &data)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBufferUInt16 (int attribute, const std::vector< uint16_t > &data, uint16_t defaultValue)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBufferUInt32 (int attribute, const std::vector< uint32_t > &data)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBufferUInt32 (int attribute, const std::vector< uint32_t > &data, uint32_t defaultValue)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBufferInt32 (int attribute, const std::vector< int32_t > &data)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBufferInt32 (int attribute, const std::vector< int32_t > &data, int32_t defaultValue)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBufferFloat (int attribute, const std::vector< float > &data)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBufferFloat (int attribute, const std::vector< float > &data, float defaultValue)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBufferDouble (int attribute, const std::vector< double > &data)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBufferDouble (int attribute, const std::vector< double > &data, double defaultValue)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBufferEC24A (int attribute, const std::vector< eVision::EC24A > &data)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBufferEC24A (int attribute, const std::vector< eVision::EC24A > &data, const eVision::EC24A &defaultValue)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBufferE3DPoint (int attribute, const std::vector< eVision::Easy3D::E3DPoint > &data)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBufferE3DPoint (int attribute, const std::vector< eVision::Easy3D::E3DPoint > &data, const eVision::Easy3D::E3DPoint &defaultValue)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBuffer (int attribute, const std::vector< uint8_t > &data)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBuffer (int attribute, const std::vector< uint8_t > &data, uint8_t defaultValue)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBuffer (int attribute, const std::vector< uint16_t > &data)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBuffer (int attribute, const std::vector< uint16_t > &data, uint16_t defaultValue)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBuffer (int attribute, const std::vector< uint32_t > &data)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBuffer (int attribute, const std::vector< uint32_t > &data, uint32_t defaultValue)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBuffer (int attribute, const std::vector< int32_t > &data)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBuffer (int attribute, const std::vector< int32_t > &data, int32_t defaultValue)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBuffer (int attribute, const std::vector< float > &data)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBuffer (int attribute, const std::vector< float > &data, float defaultValue)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBuffer (int attribute, const std::vector< double > &data)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBuffer (int attribute, const std::vector< double > &data, double defaultValue)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBuffer (int attribute, const std::vector< eVision::EC24A > &data)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBuffer (int attribute, const std::vector< eVision::EC24A > &data, const eVision::EC24A &defaultValue)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBuffer (int attribute, const std::vector< eVision::Easy3D::E3DPoint > &data)
 Allocates and copies the data to the attribute buffer.
void FillAttributeBuffer (int attribute, const std::vector< eVision::Easy3D::E3DPoint > &data, const eVision::Easy3D::E3DPoint &defaultValue)
 Allocates and copies the data to the attribute buffer.
int AddCustomAttributeBufferUInt8 (const std::vector< uint8_t > &data)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBufferUInt8 (const std::vector< uint8_t > &data, uint8_t defaultValue)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBufferUInt16 (const std::vector< uint16_t > &data)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBufferUInt16 (const std::vector< uint16_t > &data, uint16_t defaultValue)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBufferUInt32 (const std::vector< uint32_t > &data)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBufferUInt32 (const std::vector< uint32_t > &data, uint32_t defaultValue)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBufferInt32 (const std::vector< int32_t > &data)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBufferInt32 (const std::vector< int32_t > &data, int32_t defaultValue)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBufferFloat (const std::vector< float > &data)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBufferFloat (const std::vector< float > &data, float defaultValue)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBufferDouble (const std::vector< double > &data)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBufferDouble (const std::vector< double > &data, double defaultValue)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBufferEC24A (const std::vector< eVision::EC24A > &data)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBufferEC24A (const std::vector< eVision::EC24A > &data, const eVision::EC24A &defaultValue)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBufferE3DPoint (const std::vector< eVision::Easy3D::E3DPoint > &data)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBufferE3DPoint (const std::vector< eVision::Easy3D::E3DPoint > &data, const eVision::Easy3D::E3DPoint &defaultValue)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBuffer (const std::vector< uint8_t > &data)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBuffer (const std::vector< uint8_t > &data, uint8_t defaultValue)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBuffer (const std::vector< uint16_t > &data)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBuffer (const std::vector< uint16_t > &data, uint16_t defaultValue)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBuffer (const std::vector< uint32_t > &data)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBuffer (const std::vector< uint32_t > &data, uint32_t defaultValue)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBuffer (const std::vector< int32_t > &data)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBuffer (const std::vector< int32_t > &data, int32_t defaultValue)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBuffer (const std::vector< float > &data)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBuffer (const std::vector< float > &data, float defaultValue)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBuffer (const std::vector< double > &data)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBuffer (const std::vector< double > &data, double defaultValue)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBuffer (const std::vector< eVision::EC24A > &data)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBuffer (const std::vector< eVision::EC24A > &data, const eVision::EC24A &defaultValue)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBuffer (const std::vector< eVision::Easy3D::E3DPoint > &data)
 Allocates and copies the data to the new custom attribute buffer.
int AddCustomAttributeBuffer (const std::vector< eVision::Easy3D::E3DPoint > &data, const eVision::Easy3D::E3DPoint &defaultValue)
 Allocates and copies the data to the new custom attribute buffer.
int AllocateCustomAttributeBufferUInt8 (uint8_t defaultValue)
 Allocates the data to the new custom attribute buffer and fills it with default values.
int AllocateCustomAttributeBufferUInt16 (uint16_t defaultValue)
 Allocates the data to the new custom attribute buffer and fills it with default values.
int AllocateCustomAttributeBufferUInt32 (uint32_t defaultValue)
 Allocates the data to the new custom attribute buffer and fills it with default values.
int AllocateCustomAttributeBufferInt32 (int32_t defaultValue)
 Allocates the data to the new custom attribute buffer and fills it with default values.
int AllocateCustomAttributeBufferFloat (float defaultValue)
 Allocates the data to the new custom attribute buffer and fills it with default values.
int AllocateCustomAttributeBufferDouble (double defaultValue)
 Allocates the data to the new custom attribute buffer and fills it with default values.
int AllocateCustomAttributeBufferEC24A (const eVision::EC24A &defaultValue)
 Allocates the data to the new custom attribute buffer and fills it with default values.
int AllocateCustomAttributeBufferE3DPoint (const eVision::Easy3D::E3DPoint &defaultValue)
 Allocates the data to the new custom attribute buffer and fills it with default values.
int AllocateCustomAttributeBuffer (uint8_t defaultValue)
 Allocates the data to the new custom attribute buffer and fills it with default values.
int AllocateCustomAttributeBuffer (uint16_t defaultValue)
 Allocates the data to the new custom attribute buffer and fills it with default values.
int AllocateCustomAttributeBuffer (uint32_t defaultValue)
 Allocates the data to the new custom attribute buffer and fills it with default values.
int AllocateCustomAttributeBuffer (int32_t defaultValue)
 Allocates the data to the new custom attribute buffer and fills it with default values.
int AllocateCustomAttributeBuffer (float defaultValue)
 Allocates the data to the new custom attribute buffer and fills it with default values.
int AllocateCustomAttributeBuffer (double defaultValue)
 Allocates the data to the new custom attribute buffer and fills it with default values.
int AllocateCustomAttributeBuffer (const eVision::EC24A &defaultValue)
 Allocates the data to the new custom attribute buffer and fills it with default values.
int AllocateCustomAttributeBuffer (const eVision::Easy3D::E3DPoint &defaultValue)
 Allocates the data to the new custom attribute buffer and fills it with default values.
void GetAttribute (int attribute, uint32_t index, uint8_t &value) const
 Retrieve the value of an attribute.
void GetAttribute (int attribute, uint32_t index, uint16_t &value) const
 Retrieve the value of an attribute.
void GetAttribute (int attribute, uint32_t index, uint32_t &value) const
 Retrieve the value of an attribute.
void GetAttribute (int attribute, uint32_t index, int32_t &value) const
 Retrieve the value of an attribute.
void GetAttribute (int attribute, uint32_t index, float &value) const
 Retrieve the value of an attribute.
void GetAttribute (int attribute, uint32_t index, double &value) const
 Retrieve the value of an attribute.
void GetAttribute (int attribute, uint32_t index, eVision::EC24A &value) const
 Retrieve the value of an attribute.
void GetAttribute (int attribute, uint32_t index, eVision::Easy3D::E3DPoint &value) const
 Retrieve the value of an attribute.
uint8_t GetAttributeUInt8 (int attribute, uint32_t index) const
 Retrieve the value of an uint8 attribute.
uint16_t GetAttributeUInt16 (int attribute, uint32_t index) const
 Retrieve the value of an uint16 attribute.
uint32_t GetAttributeUInt32 (int attribute, uint32_t index) const
 Retrieve the value of an uint32 attribute.
int32_t GetAttributeInt32 (int attribute, uint32_t index) const
 Retrieve the value of an int32 attribute.
float GetAttributeFloat (int attribute, uint32_t index) const
 Retrieve the value of a float attribute.
double GetAttributeDouble (int attribute, uint32_t index) const
 Retrieve the value of a double attribute.
eVision::EC24A GetAttributeEC24A (int attribute, uint32_t index) const
 Retrieve the value of an EC24A attribute.
eVision::Easy3D::E3DPoint GetAttributeE3DPoint (int attribute, uint32_t index) const
 Retrieve the value of an E3DPoint attribute.
void SetAttributeUInt8 (int attribute, uint32_t index, uint8_t value)
 Sets the corresponding attribute at the given index.
void SetAttributeUInt16 (int attribute, uint32_t index, uint16_t value)
 Sets the corresponding attribute at the given index.
void SetAttributeUInt32 (int attribute, uint32_t index, uint32_t value)
 Sets the corresponding attribute at the given index.
void SetAttributeInt32 (int attribute, uint32_t index, int32_t value)
 Sets the corresponding attribute at the given index.
void SetAttributeFloat (int attribute, uint32_t index, float value)
 Sets the corresponding attribute at the given index.
void SetAttributeDouble (int attribute, uint32_t index, double value)
 Sets the corresponding attribute at the given index.
void SetAttributeEC24A (int attribute, uint32_t index, const eVision::EC24A &value)
 Sets the corresponding attribute at the given index.
void SetAttributeE3DPoint (int attribute, uint32_t index, const eVision::Easy3D::E3DPoint &value)
 Sets the corresponding attribute at the given index.
void SetAttribute (int attribute, uint32_t index, uint8_t value)
 Sets the corresponding attribute at the given index.
void SetAttribute (int attribute, uint32_t index, uint16_t value)
 Sets the corresponding attribute at the given index.
void SetAttribute (int attribute, uint32_t index, uint32_t value)
 Sets the corresponding attribute at the given index.
void SetAttribute (int attribute, uint32_t index, int32_t value)
 Sets the corresponding attribute at the given index.
void SetAttribute (int attribute, uint32_t index, float value)
 Sets the corresponding attribute at the given index.
void SetAttribute (int attribute, uint32_t index, double value)
 Sets the corresponding attribute at the given index.
void SetAttribute (int attribute, uint32_t index, const eVision::EC24A &value)
 Sets the corresponding attribute at the given index.
void SetAttribute (int attribute, uint32_t index, const eVision::Easy3D::E3DPoint &value)
 Sets the corresponding attribute at the given index.
void CopyAllAttributesTo (eVision::Easy3D::EPointCloud &dstCloud, uint32_t dstIndex, uint32_t srcIndex) const
 Copies all attributes at a given index from one EPointCloud to another one.
void Load (const std::string &path)
 Loads the EPointCloud. Supported formats are eVision proprietary, CSV, OBJ, PCD, PLY and XYZ. The given ESerializer must have been created for reading.
void Load (eVision::ESerializer *serializer)
 Loads the EPointCloud. Supported formats are eVision proprietary, CSV, OBJ, PCD, PLY and XYZ. The given ESerializer must have been created for reading.
void Save (const std::string &path)
 Saves the EPointCloud. Supported formats are eVision proprietary, CSV, OBJ, PCD, PLY and XYZ. The given ESerializer must have been created for writing.
void Save (eVision::ESerializer *serializer)
 Saves the EPointCloud. Supported formats are eVision proprietary, CSV, OBJ, PCD, PLY and XYZ. The given ESerializer must have been created for writing.
void SavePCD (const std::string &path, bool binary, bool binaryCompressed) const
 Saves the EPointCloud in the PCD (Point Cloud Library) file format.
void SavePCD (const std::string &path, bool binary) const
 Saves the EPointCloud in the PCD (Point Cloud Library) file format.
void SavePCD (const std::string &path) const
 Saves the EPointCloud in the PCD (Point Cloud Library) file format.
void LoadPCD (const std::string &path)
 Loads an EPointCloud stored in the PCD (Point Cloud Library) file format.
void LoadPCD (const std::string &path, const eVision::EFloatRange &undefinedZValues)
 Loads an EPointCloud stored in the PCD (Point Cloud Library) file format.
void SaveCSV (const std::string &path) const
 Saves the EPointCloud in the CSV (Comma-Separated Values) file format.
void LoadCSV (const std::string &path)
 Loads an EPointCloud stored in the CSV (Comma-Separated Values) file format.
void LoadCSV (const std::string &path, const eVision::EFloatRange &undefinedZValues)
 Loads an EPointCloud stored in the CSV (Comma-Separated Values) file format.
void SaveOBJ (const std::string &path) const
 Saves the EPointCloud in the OBJ file format.
void LoadOBJ (const std::string &path)
 Loads an EPointCloud stored in the OBJ file format.
void LoadOBJ (const std::string &path, const eVision::EFloatRange &undefinedZValues)
 Loads an EPointCloud stored in the OBJ file format.
void SavePLY (const std::string &path, bool binary) const
 Saves the EPointCloud in the PLY file format.
void SavePLY (const std::string &path) const
 Saves the EPointCloud in the PLY file format.
void LoadPLY (const std::string &path)
 Loads an EPointCloud stored in the PLY file format.
void LoadPLY (const std::string &path, const eVision::EFloatRange &undefinedZValues)
 Loads an EPointCloud stored in the PLY file format.
void SaveXYZ (const std::string &path) const
 Saves the EPointCloud in the XYZ file format.
void LoadXYZ (const std::string &path)
 Loads an EPointCloud stored in the XYZ file format.
void LoadXYZ (const std::string &path, const eVision::EFloatRange &undefinedZValues)
 Loads an EPointCloud stored in the XYZ file format.
void GetInitializedAttributes (std::vector< int > &attributes) const
 Fills the vector with the ids (in growing order) of all the attributes that have been initialized.
float DistanceToSegment (const eVision::Easy3D::E3DPoint &origin, const eVision::Easy3D::E3DPoint &end)
 Returns the shortest distance between an E3DPoint of the EPointCloud and a segment represented by 2 E3DPoint.
float DistanceToSegment (const eVision::Easy3D::E3DPoint &origin, const eVision::Easy3D::E3DPoint &end, eVision::Easy3D::E3DPoint &closest, int &closestIndex)
 Returns the shortest distance between an E3DPoint of the EPointCloud and a segment represented by 2 E3DPoint.
eVision::Easy3D::E3DClosestPoint ClosestPointToSegment (const eVision::Easy3D::E3DPoint &origin, const eVision::Easy3D::E3DPoint &end)
 Returns the closest point, its index and the distance between the EPointCloud and a segment represented by 2 E3DPoint.
float DistanceToLine (const eVision::Easy3D::E3DPoint &origin, const eVision::Easy3D::E3DPoint &end)
 Returns the shortest distance between an E3DPoint of the EPointCloud and a line represented by 2 E3DPoint.
float DistanceToLine (const eVision::Easy3D::E3DPoint &origin, const eVision::Easy3D::E3DPoint &end, eVision::Easy3D::E3DPoint &closest, int &closestIndex)
 Returns the shortest distance between an E3DPoint of the EPointCloud and a line represented by 2 E3DPoint.
eVision::Easy3D::E3DClosestPoint ClosestPointToLine (const eVision::Easy3D::E3DPoint &origin, const eVision::Easy3D::E3DPoint &end)
 Returns the closest point, its index and the distance between the EPointCloud and a line represented by 2 E3DPoint.
void SetEnableSpacePartition (bool state)
 Sets/Gets the status of space partitioning when computing distance to Segments and Lines. Space partitioning is a way to speed up the geometric queries on EPointCloud. The affected methods are EPointCloud::DistanceToSegment, EPointCloud::DistanceToLine. By default, space partition is disabled for these two methods.
bool GetEnableSpacePartition () const
 Sets/Gets the status of space partitioning when computing distance to Segments and Lines. Space partitioning is a way to speed up the geometric queries on EPointCloud. The affected methods are EPointCloud::DistanceToSegment, EPointCloud::DistanceToLine. By default, space partition is disabled for these two methods.
void PrepareSpacePartition ()
 Enables the build of the space partition (like EPointCloud::SetEnableSpacePartition) and builds it now instead of when it is first needed. The computation time of the space partition depends on the number of points in the point cloud.
eVision::Easy3D::E3DPlane ComputePlaneBehind (eVision::Easy3D::E3DPoint normal, float margin) const
 Returns the E3DPlane with given normal on which the EPointCloud lays. This is useful when projecting an EPointCloud on an EZMap.
eVision::Easy3D::E3DPlane ComputePlaneBehind (eVision::Easy3D::E3DPoint normal) const
 Returns the E3DPlane with given normal on which the EPointCloud lays. This is useful when projecting an EPointCloud on an EZMap.
void ComputeNormalsAndCurvatures (bool computeCurvatures, uint32_t nbAdditionalNeighborsForCurvatures)
 Compute the normals of the cloud's points by fitting a plane on the 10 neighbors points. This method does not allow to compute the sign of the normals (we can't determine if a normal is x,y,z or -x,-y,-z).
void ComputeNormalsAndCurvatures (bool computeCurvatures)
 Compute the normals of the cloud's points by fitting a plane on the 10 neighbors points. This method does not allow to compute the sign of the normals (we can't determine if a normal is x,y,z or -x,-y,-z).
void ComputeNormalsAndCurvatures ()
 Compute the normals of the cloud's points by fitting a plane on the 10 neighbors points. This method does not allow to compute the sign of the normals (we can't determine if a normal is x,y,z or -x,-y,-z).
 EPointCloud (CppWrapperInternal::InternalConstructor)

Public Attributes

CppWrapperInternal::WrappedClass wrappedClass_

Detailed Description

Represents a 3D point cloud.

License(s): Easy3D

Constructor & Destructor Documentation

◆ EPointCloud() [1/3]

eVision::Easy3D::EPointCloud::EPointCloud ( )

Creates an EPointCloud object.

◆ EPointCloud() [2/3]

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

Creates an EPointCloud object.

Parameters
otherReference to the EPointCloud used for the initialization.

◆ ~EPointCloud()

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

◆ EPointCloud() [3/3]

eVision::Easy3D::EPointCloud::EPointCloud ( CppWrapperInternal::InternalConstructor )

Member Function Documentation

◆ AddCustomAttributeBuffer() [1/16]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBuffer ( const std::vector< double > & data)

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

Deprecated

Use EPointCloud::AddCustomAttributeBufferDouble.

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

◆ AddCustomAttributeBuffer() [2/16]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBuffer ( const std::vector< double > & data,
double defaultValue )

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

Deprecated

Use EPointCloud::AddCustomAttributeBufferDouble.

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

◆ AddCustomAttributeBuffer() [3/16]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBuffer ( const std::vector< eVision::Easy3D::E3DPoint > & data)

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

Deprecated

Use EPointCloud::AddCustomAttributeBufferE3DPoint.

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

◆ AddCustomAttributeBuffer() [4/16]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBuffer ( const std::vector< eVision::Easy3D::E3DPoint > & data,
const eVision::Easy3D::E3DPoint & defaultValue )

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

Deprecated

Use EPointCloud::AddCustomAttributeBufferE3DPoint.

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

◆ AddCustomAttributeBuffer() [5/16]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBuffer ( const std::vector< eVision::EC24A > & data)

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

Deprecated

Use EPointCloud::AddCustomAttributeBufferEC24A.

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

◆ AddCustomAttributeBuffer() [6/16]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBuffer ( const std::vector< eVision::EC24A > & data,
const eVision::EC24A & defaultValue )

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

Deprecated

Use EPointCloud::AddCustomAttributeBufferEC24A.

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

◆ AddCustomAttributeBuffer() [7/16]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBuffer ( const std::vector< float > & data)

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

Deprecated

Use EPointCloud::AddCustomAttributeBufferFloat.

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

◆ AddCustomAttributeBuffer() [8/16]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBuffer ( const std::vector< float > & data,
float defaultValue )

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

Deprecated

Use EPointCloud::AddCustomAttributeBufferFloat.

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

◆ AddCustomAttributeBuffer() [9/16]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBuffer ( const std::vector< int32_t > & data)

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

Deprecated

Use EPointCloud::AddCustomAttributeBufferInt32.

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

◆ AddCustomAttributeBuffer() [10/16]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBuffer ( const std::vector< int32_t > & data,
int32_t defaultValue )

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

Deprecated

Use EPointCloud::AddCustomAttributeBufferInt32.

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

◆ AddCustomAttributeBuffer() [11/16]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBuffer ( const std::vector< uint16_t > & data)

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

Deprecated

Use EPointCloud::AddCustomAttributeBufferUInt16.

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

◆ AddCustomAttributeBuffer() [12/16]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBuffer ( const std::vector< uint16_t > & data,
uint16_t defaultValue )

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

Deprecated

Use EPointCloud::AddCustomAttributeBufferUInt16.

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

◆ AddCustomAttributeBuffer() [13/16]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBuffer ( const std::vector< uint32_t > & data)

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

Deprecated

Use EPointCloud::AddCustomAttributeBufferUInt32.

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

◆ AddCustomAttributeBuffer() [14/16]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBuffer ( const std::vector< uint32_t > & data,
uint32_t defaultValue )

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

Deprecated

Use EPointCloud::AddCustomAttributeBufferUInt32.

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

◆ AddCustomAttributeBuffer() [15/16]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBuffer ( const std::vector< uint8_t > & data)

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

Deprecated

Use EPointCloud::AddCustomAttributeBufferUInt8.

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

◆ AddCustomAttributeBuffer() [16/16]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBuffer ( const std::vector< uint8_t > & data,
uint8_t defaultValue )

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

Deprecated

Use EPointCloud::AddCustomAttributeBufferUInt8.

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

◆ AddCustomAttributeBufferDouble() [1/2]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBufferDouble ( const std::vector< double > & data)

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

◆ AddCustomAttributeBufferDouble() [2/2]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBufferDouble ( const std::vector< double > & data,
double defaultValue )

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

◆ AddCustomAttributeBufferE3DPoint() [1/2]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBufferE3DPoint ( const std::vector< eVision::Easy3D::E3DPoint > & data)

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

◆ AddCustomAttributeBufferE3DPoint() [2/2]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBufferE3DPoint ( const std::vector< eVision::Easy3D::E3DPoint > & data,
const eVision::Easy3D::E3DPoint & defaultValue )

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

◆ AddCustomAttributeBufferEC24A() [1/2]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBufferEC24A ( const std::vector< eVision::EC24A > & data)

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

◆ AddCustomAttributeBufferEC24A() [2/2]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBufferEC24A ( const std::vector< eVision::EC24A > & data,
const eVision::EC24A & defaultValue )

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

◆ AddCustomAttributeBufferFloat() [1/2]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBufferFloat ( const std::vector< float > & data)

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

◆ AddCustomAttributeBufferFloat() [2/2]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBufferFloat ( const std::vector< float > & data,
float defaultValue )

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

◆ AddCustomAttributeBufferInt32() [1/2]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBufferInt32 ( const std::vector< int32_t > & data)

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

◆ AddCustomAttributeBufferInt32() [2/2]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBufferInt32 ( const std::vector< int32_t > & data,
int32_t defaultValue )

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

◆ AddCustomAttributeBufferUInt16() [1/2]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBufferUInt16 ( const std::vector< uint16_t > & data)

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

◆ AddCustomAttributeBufferUInt16() [2/2]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBufferUInt16 ( const std::vector< uint16_t > & data,
uint16_t defaultValue )

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

◆ AddCustomAttributeBufferUInt32() [1/2]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBufferUInt32 ( const std::vector< uint32_t > & data)

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

◆ AddCustomAttributeBufferUInt32() [2/2]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBufferUInt32 ( const std::vector< uint32_t > & data,
uint32_t defaultValue )

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

◆ AddCustomAttributeBufferUInt8() [1/2]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBufferUInt8 ( const std::vector< uint8_t > & data)

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

◆ AddCustomAttributeBufferUInt8() [2/2]

int eVision::Easy3D::EPointCloud::AddCustomAttributeBufferUInt8 ( const std::vector< uint8_t > & data,
uint8_t defaultValue )

Allocates and copies the data to the new custom attribute buffer.

Parameters
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateCustomAttributeBufferXXX.

◆ AddPoint()

void eVision::Easy3D::EPointCloud::AddPoint ( const eVision::Easy3D::E3DPoint & point)

Adds a point to the EPointCloud.

Parameters
pointThe E3DPoint to add to the point cloud.

The point is not added if it contains nan or inf values.

◆ AddPointAndAttributesTo() [1/2]

void eVision::Easy3D::EPointCloud::AddPointAndAttributesTo ( eVision::Easy3D::EPointCloud & dstCloud,
uint32_t srcIndex ) const

Adds a point and its attributes to another EPointCloud.

Parameters
dstCloudThe EPointCloud where the attributes are copied.
srcIndexThe index of the element to copy from the source EPointCloud.

◆ AddPointAndAttributesTo() [2/2]

void eVision::Easy3D::EPointCloud::AddPointAndAttributesTo ( eVision::Easy3D::EPointCloud & dstCloud,
uint32_t srcIndex,
bool addAttributeIfNotPresent ) const

Adds a point and its attributes to another EPointCloud.

Parameters
dstCloudThe EPointCloud where the attributes are copied.
srcIndexThe index of the element to copy from the source EPointCloud.
addAttributeIfNotPresentWhether to initialize a buffer if it is present in EPointCloud but not in dstCloud. this could result in the creation of an attribute filled with default values.

◆ AddPointCloud() [1/2]

void eVision::Easy3D::EPointCloud::AddPointCloud ( const eVision::Easy3D::EPointCloud & cloud)

Adds the points of another point cloud to EPointCloud.

Parameters
cloudPoint cloud whose points will be added to the point cloud.

◆ AddPointCloud() [2/2]

void eVision::Easy3D::EPointCloud::AddPointCloud ( const eVision::Easy3D::EPointCloud & cloud,
bool addAttributeIfNotPresent )

Adds the points of another point cloud to EPointCloud.

Parameters
cloudPoint cloud whose points will be added to the point cloud.
addAttributeIfNotPresentWhether to initialize a buffer if it is present cloud but not in EPointCloud. this could result in the creation of an attribute filled with default values.

◆ AddPoints()

void eVision::Easy3D::EPointCloud::AddPoints ( const std::vector< eVision::Easy3D::E3DPoint > & points)

Adds a vector of points to the EPointCloud.

Parameters
pointsVector of E3DPoint to add to the point cloud.

The points that contain nan or inf values are not added.

◆ AllocateAttributeBuffer() [1/8]

void eVision::Easy3D::EPointCloud::AllocateAttributeBuffer ( int attribute,
const eVision::Easy3D::E3DPoint & defaultValue )

Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType.

Deprecated

Use EPointCloud::AllocateAttributeBufferE3DPoint.

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

◆ AllocateAttributeBuffer() [2/8]

void eVision::Easy3D::EPointCloud::AllocateAttributeBuffer ( int attribute,
const eVision::EC24A & defaultValue )

Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType.

Deprecated

Use EPointCloud::AllocateAttributeBufferEC24A.

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

◆ AllocateAttributeBuffer() [3/8]

void eVision::Easy3D::EPointCloud::AllocateAttributeBuffer ( int attribute,
double defaultValue )

Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType.

Deprecated

Use EPointCloud::AllocateAttributeBufferDouble.

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

◆ AllocateAttributeBuffer() [4/8]

void eVision::Easy3D::EPointCloud::AllocateAttributeBuffer ( int attribute,
float defaultValue )

Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType.

Deprecated

Use EPointCloud::AllocateAttributeBufferFloat.

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

◆ AllocateAttributeBuffer() [5/8]

void eVision::Easy3D::EPointCloud::AllocateAttributeBuffer ( int attribute,
int32_t defaultValue )

Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType.

Deprecated

Use EPointCloud::AllocateAttributeBufferInt32.

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

◆ AllocateAttributeBuffer() [6/8]

void eVision::Easy3D::EPointCloud::AllocateAttributeBuffer ( int attribute,
uint16_t defaultValue )

Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType.

Deprecated

Use EPointCloud::AllocateAttributeBufferUInt16.

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

◆ AllocateAttributeBuffer() [7/8]

void eVision::Easy3D::EPointCloud::AllocateAttributeBuffer ( int attribute,
uint32_t defaultValue )

Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType.

Deprecated

Use EPointCloud::AllocateAttributeBufferUInt32.

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

◆ AllocateAttributeBuffer() [8/8]

void eVision::Easy3D::EPointCloud::AllocateAttributeBuffer ( int attribute,
uint8_t defaultValue )

Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType.

Deprecated

Use EPointCloud::AllocateAttributeBufferUInt8.

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

◆ AllocateAttributeBufferDouble()

void eVision::Easy3D::EPointCloud::AllocateAttributeBufferDouble ( int attribute,
double defaultValue )

Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType.

◆ AllocateAttributeBufferE3DPoint()

void eVision::Easy3D::EPointCloud::AllocateAttributeBufferE3DPoint ( int attribute,
const eVision::Easy3D::E3DPoint & defaultValue )

Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType.

◆ AllocateAttributeBufferEC24A()

void eVision::Easy3D::EPointCloud::AllocateAttributeBufferEC24A ( int attribute,
const eVision::EC24A & defaultValue )

Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType.

◆ AllocateAttributeBufferFloat()

void eVision::Easy3D::EPointCloud::AllocateAttributeBufferFloat ( int attribute,
float defaultValue )

Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType.

◆ AllocateAttributeBufferInt32()

void eVision::Easy3D::EPointCloud::AllocateAttributeBufferInt32 ( int attribute,
int32_t defaultValue )

Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType.

◆ AllocateAttributeBufferUInt16()

void eVision::Easy3D::EPointCloud::AllocateAttributeBufferUInt16 ( int attribute,
uint16_t defaultValue )

Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType.

◆ AllocateAttributeBufferUInt32()

void eVision::Easy3D::EPointCloud::AllocateAttributeBufferUInt32 ( int attribute,
uint32_t defaultValue )

Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType.

◆ AllocateAttributeBufferUInt8()

void eVision::Easy3D::EPointCloud::AllocateAttributeBufferUInt8 ( int attribute,
uint8_t defaultValue )

Allocates an attribute buffer and fills it with defaultValue if the cloud is not empty.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType.

◆ AllocateCustomAttributeBuffer() [1/8]

int eVision::Easy3D::EPointCloud::AllocateCustomAttributeBuffer ( const eVision::Easy3D::E3DPoint & defaultValue)

Allocates the data to the new custom attribute buffer and fills it with default values.

Parameters
defaultValueThe value used to set the attribute initially and when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).
Deprecated

Use EPointCloud::AllocateCustomAttributeBufferE3DPoint.

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

◆ AllocateCustomAttributeBuffer() [2/8]

int eVision::Easy3D::EPointCloud::AllocateCustomAttributeBuffer ( const eVision::EC24A & defaultValue)

Allocates the data to the new custom attribute buffer and fills it with default values.

Parameters
defaultValueThe value used to set the attribute initially and when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).
Deprecated

Use EPointCloud::AllocateCustomAttributeBufferEC24A.

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

◆ AllocateCustomAttributeBuffer() [3/8]

int eVision::Easy3D::EPointCloud::AllocateCustomAttributeBuffer ( double defaultValue)

Allocates the data to the new custom attribute buffer and fills it with default values.

Parameters
defaultValueThe value used to set the attribute initially and when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).
Deprecated

Use EPointCloud::AllocateCustomAttributeBufferDouble.

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

◆ AllocateCustomAttributeBuffer() [4/8]

int eVision::Easy3D::EPointCloud::AllocateCustomAttributeBuffer ( float defaultValue)

Allocates the data to the new custom attribute buffer and fills it with default values.

Parameters
defaultValueThe value used to set the attribute initially and when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).
Deprecated

Use EPointCloud::AllocateCustomAttributeBufferFloat.

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

◆ AllocateCustomAttributeBuffer() [5/8]

int eVision::Easy3D::EPointCloud::AllocateCustomAttributeBuffer ( int32_t defaultValue)

Allocates the data to the new custom attribute buffer and fills it with default values.

Parameters
defaultValueThe value used to set the attribute initially and when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).
Deprecated

Use EPointCloud::AllocateCustomAttributeBufferInt32.

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

◆ AllocateCustomAttributeBuffer() [6/8]

int eVision::Easy3D::EPointCloud::AllocateCustomAttributeBuffer ( uint16_t defaultValue)

Allocates the data to the new custom attribute buffer and fills it with default values.

Parameters
defaultValueThe value used to set the attribute initially and when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).
Deprecated

Use EPointCloud::AllocateCustomAttributeBufferUInt16.

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

◆ AllocateCustomAttributeBuffer() [7/8]

int eVision::Easy3D::EPointCloud::AllocateCustomAttributeBuffer ( uint32_t defaultValue)

Allocates the data to the new custom attribute buffer and fills it with default values.

Parameters
defaultValueThe value used to set the attribute initially and when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).
Deprecated

Use EPointCloud::AllocateCustomAttributeBufferUInt32.

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

◆ AllocateCustomAttributeBuffer() [8/8]

int eVision::Easy3D::EPointCloud::AllocateCustomAttributeBuffer ( uint8_t defaultValue)

Allocates the data to the new custom attribute buffer and fills it with default values.

Parameters
defaultValueThe value used to set the attribute initially and when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).
Deprecated

Use EPointCloud::AllocateCustomAttributeBufferUInt8.

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

◆ AllocateCustomAttributeBufferDouble()

int eVision::Easy3D::EPointCloud::AllocateCustomAttributeBufferDouble ( double defaultValue)

Allocates the data to the new custom attribute buffer and fills it with default values.

Parameters
defaultValueThe value used to set the attribute initially and when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

◆ AllocateCustomAttributeBufferE3DPoint()

int eVision::Easy3D::EPointCloud::AllocateCustomAttributeBufferE3DPoint ( const eVision::Easy3D::E3DPoint & defaultValue)

Allocates the data to the new custom attribute buffer and fills it with default values.

Parameters
defaultValueThe value used to set the attribute initially and when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

◆ AllocateCustomAttributeBufferEC24A()

int eVision::Easy3D::EPointCloud::AllocateCustomAttributeBufferEC24A ( const eVision::EC24A & defaultValue)

Allocates the data to the new custom attribute buffer and fills it with default values.

Parameters
defaultValueThe value used to set the attribute initially and when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

◆ AllocateCustomAttributeBufferFloat()

int eVision::Easy3D::EPointCloud::AllocateCustomAttributeBufferFloat ( float defaultValue)

Allocates the data to the new custom attribute buffer and fills it with default values.

Parameters
defaultValueThe value used to set the attribute initially and when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

◆ AllocateCustomAttributeBufferInt32()

int eVision::Easy3D::EPointCloud::AllocateCustomAttributeBufferInt32 ( int32_t defaultValue)

Allocates the data to the new custom attribute buffer and fills it with default values.

Parameters
defaultValueThe value used to set the attribute initially and when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

◆ AllocateCustomAttributeBufferUInt16()

int eVision::Easy3D::EPointCloud::AllocateCustomAttributeBufferUInt16 ( uint16_t defaultValue)

Allocates the data to the new custom attribute buffer and fills it with default values.

Parameters
defaultValueThe value used to set the attribute initially and when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

◆ AllocateCustomAttributeBufferUInt32()

int eVision::Easy3D::EPointCloud::AllocateCustomAttributeBufferUInt32 ( uint32_t defaultValue)

Allocates the data to the new custom attribute buffer and fills it with default values.

Parameters
defaultValueThe value used to set the attribute initially and when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

◆ AllocateCustomAttributeBufferUInt8()

int eVision::Easy3D::EPointCloud::AllocateCustomAttributeBufferUInt8 ( uint8_t defaultValue)

Allocates the data to the new custom attribute buffer and fills it with default values.

Parameters
defaultValueThe value used to set the attribute initially and when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

◆ Clear()

void eVision::Easy3D::EPointCloud::Clear ( )

Empties the EPointCloud.

◆ ClearAttributeBuffer()

void eVision::Easy3D::EPointCloud::ClearAttributeBuffer ( int attribute)

Empties the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.

If the attribute buffer was a custom attribute, the id is not valid after the call to the method as the buffer will have been deallocated.

◆ ClosestPointToLine()

eVision::Easy3D::E3DClosestPoint eVision::Easy3D::EPointCloud::ClosestPointToLine ( const eVision::Easy3D::E3DPoint & origin,
const eVision::Easy3D::E3DPoint & end )

Returns the closest point, its index and the distance between the EPointCloud and a line represented by 2 E3DPoint.

Parameters
originOne endpoint of the line.
endThe other endpoint of the line.

◆ ClosestPointToSegment()

eVision::Easy3D::E3DClosestPoint eVision::Easy3D::EPointCloud::ClosestPointToSegment ( const eVision::Easy3D::E3DPoint & origin,
const eVision::Easy3D::E3DPoint & end )

Returns the closest point, its index and the distance between the EPointCloud and a segment represented by 2 E3DPoint.

Parameters
originOne endpoint of the segment.
endThe other endpoint of the segment.

◆ ComputeNormalsAndCurvatures() [1/3]

void eVision::Easy3D::EPointCloud::ComputeNormalsAndCurvatures ( )

Compute the normals of the cloud's points by fitting a plane on the 10 neighbors points. This method does not allow to compute the sign of the normals (we can't determine if a normal is x,y,z or -x,-y,-z).

The curvatures of the points will be computed when the computeCurvatures argument is set to true.

The normals are stored in the E3DAttribute::E3DAttribute_Normal attribute buffer and the curvatures in the E3DAttribute::E3DAttribute_Curvature attribute buffer (if requested).

◆ ComputeNormalsAndCurvatures() [2/3]

void eVision::Easy3D::EPointCloud::ComputeNormalsAndCurvatures ( bool computeCurvatures)

Compute the normals of the cloud's points by fitting a plane on the 10 neighbors points. This method does not allow to compute the sign of the normals (we can't determine if a normal is x,y,z or -x,-y,-z).

The curvatures of the points will be computed when the computeCurvatures argument is set to true.

Parameters
computeCurvaturesSet to true to compute the local curvatures (numbers between 0 for a plane and 1/3 for random noise) of each point as well.

The normals are stored in the E3DAttribute::E3DAttribute_Normal attribute buffer and the curvatures in the E3DAttribute::E3DAttribute_Curvature attribute buffer (if requested).

◆ ComputeNormalsAndCurvatures() [3/3]

void eVision::Easy3D::EPointCloud::ComputeNormalsAndCurvatures ( bool computeCurvatures,
uint32_t nbAdditionalNeighborsForCurvatures )

Compute the normals of the cloud's points by fitting a plane on the 10 neighbors points. This method does not allow to compute the sign of the normals (we can't determine if a normal is x,y,z or -x,-y,-z).

The curvatures of the points will be computed when the computeCurvatures argument is set to true.

Parameters
computeCurvaturesSet to true to compute the local curvatures (numbers between 0 for a plane and 1/3 for random noise) of each point as well.
nbAdditionalNeighborsForCurvaturesEach curvature is computed using 10 + nbAdditionalNeighborsForCurvatures points.

The normals are stored in the E3DAttribute::E3DAttribute_Normal attribute buffer and the curvatures in the E3DAttribute::E3DAttribute_Curvature attribute buffer (if requested).

◆ ComputePlaneBehind() [1/2]

eVision::Easy3D::E3DPlane eVision::Easy3D::EPointCloud::ComputePlaneBehind ( eVision::Easy3D::E3DPoint normal) const

Returns the E3DPlane with given normal on which the EPointCloud lays. This is useful when projecting an EPointCloud on an EZMap.

Parameters
normalThe normal of the plane.

◆ ComputePlaneBehind() [2/2]

eVision::Easy3D::E3DPlane eVision::Easy3D::EPointCloud::ComputePlaneBehind ( eVision::Easy3D::E3DPoint normal,
float margin ) const

Returns the E3DPlane with given normal on which the EPointCloud lays. This is useful when projecting an EPointCloud on an EZMap.

Parameters
normalThe normal of the plane.
marginLet P be the plane, A point of the EPointCloud closest to P and B the point of the EPointCloud furthest to P. margin = dist(P, A) / dist(P, B). Must be positive. Default: 0.02.

◆ CopyAllAttributesTo()

void eVision::Easy3D::EPointCloud::CopyAllAttributesTo ( eVision::Easy3D::EPointCloud & dstCloud,
uint32_t dstIndex,
uint32_t srcIndex ) const

Copies all attributes at a given index from one EPointCloud to another one.

Parameters
dstCloudThe EPointCloud where the attributes are copied.
dstIndexThe index of the destination EPointCloud.
srcIndexThe index of the source EPointCloud.

An attribute is copied only if both attribute buffers are initialized. If both attribute types are not the same, then a conversion is done (if possible). This function does not perform an allocation. To add a new point with all its attributes to another EPointCloud, use function EPointCloud::AddPointAndAttributesTo.

◆ DistanceToLine() [1/2]

float eVision::Easy3D::EPointCloud::DistanceToLine ( const eVision::Easy3D::E3DPoint & origin,
const eVision::Easy3D::E3DPoint & end )

Returns the shortest distance between an E3DPoint of the EPointCloud and a line represented by 2 E3DPoint.

Parameters
originOne point of the line.
endThe other point of the line.

◆ DistanceToLine() [2/2]

float eVision::Easy3D::EPointCloud::DistanceToLine ( const eVision::Easy3D::E3DPoint & origin,
const eVision::Easy3D::E3DPoint & end,
eVision::Easy3D::E3DPoint & closest,
int & closestIndex )

Returns the shortest distance between an E3DPoint of the EPointCloud and a line represented by 2 E3DPoint.

Parameters
originOne point of the line.
endThe other point of the line.
closestWhere the closest point will be stored.
closestIndexWhere the index of the closest point will be stored.
Deprecated

Use EPointCloud::ClosestPointToLine instead.

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

◆ DistanceToSegment() [1/2]

float eVision::Easy3D::EPointCloud::DistanceToSegment ( const eVision::Easy3D::E3DPoint & origin,
const eVision::Easy3D::E3DPoint & end )

Returns the shortest distance between an E3DPoint of the EPointCloud and a segment represented by 2 E3DPoint.

Parameters
originOne endpoint of the segment.
endThe other endpoint of the segment.

◆ DistanceToSegment() [2/2]

float eVision::Easy3D::EPointCloud::DistanceToSegment ( const eVision::Easy3D::E3DPoint & origin,
const eVision::Easy3D::E3DPoint & end,
eVision::Easy3D::E3DPoint & closest,
int & closestIndex )

Returns the shortest distance between an E3DPoint of the EPointCloud and a segment represented by 2 E3DPoint.

Parameters
originOne endpoint of the segment.
endThe other endpoint of the segment.
closestWhere the closest point will be stored.
closestIndexWhere the index of the closest point will be stored.
Deprecated

Use EPointCloud::ClosestPointToSegment instead.

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

◆ FillAttributeBuffer() [1/16]

void eVision::Easy3D::EPointCloud::FillAttributeBuffer ( int attribute,
const std::vector< double > & data )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

Deprecated

Use EPointCloud::FillAttributeBufferDouble.

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

◆ FillAttributeBuffer() [2/16]

void eVision::Easy3D::EPointCloud::FillAttributeBuffer ( int attribute,
const std::vector< double > & data,
double defaultValue )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

Deprecated

Use EPointCloud::FillAttributeBufferDouble.

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

◆ FillAttributeBuffer() [3/16]

void eVision::Easy3D::EPointCloud::FillAttributeBuffer ( int attribute,
const std::vector< eVision::Easy3D::E3DPoint > & data )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

Deprecated

Use EPointCloud::FillAttributeBufferE3DPoint.

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

◆ FillAttributeBuffer() [4/16]

void eVision::Easy3D::EPointCloud::FillAttributeBuffer ( int attribute,
const std::vector< eVision::Easy3D::E3DPoint > & data,
const eVision::Easy3D::E3DPoint & defaultValue )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

Deprecated

Use EPointCloud::FillAttributeBufferE3DPoint.

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

◆ FillAttributeBuffer() [5/16]

void eVision::Easy3D::EPointCloud::FillAttributeBuffer ( int attribute,
const std::vector< eVision::EC24A > & data )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

Deprecated

Use EPointCloud::FillAttributeBufferEC24A.

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

◆ FillAttributeBuffer() [6/16]

void eVision::Easy3D::EPointCloud::FillAttributeBuffer ( int attribute,
const std::vector< eVision::EC24A > & data,
const eVision::EC24A & defaultValue )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

Deprecated

Use EPointCloud::FillAttributeBufferEC24A.

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

◆ FillAttributeBuffer() [7/16]

void eVision::Easy3D::EPointCloud::FillAttributeBuffer ( int attribute,
const std::vector< float > & data )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

Deprecated

Use EPointCloud::FillAttributeBufferFloat.

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

◆ FillAttributeBuffer() [8/16]

void eVision::Easy3D::EPointCloud::FillAttributeBuffer ( int attribute,
const std::vector< float > & data,
float defaultValue )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

Deprecated

Use EPointCloud::FillAttributeBufferFloat.

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

◆ FillAttributeBuffer() [9/16]

void eVision::Easy3D::EPointCloud::FillAttributeBuffer ( int attribute,
const std::vector< int32_t > & data )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

Deprecated

Use EPointCloud::FillAttributeBufferInt32.

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

◆ FillAttributeBuffer() [10/16]

void eVision::Easy3D::EPointCloud::FillAttributeBuffer ( int attribute,
const std::vector< int32_t > & data,
int32_t defaultValue )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

Deprecated

Use EPointCloud::FillAttributeBufferInt32.

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

◆ FillAttributeBuffer() [11/16]

void eVision::Easy3D::EPointCloud::FillAttributeBuffer ( int attribute,
const std::vector< uint16_t > & data )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

Deprecated

Use EPointCloud::FillAttributeBufferUInt16.

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

◆ FillAttributeBuffer() [12/16]

void eVision::Easy3D::EPointCloud::FillAttributeBuffer ( int attribute,
const std::vector< uint16_t > & data,
uint16_t defaultValue )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

Deprecated

Use EPointCloud::FillAttributeBufferUInt16.

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

◆ FillAttributeBuffer() [13/16]

void eVision::Easy3D::EPointCloud::FillAttributeBuffer ( int attribute,
const std::vector< uint32_t > & data )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

Deprecated

Use EPointCloud::FillAttributeBufferUInt32.

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

◆ FillAttributeBuffer() [14/16]

void eVision::Easy3D::EPointCloud::FillAttributeBuffer ( int attribute,
const std::vector< uint32_t > & data,
uint32_t defaultValue )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

Deprecated

Use EPointCloud::FillAttributeBufferUInt32.

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

◆ FillAttributeBuffer() [15/16]

void eVision::Easy3D::EPointCloud::FillAttributeBuffer ( int attribute,
const std::vector< uint8_t > & data )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

Deprecated

Use EPointCloud::FillAttributeBufferUInt8.

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

◆ FillAttributeBuffer() [16/16]

void eVision::Easy3D::EPointCloud::FillAttributeBuffer ( int attribute,
const std::vector< uint8_t > & data,
uint8_t defaultValue )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

Deprecated

Use EPointCloud::FillAttributeBufferUInt8.

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

◆ FillAttributeBufferDouble() [1/2]

void eVision::Easy3D::EPointCloud::FillAttributeBufferDouble ( int attribute,
const std::vector< double > & data )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

◆ FillAttributeBufferDouble() [2/2]

void eVision::Easy3D::EPointCloud::FillAttributeBufferDouble ( int attribute,
const std::vector< double > & data,
double defaultValue )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

◆ FillAttributeBufferE3DPoint() [1/2]

void eVision::Easy3D::EPointCloud::FillAttributeBufferE3DPoint ( int attribute,
const std::vector< eVision::Easy3D::E3DPoint > & data )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

◆ FillAttributeBufferE3DPoint() [2/2]

void eVision::Easy3D::EPointCloud::FillAttributeBufferE3DPoint ( int attribute,
const std::vector< eVision::Easy3D::E3DPoint > & data,
const eVision::Easy3D::E3DPoint & defaultValue )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

◆ FillAttributeBufferEC24A() [1/2]

void eVision::Easy3D::EPointCloud::FillAttributeBufferEC24A ( int attribute,
const std::vector< eVision::EC24A > & data )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

◆ FillAttributeBufferEC24A() [2/2]

void eVision::Easy3D::EPointCloud::FillAttributeBufferEC24A ( int attribute,
const std::vector< eVision::EC24A > & data,
const eVision::EC24A & defaultValue )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

◆ FillAttributeBufferFloat() [1/2]

void eVision::Easy3D::EPointCloud::FillAttributeBufferFloat ( int attribute,
const std::vector< float > & data )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

◆ FillAttributeBufferFloat() [2/2]

void eVision::Easy3D::EPointCloud::FillAttributeBufferFloat ( int attribute,
const std::vector< float > & data,
float defaultValue )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

◆ FillAttributeBufferInt32() [1/2]

void eVision::Easy3D::EPointCloud::FillAttributeBufferInt32 ( int attribute,
const std::vector< int32_t > & data )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

◆ FillAttributeBufferInt32() [2/2]

void eVision::Easy3D::EPointCloud::FillAttributeBufferInt32 ( int attribute,
const std::vector< int32_t > & data,
int32_t defaultValue )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

◆ FillAttributeBufferUInt16() [1/2]

void eVision::Easy3D::EPointCloud::FillAttributeBufferUInt16 ( int attribute,
const std::vector< uint16_t > & data )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

◆ FillAttributeBufferUInt16() [2/2]

void eVision::Easy3D::EPointCloud::FillAttributeBufferUInt16 ( int attribute,
const std::vector< uint16_t > & data,
uint16_t defaultValue )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

◆ FillAttributeBufferUInt32() [1/2]

void eVision::Easy3D::EPointCloud::FillAttributeBufferUInt32 ( int attribute,
const std::vector< uint32_t > & data )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

◆ FillAttributeBufferUInt32() [2/2]

void eVision::Easy3D::EPointCloud::FillAttributeBufferUInt32 ( int attribute,
const std::vector< uint32_t > & data,
uint32_t defaultValue )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

◆ FillAttributeBufferUInt8() [1/2]

void eVision::Easy3D::EPointCloud::FillAttributeBufferUInt8 ( int attribute,
const std::vector< uint8_t > & data )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

◆ FillAttributeBufferUInt8() [2/2]

void eVision::Easy3D::EPointCloud::FillAttributeBufferUInt8 ( int attribute,
const std::vector< uint8_t > & data,
uint8_t defaultValue )

Allocates and copies the data to the attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
dataThe address of the external attribute buffer. The buffer should be of the same length as the EPointCloud (see EPointCloud::GetNumPoints).
defaultValueThe value used to set the attribute when the EPointCloud grows (see EPointCloud::AddPoint, EPointCloud::AddPoints and EPointCloud::AddPointCloud).

If the data type is not correct depending on the E3DAttribute, it throws an EException with an EError::EError_InvalidDataType. An exception is also thrown if data is nullptr, if you don't want to specify the data, use AllocateAttributeBufferXXX.

◆ FillPointsBuffer()

void eVision::Easy3D::EPointCloud::FillPointsBuffer ( void * pointsBuffer,
int32_t numPoints )

Copies an external points buffer into the internal points buffer.

Parameters
pointsBufferAddress of the external points buffer.
numPointsNumber of points in the external points buffer.

The buffer must contain points in the form of triplets of 32bits floats stored in the (X,Y,Z) order. The points that contain nan or inf values are not copied.

◆ GetAttribute() [1/8]

void eVision::Easy3D::EPointCloud::GetAttribute ( int attribute,
uint32_t index,
double & value ) const

Retrieve the value of an attribute.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueWhere the attribute value will be stored.

If the attribute has not been initialized or if the index is out of bound, it throws an EException.

Deprecated

Use EPointCloud::GetAttributeDouble instead.

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

◆ GetAttribute() [2/8]

void eVision::Easy3D::EPointCloud::GetAttribute ( int attribute,
uint32_t index,
eVision::Easy3D::E3DPoint & value ) const

Retrieve the value of an attribute.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueWhere the attribute value will be stored.

If the attribute has not been initialized or if the index is out of bound, it throws an EException.

Deprecated

Use EPointCloud::GetAttributeE3DPoint instead.

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

◆ GetAttribute() [3/8]

void eVision::Easy3D::EPointCloud::GetAttribute ( int attribute,
uint32_t index,
eVision::EC24A & value ) const

Retrieve the value of an attribute.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueWhere the attribute value will be stored.

If the attribute has not been initialized or if the index is out of bound, it throws an EException.

Deprecated

Use EPointCloud::GetAttributeEC24A instead.

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

◆ GetAttribute() [4/8]

void eVision::Easy3D::EPointCloud::GetAttribute ( int attribute,
uint32_t index,
float & value ) const

Retrieve the value of an attribute.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueWhere the attribute value will be stored.

If the attribute has not been initialized or if the index is out of bound, it throws an EException.

Deprecated

Use EPointCloud::GetAttributeFloat instead.

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

◆ GetAttribute() [5/8]

void eVision::Easy3D::EPointCloud::GetAttribute ( int attribute,
uint32_t index,
int32_t & value ) const

Retrieve the value of an attribute.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueWhere the attribute value will be stored.

If the attribute has not been initialized or if the index is out of bound, it throws an EException.

Deprecated

Use EPointCloud::GetAttributeInt32 instead.

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

◆ GetAttribute() [6/8]

void eVision::Easy3D::EPointCloud::GetAttribute ( int attribute,
uint32_t index,
uint16_t & value ) const

Retrieve the value of an attribute.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueWhere the attribute value will be stored.

If the attribute has not been initialized or if the index is out of bound, it throws an EException.

Deprecated

Use EPointCloud::GetAttributeUInt16 instead.

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

◆ GetAttribute() [7/8]

void eVision::Easy3D::EPointCloud::GetAttribute ( int attribute,
uint32_t index,
uint32_t & value ) const

Retrieve the value of an attribute.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueWhere the attribute value will be stored.

If the attribute has not been initialized or if the index is out of bound, it throws an EException.

Deprecated

Use EPointCloud::GetAttributeUInt32 instead.

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

◆ GetAttribute() [8/8]

void eVision::Easy3D::EPointCloud::GetAttribute ( int attribute,
uint32_t index,
uint8_t & value ) const

Retrieve the value of an attribute.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueWhere the attribute value will be stored.

If the attribute has not been initialized or if the index is out of bound, it throws an EException.

Deprecated

Use EPointCloud::GetAttributeUInt8 instead.

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

◆ GetAttributeBuffer()

const void * eVision::Easy3D::EPointCloud::GetAttributeBuffer ( int attribute) const

Retrieves a pointer to the internal attribute buffer.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.

If the attribute has not been initialized, it throws an EException.

◆ GetAttributeBufferType()

eVision::Easy3D::EAttributeType eVision::Easy3D::EPointCloud::GetAttributeBufferType ( int attribute) const

Returns the EAttributeType corresponding to the E3DAttribute.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.

◆ GetAttributeDouble()

double eVision::Easy3D::EPointCloud::GetAttributeDouble ( int attribute,
uint32_t index ) const

Retrieve the value of a double attribute.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.

If the attribute has not been initialized or if the index is out of bound, it throws an EException.

◆ GetAttributeE3DPoint()

eVision::Easy3D::E3DPoint eVision::Easy3D::EPointCloud::GetAttributeE3DPoint ( int attribute,
uint32_t index ) const

Retrieve the value of an E3DPoint attribute.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.

If the attribute has not been initialized or if the index is out of bound, it throws an EException.

◆ GetAttributeEC24A()

eVision::EC24A eVision::Easy3D::EPointCloud::GetAttributeEC24A ( int attribute,
uint32_t index ) const

Retrieve the value of an EC24A attribute.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.

If the attribute has not been initialized or if the index is out of bound, it throws an EException.

◆ GetAttributeFloat()

float eVision::Easy3D::EPointCloud::GetAttributeFloat ( int attribute,
uint32_t index ) const

Retrieve the value of a float attribute.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.

If the attribute has not been initialized or if the index is out of bound, it throws an EException.

◆ GetAttributeInt32()

int32_t eVision::Easy3D::EPointCloud::GetAttributeInt32 ( int attribute,
uint32_t index ) const

Retrieve the value of an int32 attribute.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.

If the attribute has not been initialized or if the index is out of bound, it throws an EException.

◆ GetAttributeUInt16()

uint16_t eVision::Easy3D::EPointCloud::GetAttributeUInt16 ( int attribute,
uint32_t index ) const

Retrieve the value of an uint16 attribute.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.

If the attribute has not been initialized or if the index is out of bound, it throws an EException.

◆ GetAttributeUInt32()

uint32_t eVision::Easy3D::EPointCloud::GetAttributeUInt32 ( int attribute,
uint32_t index ) const

Retrieve the value of an uint32 attribute.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.

If the attribute has not been initialized or if the index is out of bound, it throws an EException.

◆ GetAttributeUInt8()

uint8_t eVision::Easy3D::EPointCloud::GetAttributeUInt8 ( int attribute,
uint32_t index ) const

Retrieve the value of an uint8 attribute.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.

If the attribute has not been initialized or if the index is out of bound, it throws an EException.

◆ GetEnableSpacePartition()

bool eVision::Easy3D::EPointCloud::GetEnableSpacePartition ( ) const

Sets/Gets the status of space partitioning when computing distance to Segments and Lines. Space partitioning is a way to speed up the geometric queries on EPointCloud. The affected methods are EPointCloud::DistanceToSegment, EPointCloud::DistanceToLine. By default, space partition is disabled for these two methods.

See also EPointCloud::PrepareSpacePartition. For EPointCloud::ComputeNormalsAndCurvatures, the same space partition is used but it cannot be disabled as using it is always faster.

◆ GetInitializedAttributes()

void eVision::Easy3D::EPointCloud::GetInitializedAttributes ( std::vector< int > & attributes) const

Fills the vector with the ids (in growing order) of all the attributes that have been initialized.

Parameters
attributesThe vector that will contain the initialized attributes id.

◆ GetNumPoints()

int eVision::Easy3D::EPointCloud::GetNumPoints ( ) const

Number of points in the EPointCloud.

◆ GetPoint()

eVision::Easy3D::E3DPoint eVision::Easy3D::EPointCloud::GetPoint ( unsigned int index) const

Retrieves a point from the EPointCloud.

Parameters
indexIndex of the point to be retrieved.

◆ GetPointsBuffer() [1/2]

void * eVision::Easy3D::EPointCloud::GetPointsBuffer ( )

Retrieves a pointer to the internal points buffer.

◆ GetPointsBuffer() [2/2]

const void * eVision::Easy3D::EPointCloud::GetPointsBuffer ( ) const

Retrieves a pointer to the internal points buffer.

◆ HasAttributeBuffer()

bool eVision::Easy3D::EPointCloud::HasAttributeBuffer ( int attribute) const

Returns true if a buffer of the given E3DAttribute exists in the point cloud.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.

◆ Load() [1/2]

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

Loads the EPointCloud. Supported formats are eVision proprietary, CSV, OBJ, PCD, PLY and XYZ. The given ESerializer must have been created for reading.

Parameters
pathThe file path.

◆ Load() [2/2]

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

Loads the EPointCloud. Supported formats are eVision proprietary, CSV, OBJ, PCD, PLY and XYZ. The given ESerializer must have been created for reading.

Parameters
serializerThe ESerializer object that is read from.

◆ LoadCSV() [1/2]

void eVision::Easy3D::EPointCloud::LoadCSV ( const std::string & path)

Loads an EPointCloud stored in the CSV (Comma-Separated Values) file format.

Parameters
pathThe full path of the input file.

Only the x,y,z coordinates of the points of the pointcloud are loaded. Use pcd or ply if you need more.

There is no standard for pointcloud in CSV file format. To be correctly read, the file needs to have at least the components (x, y, z) and each value must be separated by a comma. An acceptable file could be: x, y, z x1, y1, z1 x2, y2, z2 x3, y3, z3

Other components can be in the file and the order of the elements may differs from the example as long as it is defined in the header. Note that files containing series of profile frames (i.e. only containing z-values) are not supported.

Use EPointCloud::SaveCSV to save to CSV file.

◆ LoadCSV() [2/2]

void eVision::Easy3D::EPointCloud::LoadCSV ( const std::string & path,
const eVision::EFloatRange & undefinedZValues )

Loads an EPointCloud stored in the CSV (Comma-Separated Values) file format.

Parameters
pathThe full path of the input file.
undefinedZValuesOptional parameter, discard the points with Z value in the given range.

Only the x,y,z coordinates of the points of the pointcloud are loaded. Use pcd or ply if you need more.

There is no standard for pointcloud in CSV file format. To be correctly read, the file needs to have at least the components (x, y, z) and each value must be separated by a comma. An acceptable file could be: x, y, z x1, y1, z1 x2, y2, z2 x3, y3, z3

Other components can be in the file and the order of the elements may differs from the example as long as it is defined in the header. Note that files containing series of profile frames (i.e. only containing z-values) are not supported.

Use EPointCloud::SaveCSV to save to CSV file.

◆ LoadOBJ() [1/2]

void eVision::Easy3D::EPointCloud::LoadOBJ ( const std::string & path)

Loads an EPointCloud stored in the OBJ file format.

Parameters
pathThe full path of the input file.

The OBJ file format is documented here.

The only attribute loaded in the obj file format is the normals. Use pcd or ply if you need more.

Use EPointCloud::SaveOBJ to save to OBJ file.

◆ LoadOBJ() [2/2]

void eVision::Easy3D::EPointCloud::LoadOBJ ( const std::string & path,
const eVision::EFloatRange & undefinedZValues )

Loads an EPointCloud stored in the OBJ file format.

Parameters
pathThe full path of the input file.
undefinedZValuesOptional parameter, discard the points with Z value in the given range.

The OBJ file format is documented here.

The only attribute loaded in the obj file format is the normals. Use pcd or ply if you need more.

Use EPointCloud::SaveOBJ to save to OBJ file.

◆ LoadPCD() [1/2]

void eVision::Easy3D::EPointCloud::LoadPCD ( const std::string & path)

Loads an EPointCloud stored in the PCD (Point Cloud Library) file format.

ASCII, binary and binary_compressed formats are supported.

Parameters
pathThe full path of the input file.

The PCD file format is documented here.

When loading PCD files:

  • columns where the field COUNT is not set to 1 are ignored
  • in ascii files, all numbers are assumed to be written in base 10
  • file is assumed to contain at least the floating point fields x, y and z. They mustn't be the first but have to be consecutive. If one of these points is nan, inf or too big to be represented on a float, the line is ignored. These points can be double but are stored internally as float.
  • the other columns are loaded as user-custom attributes unless they match the specifications of our particular attributes
  • a column representing a color must have as suffix "_C" and be of type uint32 or float, they are bitwise encoded as a combination of uint8 in the form argb (uint32) or _rgb (float). Otherwise it is loaded as an uint32/float column.
  • columns representing an E3DPoint must have as suffixes "_x", "_y", "_z", be consecutive and of float/double type. They are stored as float in both cases. Otherwise they are loaded as 3 float/double columns.
  • we do not have internal int16 or int8 types so those are converted to int32 types.

The particular attributes we define and the conditions to be parsed as one are:

  • E3DAttribute_Color: name must be rgb (in which case alpha is not read and set to 255) or rgba, encoding must correspond to a color.
  • E3DAttribute_Normal: names must be (normal_x, normal_y and normal_z) or (nx, ny and nz), encoding must correspond to a point.
  • E3DAttribute_Intensity: name must be intensity, intensity must be a numeric type.
  • E3DAttribute_Texture: name must be texture (with corresponding suffixes if type is color or point).
  • E3DAttribute_Index: name must be index and type uint32 or int32.
  • E3DAttribute_Confidence: name must be confidence and type should be float or double (but is converted internally to float).
  • E3DAttribute_Distance: name must be distance and type should be float or double (but is converted internally to float).

Use EPointCloud::SavePCD to save to PCD file.

◆ LoadPCD() [2/2]

void eVision::Easy3D::EPointCloud::LoadPCD ( const std::string & path,
const eVision::EFloatRange & undefinedZValues )

Loads an EPointCloud stored in the PCD (Point Cloud Library) file format.

ASCII, binary and binary_compressed formats are supported.

Parameters
pathThe full path of the input file.
undefinedZValuesOptional parameter, discard the points with Z value in the given range.

The PCD file format is documented here.

When loading PCD files:

  • columns where the field COUNT is not set to 1 are ignored
  • in ascii files, all numbers are assumed to be written in base 10
  • file is assumed to contain at least the floating point fields x, y and z. They mustn't be the first but have to be consecutive. If one of these points is nan, inf or too big to be represented on a float, the line is ignored. These points can be double but are stored internally as float.
  • the other columns are loaded as user-custom attributes unless they match the specifications of our particular attributes
  • a column representing a color must have as suffix "_C" and be of type uint32 or float, they are bitwise encoded as a combination of uint8 in the form argb (uint32) or _rgb (float). Otherwise it is loaded as an uint32/float column.
  • columns representing an E3DPoint must have as suffixes "_x", "_y", "_z", be consecutive and of float/double type. They are stored as float in both cases. Otherwise they are loaded as 3 float/double columns.
  • we do not have internal int16 or int8 types so those are converted to int32 types.

The particular attributes we define and the conditions to be parsed as one are:

  • E3DAttribute_Color: name must be rgb (in which case alpha is not read and set to 255) or rgba, encoding must correspond to a color.
  • E3DAttribute_Normal: names must be (normal_x, normal_y and normal_z) or (nx, ny and nz), encoding must correspond to a point.
  • E3DAttribute_Intensity: name must be intensity, intensity must be a numeric type.
  • E3DAttribute_Texture: name must be texture (with corresponding suffixes if type is color or point).
  • E3DAttribute_Index: name must be index and type uint32 or int32.
  • E3DAttribute_Confidence: name must be confidence and type should be float or double (but is converted internally to float).
  • E3DAttribute_Distance: name must be distance and type should be float or double (but is converted internally to float).

Use EPointCloud::SavePCD to save to PCD file.

◆ LoadPLY() [1/2]

void eVision::Easy3D::EPointCloud::LoadPLY ( const std::string & path)

Loads an EPointCloud stored in the PLY file format.

Parameters
pathThe full path of the input file.

The PLY file format is documented here.

When loading PLY files:

  • in ascii files, all numbers are assumed to be written in base 10
  • file is assumed to contain at least the floating point fields x, y and z. They mustn't be the first but have to be consecutive. If one of these points is nan, inf or too big to be represented on a float, the line is ignored. These points can be double but are stored internally as float.
  • the other columns are loaded as user-custom attributes unless they match the specifications of our particular attributes
  • the 3(4) columns representing a color must be of type uchar and end with _red, _green, _blue (, _alpha). They must be consecutive and in the red, green, blue (alpha) order.
  • columns representing an E3DPoint must have as suffixes "_x", "_y", "_z", be consecutive and of float type. They are stored as float in both cases. Otherwise they are loaded as 3 float columns.
  • we do not have internal int16 or int8 types so those are converted to int32 types.

The particular attributes we define and the conditions to be parsed as one are:

  • E3DAttribute_Color: names must be red, green, blue (alpha), encoding must correspond to a color.
  • E3DAttribute_Normal: names must be (nx, ny and nz) or (normal_x, normal_y and normal_z), encoding must correspond to a point.
  • E3DAttribute_Intensity: name must be intensity, intensity must be a numeric type.
  • E3DAttribute_Texture: name must be texture (with corresponding suffixes if type is color or point).
  • E3DAttribute_Index: name must be index and type uint32 or int32.
  • E3DAttribute_Confidence: name must be confidence and type should be float or double (but is converted internally to float).
  • E3DAttribute_Distance: name must be distance and type should be float or double (but is converted internally to float).

Use EPointCloud::SavePLY to save to PLY file.

◆ LoadPLY() [2/2]

void eVision::Easy3D::EPointCloud::LoadPLY ( const std::string & path,
const eVision::EFloatRange & undefinedZValues )

Loads an EPointCloud stored in the PLY file format.

Parameters
pathThe full path of the input file.
undefinedZValuesOptional parameter, discard the points with Z value in the given range.

The PLY file format is documented here.

When loading PLY files:

  • in ascii files, all numbers are assumed to be written in base 10
  • file is assumed to contain at least the floating point fields x, y and z. They mustn't be the first but have to be consecutive. If one of these points is nan, inf or too big to be represented on a float, the line is ignored. These points can be double but are stored internally as float.
  • the other columns are loaded as user-custom attributes unless they match the specifications of our particular attributes
  • the 3(4) columns representing a color must be of type uchar and end with _red, _green, _blue (, _alpha). They must be consecutive and in the red, green, blue (alpha) order.
  • columns representing an E3DPoint must have as suffixes "_x", "_y", "_z", be consecutive and of float type. They are stored as float in both cases. Otherwise they are loaded as 3 float columns.
  • we do not have internal int16 or int8 types so those are converted to int32 types.

The particular attributes we define and the conditions to be parsed as one are:

  • E3DAttribute_Color: names must be red, green, blue (alpha), encoding must correspond to a color.
  • E3DAttribute_Normal: names must be (nx, ny and nz) or (normal_x, normal_y and normal_z), encoding must correspond to a point.
  • E3DAttribute_Intensity: name must be intensity, intensity must be a numeric type.
  • E3DAttribute_Texture: name must be texture (with corresponding suffixes if type is color or point).
  • E3DAttribute_Index: name must be index and type uint32 or int32.
  • E3DAttribute_Confidence: name must be confidence and type should be float or double (but is converted internally to float).
  • E3DAttribute_Distance: name must be distance and type should be float or double (but is converted internally to float).

Use EPointCloud::SavePLY to save to PLY file.

◆ LoadXYZ() [1/2]

void eVision::Easy3D::EPointCloud::LoadXYZ ( const std::string & path)

Loads an EPointCloud stored in the XYZ file format.

Parameters
pathThe full path of the input file.

Only the x,y,z coordinates of the points of the pointcloud are loaded. Use pcd or ply if you need more. Use EPointCloud::SaveXYZ to save to XYZ file.

◆ LoadXYZ() [2/2]

void eVision::Easy3D::EPointCloud::LoadXYZ ( const std::string & path,
const eVision::EFloatRange & undefinedZValues )

Loads an EPointCloud stored in the XYZ file format.

Parameters
pathThe full path of the input file.
undefinedZValuesOptional parameter, discard the points with Z value in the given range.

Only the x,y,z coordinates of the points of the pointcloud are loaded. Use pcd or ply if you need more. Use EPointCloud::SaveXYZ to save to XYZ file.

◆ operator=()

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

Assignment operator.

Parameters
otherThe EPointCloud object that should be copied.

◆ PrepareSpacePartition()

void eVision::Easy3D::EPointCloud::PrepareSpacePartition ( )

Enables the build of the space partition (like EPointCloud::SetEnableSpacePartition) and builds it now instead of when it is first needed. The computation time of the space partition depends on the number of points in the point cloud.

See also EPointCloud::SetEnableSpacePartition.

◆ RemovePoint()

void eVision::Easy3D::EPointCloud::RemovePoint ( uint32_t index)

Removes a point and its corresponding attributes from the EPointCloud.

Parameters
indexThe index of the point to remove.

◆ Save() [1/2]

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

Saves the EPointCloud. Supported formats are eVision proprietary, CSV, OBJ, PCD, PLY and XYZ. The given ESerializer must have been created for writing.

Parameters
pathThe file path.

◆ Save() [2/2]

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

Saves the EPointCloud. Supported formats are eVision proprietary, CSV, OBJ, PCD, PLY and XYZ. The given ESerializer must have been created for writing.

Parameters
serializerThe ESerializer object that is written to.

◆ SaveCSV()

void eVision::Easy3D::EPointCloud::SaveCSV ( const std::string & path) const

Saves the EPointCloud in the CSV (Comma-Separated Values) file format.

Parameters
pathThe full path of the destination file.

Only the x,y,z coordinates of the points of the pointcloud are saved. Use pcd or ply if you need more. Use EPointCloud::LoadCSV to load from CSV file.

◆ SaveOBJ()

void eVision::Easy3D::EPointCloud::SaveOBJ ( const std::string & path) const

Saves the EPointCloud in the OBJ file format.

Parameters
pathThe full path of the destination file.

The OBJ file format is documented here.

The only attribute saved in the obj file format is the normals. Use pcd or ply if you need more.

Use EPointCloud::LoadOBJ to load from OBJ file.

◆ SavePCD() [1/3]

void eVision::Easy3D::EPointCloud::SavePCD ( const std::string & path) const

Saves the EPointCloud in the PCD (Point Cloud Library) file format.

ASCII, binary and binary_compressed formats are available.

Parameters
pathThe full path of the destination file.

The PCD file format is documented here.

Custom user fields are named custom0, custom1,... Colors are saved as an uint32_t (alpha, red, green, blue) and custom attributes' names are suffixed with _C. Points are saved as 3 consecutive floats and custom attributes' names are suffixed with _x, _y, _z.

Use EPointCloud::LoadPCD to load from PCD file.

◆ SavePCD() [2/3]

void eVision::Easy3D::EPointCloud::SavePCD ( const std::string & path,
bool binary ) const

Saves the EPointCloud in the PCD (Point Cloud Library) file format.

ASCII, binary and binary_compressed formats are available.

Parameters
pathThe full path of the destination file.
binaryWhether to store the file in binary instead of ascii, defaults to true.

The PCD file format is documented here.

Custom user fields are named custom0, custom1,... Colors are saved as an uint32_t (alpha, red, green, blue) and custom attributes' names are suffixed with _C. Points are saved as 3 consecutive floats and custom attributes' names are suffixed with _x, _y, _z.

Use EPointCloud::LoadPCD to load from PCD file.

◆ SavePCD() [3/3]

void eVision::Easy3D::EPointCloud::SavePCD ( const std::string & path,
bool binary,
bool binaryCompressed ) const

Saves the EPointCloud in the PCD (Point Cloud Library) file format.

ASCII, binary and binary_compressed formats are available.

Parameters
pathThe full path of the destination file.
binaryWhether to store the file in binary instead of ascii, defaults to true.
binaryCompressedWhether to store the file in binary compressed format, defaults to false. If set to true, value of binary argument is ignored.

Note that, in some cases, applying LZF compression may result in a bigger buffer, in these cases, the cloud will be saved in binary format instead. The pcd file format specifies that the number of bytes used by the cloud must be an unsigned 32bits integer. If the point cloud's size is too large for this, the cloud will be saved in binary format instead.

The PCD file format is documented here.

Custom user fields are named custom0, custom1,... Colors are saved as an uint32_t (alpha, red, green, blue) and custom attributes' names are suffixed with _C. Points are saved as 3 consecutive floats and custom attributes' names are suffixed with _x, _y, _z.

Use EPointCloud::LoadPCD to load from PCD file.

◆ SavePLY() [1/2]

void eVision::Easy3D::EPointCloud::SavePLY ( const std::string & path) const

Saves the EPointCloud in the PLY file format.

Parameters
pathThe full path of the destination file.

The PLY file format is documented here.

Custom user fields are named custom0, custom1,... Colors are saved as 4 uchar fields suffixed with (_red, _green, _blue, _alpha) for custom attributes or named (red, green, blue, alpha) for the pointcloud's color attribute. Points are saved as 3 consecutive floats whose names are suffixed with _x, _y, _z.

Use EPointCloud::LoadPLY to load from PLY file.

◆ SavePLY() [2/2]

void eVision::Easy3D::EPointCloud::SavePLY ( const std::string & path,
bool binary ) const

Saves the EPointCloud in the PLY file format.

Parameters
pathThe full path of the destination file.
binaryWhether to store the file in binary instead of ascii, defaults to true.

The PLY file format is documented here.

Custom user fields are named custom0, custom1,... Colors are saved as 4 uchar fields suffixed with (_red, _green, _blue, _alpha) for custom attributes or named (red, green, blue, alpha) for the pointcloud's color attribute. Points are saved as 3 consecutive floats whose names are suffixed with _x, _y, _z.

Use EPointCloud::LoadPLY to load from PLY file.

◆ SaveXYZ()

void eVision::Easy3D::EPointCloud::SaveXYZ ( const std::string & path) const

Saves the EPointCloud in the XYZ file format.

Parameters
pathThe full path of the destination file.

Only the x,y,z coordinates of the points of the pointcloud are saved. Use pcd or ply if you need more. Use EPointCloud::LoadXYZ to load from XYZ file.

◆ SetAttribute() [1/8]

void eVision::Easy3D::EPointCloud::SetAttribute ( int attribute,
uint32_t index,
const eVision::Easy3D::E3DPoint & value )

Sets the corresponding attribute at the given index.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueThe new value of the element.

This function does not perform an allocation. To add a new point with some attributes in the EPointCloud, use functions EPointCloud::AddPoint or EPointCloud::AddPoints which will add default value(s) to the attribute buffers that are initialized. Then, they can be set with this function. If the attribute has not been initialized or if the index is out of bound, it throws an EException.

Deprecated

Use EPointCloud::SetAttributeE3DPoint.

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

◆ SetAttribute() [2/8]

void eVision::Easy3D::EPointCloud::SetAttribute ( int attribute,
uint32_t index,
const eVision::EC24A & value )

Sets the corresponding attribute at the given index.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueThe new value of the element.

This function does not perform an allocation. To add a new point with some attributes in the EPointCloud, use functions EPointCloud::AddPoint or EPointCloud::AddPoints which will add default value(s) to the attribute buffers that are initialized. Then, they can be set with this function. If the attribute has not been initialized or if the index is out of bound, it throws an EException.

Deprecated

Use EPointCloud::SetAttributeEC24A.

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

◆ SetAttribute() [3/8]

void eVision::Easy3D::EPointCloud::SetAttribute ( int attribute,
uint32_t index,
double value )

Sets the corresponding attribute at the given index.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueThe new value of the element.

This function does not perform an allocation. To add a new point with some attributes in the EPointCloud, use functions EPointCloud::AddPoint or EPointCloud::AddPoints which will add default value(s) to the attribute buffers that are initialized. Then, they can be set with this function. If the attribute has not been initialized or if the index is out of bound, it throws an EException.

Deprecated

Use EPointCloud::SetAttributeDouble.

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

◆ SetAttribute() [4/8]

void eVision::Easy3D::EPointCloud::SetAttribute ( int attribute,
uint32_t index,
float value )

Sets the corresponding attribute at the given index.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueThe new value of the element.

This function does not perform an allocation. To add a new point with some attributes in the EPointCloud, use functions EPointCloud::AddPoint or EPointCloud::AddPoints which will add default value(s) to the attribute buffers that are initialized. Then, they can be set with this function. If the attribute has not been initialized or if the index is out of bound, it throws an EException.

Deprecated

Use EPointCloud::SetAttributeFloat.

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

◆ SetAttribute() [5/8]

void eVision::Easy3D::EPointCloud::SetAttribute ( int attribute,
uint32_t index,
int32_t value )

Sets the corresponding attribute at the given index.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueThe new value of the element.

This function does not perform an allocation. To add a new point with some attributes in the EPointCloud, use functions EPointCloud::AddPoint or EPointCloud::AddPoints which will add default value(s) to the attribute buffers that are initialized. Then, they can be set with this function. If the attribute has not been initialized or if the index is out of bound, it throws an EException.

Deprecated

Use EPointCloud::SetAttributeInt32.

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

◆ SetAttribute() [6/8]

void eVision::Easy3D::EPointCloud::SetAttribute ( int attribute,
uint32_t index,
uint16_t value )

Sets the corresponding attribute at the given index.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueThe new value of the element.

This function does not perform an allocation. To add a new point with some attributes in the EPointCloud, use functions EPointCloud::AddPoint or EPointCloud::AddPoints which will add default value(s) to the attribute buffers that are initialized. Then, they can be set with this function. If the attribute has not been initialized or if the index is out of bound, it throws an EException.

Deprecated

Use EPointCloud::SetAttributeUInt16.

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

◆ SetAttribute() [7/8]

void eVision::Easy3D::EPointCloud::SetAttribute ( int attribute,
uint32_t index,
uint32_t value )

Sets the corresponding attribute at the given index.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueThe new value of the element.

This function does not perform an allocation. To add a new point with some attributes in the EPointCloud, use functions EPointCloud::AddPoint or EPointCloud::AddPoints which will add default value(s) to the attribute buffers that are initialized. Then, they can be set with this function. If the attribute has not been initialized or if the index is out of bound, it throws an EException.

Deprecated

Use EPointCloud::SetAttributeUInt32.

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

◆ SetAttribute() [8/8]

void eVision::Easy3D::EPointCloud::SetAttribute ( int attribute,
uint32_t index,
uint8_t value )

Sets the corresponding attribute at the given index.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueThe new value of the element.

This function does not perform an allocation. To add a new point with some attributes in the EPointCloud, use functions EPointCloud::AddPoint or EPointCloud::AddPoints which will add default value(s) to the attribute buffers that are initialized. Then, they can be set with this function. If the attribute has not been initialized or if the index is out of bound, it throws an EException.

Deprecated

Use EPointCloud::SetAttributeUInt8.

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

◆ SetAttributeDouble()

void eVision::Easy3D::EPointCloud::SetAttributeDouble ( int attribute,
uint32_t index,
double value )

Sets the corresponding attribute at the given index.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueThe new value of the element.

This function does not perform an allocation. To add a new point with some attributes in the EPointCloud, use functions EPointCloud::AddPoint or EPointCloud::AddPoints which will add default value(s) to the attribute buffers that are initialized. Then, they can be set with this function. If the attribute has not been initialized or if the index is out of bound, it throws an EException.

◆ SetAttributeE3DPoint()

void eVision::Easy3D::EPointCloud::SetAttributeE3DPoint ( int attribute,
uint32_t index,
const eVision::Easy3D::E3DPoint & value )

Sets the corresponding attribute at the given index.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueThe new value of the element.

This function does not perform an allocation. To add a new point with some attributes in the EPointCloud, use functions EPointCloud::AddPoint or EPointCloud::AddPoints which will add default value(s) to the attribute buffers that are initialized. Then, they can be set with this function. If the attribute has not been initialized or if the index is out of bound, it throws an EException.

◆ SetAttributeEC24A()

void eVision::Easy3D::EPointCloud::SetAttributeEC24A ( int attribute,
uint32_t index,
const eVision::EC24A & value )

Sets the corresponding attribute at the given index.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueThe new value of the element.

This function does not perform an allocation. To add a new point with some attributes in the EPointCloud, use functions EPointCloud::AddPoint or EPointCloud::AddPoints which will add default value(s) to the attribute buffers that are initialized. Then, they can be set with this function. If the attribute has not been initialized or if the index is out of bound, it throws an EException.

◆ SetAttributeFloat()

void eVision::Easy3D::EPointCloud::SetAttributeFloat ( int attribute,
uint32_t index,
float value )

Sets the corresponding attribute at the given index.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueThe new value of the element.

This function does not perform an allocation. To add a new point with some attributes in the EPointCloud, use functions EPointCloud::AddPoint or EPointCloud::AddPoints which will add default value(s) to the attribute buffers that are initialized. Then, they can be set with this function. If the attribute has not been initialized or if the index is out of bound, it throws an EException.

◆ SetAttributeInt32()

void eVision::Easy3D::EPointCloud::SetAttributeInt32 ( int attribute,
uint32_t index,
int32_t value )

Sets the corresponding attribute at the given index.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueThe new value of the element.

This function does not perform an allocation. To add a new point with some attributes in the EPointCloud, use functions EPointCloud::AddPoint or EPointCloud::AddPoints which will add default value(s) to the attribute buffers that are initialized. Then, they can be set with this function. If the attribute has not been initialized or if the index is out of bound, it throws an EException.

◆ SetAttributeUInt16()

void eVision::Easy3D::EPointCloud::SetAttributeUInt16 ( int attribute,
uint32_t index,
uint16_t value )

Sets the corresponding attribute at the given index.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueThe new value of the element.

This function does not perform an allocation. To add a new point with some attributes in the EPointCloud, use functions EPointCloud::AddPoint or EPointCloud::AddPoints which will add default value(s) to the attribute buffers that are initialized. Then, they can be set with this function. If the attribute has not been initialized or if the index is out of bound, it throws an EException.

◆ SetAttributeUInt32()

void eVision::Easy3D::EPointCloud::SetAttributeUInt32 ( int attribute,
uint32_t index,
uint32_t value )

Sets the corresponding attribute at the given index.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueThe new value of the element.

This function does not perform an allocation. To add a new point with some attributes in the EPointCloud, use functions EPointCloud::AddPoint or EPointCloud::AddPoints which will add default value(s) to the attribute buffers that are initialized. Then, they can be set with this function. If the attribute has not been initialized or if the index is out of bound, it throws an EException.

◆ SetAttributeUInt8()

void eVision::Easy3D::EPointCloud::SetAttributeUInt8 ( int attribute,
uint32_t index,
uint8_t value )

Sets the corresponding attribute at the given index.

Parameters
attributeThe attribute buffer id. Either an E3DAttribute or an id returned by AddCustomAttributeBufferXXX.
indexThe index of the element.
valueThe new value of the element.

This function does not perform an allocation. To add a new point with some attributes in the EPointCloud, use functions EPointCloud::AddPoint or EPointCloud::AddPoints which will add default value(s) to the attribute buffers that are initialized. Then, they can be set with this function. If the attribute has not been initialized or if the index is out of bound, it throws an EException.

◆ SetEnableSpacePartition()

void eVision::Easy3D::EPointCloud::SetEnableSpacePartition ( bool state)

Sets/Gets the status of space partitioning when computing distance to Segments and Lines. Space partitioning is a way to speed up the geometric queries on EPointCloud. The affected methods are EPointCloud::DistanceToSegment, EPointCloud::DistanceToLine. By default, space partition is disabled for these two methods.

Parameters
stateThe status of space partition

See also EPointCloud::PrepareSpacePartition. For EPointCloud::ComputeNormalsAndCurvatures, the same space partition is used but it cannot be disabled as using it is always faster.

Member Data Documentation

◆ wrappedClass_

CppWrapperInternal::WrappedClass eVision::Easy3D::EPointCloud::wrappedClass_