MeshLib C Docs
Loading...
Searching...
No Matches
MRPointCloudTriangulation.h File Reference
#include <MRCMisc/common.h>
#include <MRCMisc/exports.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>

Go to the source code of this file.

Typedefs

typedef struct MR_PointCloud MR_PointCloud
 
typedef struct MR_std_function_bool_from_float MR_std_function_bool_from_float
 
typedef struct MR_std_optional_MR_Mesh MR_std_optional_MR_Mesh
 
typedef struct MR_TriangulationParameters MR_TriangulationParameters
 Parameters of point cloud triangulation.
 

Functions

MRC_API const int32_t * MR_TriangulationParameters_Get_numNeighbours (const MR_TriangulationParameters *_this)
 The number of nearest neighbor points to use for building of local triangulation.
 
MRC_API void MR_TriangulationParameters_Set_numNeighbours (MR_TriangulationParameters *_this, int32_t value)
 The number of nearest neighbor points to use for building of local triangulation.
 
MRC_API int32_t * MR_TriangulationParameters_GetMutable_numNeighbours (MR_TriangulationParameters *_this)
 The number of nearest neighbor points to use for building of local triangulation.
 
MRC_API const float * MR_TriangulationParameters_Get_radius (const MR_TriangulationParameters *_this)
 
MRC_API void MR_TriangulationParameters_Set_radius (MR_TriangulationParameters *_this, float value)
 
MRC_API float * MR_TriangulationParameters_GetMutable_radius (MR_TriangulationParameters *_this)
 
MRC_API const float * MR_TriangulationParameters_Get_critAngle (const MR_TriangulationParameters *_this)
 Critical angle of triangles in local triangulation (angle between triangles in fan should be less then this value)
 
MRC_API void MR_TriangulationParameters_Set_critAngle (MR_TriangulationParameters *_this, float value)
 Critical angle of triangles in local triangulation (angle between triangles in fan should be less then this value)
 
MRC_API float * MR_TriangulationParameters_GetMutable_critAngle (MR_TriangulationParameters *_this)
 Critical angle of triangles in local triangulation (angle between triangles in fan should be less then this value)
 
MRC_API const float * MR_TriangulationParameters_Get_boundaryAngle (const MR_TriangulationParameters *_this)
 
MRC_API void MR_TriangulationParameters_Set_boundaryAngle (MR_TriangulationParameters *_this, float value)
 
MRC_API float * MR_TriangulationParameters_GetMutable_boundaryAngle (MR_TriangulationParameters *_this)
 
MRC_API const float * MR_TriangulationParameters_Get_critHoleLength (const MR_TriangulationParameters *_this)
 Critical length of hole (all holes with length less then this value will be filled)
 
MRC_API void MR_TriangulationParameters_Set_critHoleLength (MR_TriangulationParameters *_this, float value)
 Critical length of hole (all holes with length less then this value will be filled)
 
MRC_API float * MR_TriangulationParameters_GetMutable_critHoleLength (MR_TriangulationParameters *_this)
 Critical length of hole (all holes with length less then this value will be filled)
 
MRC_API const bool * MR_TriangulationParameters_Get_automaticRadiusIncrease (const MR_TriangulationParameters *_this)
 
MRC_API void MR_TriangulationParameters_Set_automaticRadiusIncrease (MR_TriangulationParameters *_this, bool value)
 
MRC_API bool * MR_TriangulationParameters_GetMutable_automaticRadiusIncrease (MR_TriangulationParameters *_this)
 
MRC_API const MR_PointCloud *const * MR_TriangulationParameters_Get_searchNeighbors (const MR_TriangulationParameters *_this)
 
MRC_API void MR_TriangulationParameters_Set_searchNeighbors (MR_TriangulationParameters *_this, const MR_PointCloud *value)
 
MRC_API const MR_PointCloud ** MR_TriangulationParameters_GetMutable_searchNeighbors (MR_TriangulationParameters *_this)
 
MRC_API MR_TriangulationParametersMR_TriangulationParameters_DefaultConstruct (void)
 
MRC_API MR_TriangulationParametersMR_TriangulationParameters_DefaultConstructArray (size_t num_elems)
 
MRC_API MR_TriangulationParametersMR_TriangulationParameters_ConstructFrom (int32_t numNeighbours, float radius, float critAngle, float boundaryAngle, float critHoleLength, bool automaticRadiusIncrease, const MR_PointCloud *searchNeighbors)
 
MRC_API const MR_TriangulationParametersMR_TriangulationParameters_OffsetPtr (const MR_TriangulationParameters *ptr, ptrdiff_t i)
 Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.
 
MRC_API MR_TriangulationParametersMR_TriangulationParameters_OffsetMutablePtr (MR_TriangulationParameters *ptr, ptrdiff_t i)
 Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.
 
MRC_API MR_TriangulationParametersMR_TriangulationParameters_ConstructFromAnother (const MR_TriangulationParameters *_other)
 
MRC_API void MR_TriangulationParameters_Destroy (const MR_TriangulationParameters *_this)
 Destroys a heap-allocated instance of MR_TriangulationParameters. Does nothing if the pointer is null.
 
MRC_API void MR_TriangulationParameters_DestroyArray (const MR_TriangulationParameters *_this)
 Destroys a heap-allocated array of MR_TriangulationParameters. Does nothing if the pointer is null.
 
MRC_API MR_TriangulationParametersMR_TriangulationParameters_AssignFromAnother (MR_TriangulationParameters *_this, const MR_TriangulationParameters *_other)
 
MRC_API MR_std_optional_MR_MeshMR_triangulatePointCloud (const MR_PointCloud *pointCloud, const MR_TriangulationParameters *params, MR_PassBy progressCb_pass_by, MR_std_function_bool_from_float *progressCb)
 Creates mesh from given point cloud according params Returns empty optional if was interrupted by progress bar.
 

Typedef Documentation

◆ MR_PointCloud

typedef struct MR_PointCloud MR_PointCloud

◆ MR_std_function_bool_from_float

◆ MR_std_optional_MR_Mesh

◆ MR_TriangulationParameters

Parameters of point cloud triangulation.

See also
triangulatePointCloud Generated from class MR::TriangulationParameters.

Function Documentation

◆ MR_triangulatePointCloud()

MRC_API MR_std_optional_MR_Mesh * MR_triangulatePointCloud ( const MR_PointCloud * pointCloud,
const MR_TriangulationParameters * params,
MR_PassBy progressCb_pass_by,
MR_std_function_bool_from_float * progressCb )

Creates mesh from given point cloud according params Returns empty optional if was interrupted by progress bar.

Before
After

Generated from function MR::triangulatePointCloud. Parameter pointCloud can not be null. It is a single object. Parameter params is a single object. Parameter params has a default argument: {}, pass a null pointer to use it. Parameter progressCb has a default argument: {}, pass MR_PassBy_DefaultArgument and a null pointer to use it. Never returns null. Returns an instance allocated on the heap! Must call MR_std_optional_MR_Mesh_Destroy() to free it when you're done using it.

◆ MR_TriangulationParameters_AssignFromAnother()

MRC_API MR_TriangulationParameters * MR_TriangulationParameters_AssignFromAnother ( MR_TriangulationParameters * _this,
const MR_TriangulationParameters * _other )

Generated from a method of class MR::TriangulationParameters named operator=. Parameter _this can not be null. It is a single object. Parameter _other can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_TriangulationParameters_ConstructFrom()

MRC_API MR_TriangulationParameters * MR_TriangulationParameters_ConstructFrom ( int32_t numNeighbours,
float radius,
float critAngle,
float boundaryAngle,
float critHoleLength,
bool automaticRadiusIncrease,
const MR_PointCloud * searchNeighbors )

Constructs MR::TriangulationParameters elementwise. Never returns null. Returns an instance allocated on the heap! Must call MR_TriangulationParameters_Destroy() to free it when you're done using it.

◆ MR_TriangulationParameters_ConstructFromAnother()

MRC_API MR_TriangulationParameters * MR_TriangulationParameters_ConstructFromAnother ( const MR_TriangulationParameters * _other)

Generated from a constructor of class MR::TriangulationParameters. Parameter _other can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_TriangulationParameters_Destroy() to free it when you're done using it.

◆ MR_TriangulationParameters_DefaultConstruct()

MRC_API MR_TriangulationParameters * MR_TriangulationParameters_DefaultConstruct ( void )

Constructs an empty (default-constructed) instance. Never returns null. Returns an instance allocated on the heap! Must call MR_TriangulationParameters_Destroy() to free it when you're done using it.

◆ MR_TriangulationParameters_DefaultConstructArray()

MRC_API MR_TriangulationParameters * MR_TriangulationParameters_DefaultConstructArray ( size_t num_elems)

Constructs an array of empty (default-constructed) instances, of the specified size. Will never return null. The array must be destroyed using MR_TriangulationParameters_DestroyArray(). Use MR_TriangulationParameters_OffsetMutablePtr() and MR_TriangulationParameters_OffsetPtr() to access the array elements.

◆ MR_TriangulationParameters_Destroy()

MRC_API void MR_TriangulationParameters_Destroy ( const MR_TriangulationParameters * _this)

Destroys a heap-allocated instance of MR_TriangulationParameters. Does nothing if the pointer is null.

◆ MR_TriangulationParameters_DestroyArray()

MRC_API void MR_TriangulationParameters_DestroyArray ( const MR_TriangulationParameters * _this)

Destroys a heap-allocated array of MR_TriangulationParameters. Does nothing if the pointer is null.

◆ MR_TriangulationParameters_Get_automaticRadiusIncrease()

MRC_API const bool * MR_TriangulationParameters_Get_automaticRadiusIncrease ( const MR_TriangulationParameters * _this)

automatic increase of the radius if points outside can make triangles from original radius not-Delone Returns a pointer to a member variable of class MR::TriangulationParameters named automaticRadiusIncrease. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_TriangulationParameters_Get_boundaryAngle()

MRC_API const float * MR_TriangulationParameters_Get_boundaryAngle ( const MR_TriangulationParameters * _this)

the vertex is considered as boundary if its neighbor ring has angle more than this value Returns a pointer to a member variable of class MR::TriangulationParameters named boundaryAngle. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_TriangulationParameters_Get_critAngle()

MRC_API const float * MR_TriangulationParameters_Get_critAngle ( const MR_TriangulationParameters * _this)

Critical angle of triangles in local triangulation (angle between triangles in fan should be less then this value)

Good
Too small value

Returns a pointer to a member variable of class MR::TriangulationParameters named critAngle. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_TriangulationParameters_Get_critHoleLength()

MRC_API const float * MR_TriangulationParameters_Get_critHoleLength ( const MR_TriangulationParameters * _this)

Critical length of hole (all holes with length less then this value will be filled)

If value is subzero it is set automaticly to 0.7*bbox.diagonal() Returns a pointer to a member variable of class MR::TriangulationParameters named critHoleLength. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_TriangulationParameters_Get_numNeighbours()

MRC_API const int32_t * MR_TriangulationParameters_Get_numNeighbours ( const MR_TriangulationParameters * _this)

The number of nearest neighbor points to use for building of local triangulation.

Note
Too small value can make not optimal triangulation and additional holes
Too big value increases difficulty of optimization and decreases performance
Good
Too small value

Returns a pointer to a member variable of class MR::TriangulationParameters named numNeighbours. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_TriangulationParameters_Get_radius()

MRC_API const float * MR_TriangulationParameters_Get_radius ( const MR_TriangulationParameters * _this)

Radius of neighborhood around each point to consider for building local triangulation. This is an alternative to numNeighbours parameter. Please set to positive value only one of them. Returns a pointer to a member variable of class MR::TriangulationParameters named radius. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_TriangulationParameters_Get_searchNeighbors()

MRC_API const MR_PointCloud *const * MR_TriangulationParameters_Get_searchNeighbors ( const MR_TriangulationParameters * _this)

optional: if provided this cloud will be used for searching of neighbors (so it must have same validPoints) Returns a pointer to a member variable of class MR::TriangulationParameters named searchNeighbors. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_TriangulationParameters_GetMutable_automaticRadiusIncrease()

MRC_API bool * MR_TriangulationParameters_GetMutable_automaticRadiusIncrease ( MR_TriangulationParameters * _this)

automatic increase of the radius if points outside can make triangles from original radius not-Delone Returns a mutable pointer to a member variable of class MR::TriangulationParameters named automaticRadiusIncrease. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_TriangulationParameters_GetMutable_boundaryAngle()

MRC_API float * MR_TriangulationParameters_GetMutable_boundaryAngle ( MR_TriangulationParameters * _this)

the vertex is considered as boundary if its neighbor ring has angle more than this value Returns a mutable pointer to a member variable of class MR::TriangulationParameters named boundaryAngle. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_TriangulationParameters_GetMutable_critAngle()

MRC_API float * MR_TriangulationParameters_GetMutable_critAngle ( MR_TriangulationParameters * _this)

Critical angle of triangles in local triangulation (angle between triangles in fan should be less then this value)

Good
Too small value

Returns a mutable pointer to a member variable of class MR::TriangulationParameters named critAngle. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_TriangulationParameters_GetMutable_critHoleLength()

MRC_API float * MR_TriangulationParameters_GetMutable_critHoleLength ( MR_TriangulationParameters * _this)

Critical length of hole (all holes with length less then this value will be filled)

If value is subzero it is set automaticly to 0.7*bbox.diagonal() Returns a mutable pointer to a member variable of class MR::TriangulationParameters named critHoleLength. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_TriangulationParameters_GetMutable_numNeighbours()

MRC_API int32_t * MR_TriangulationParameters_GetMutable_numNeighbours ( MR_TriangulationParameters * _this)

The number of nearest neighbor points to use for building of local triangulation.

Note
Too small value can make not optimal triangulation and additional holes
Too big value increases difficulty of optimization and decreases performance
Good
Too small value

Returns a mutable pointer to a member variable of class MR::TriangulationParameters named numNeighbours. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_TriangulationParameters_GetMutable_radius()

MRC_API float * MR_TriangulationParameters_GetMutable_radius ( MR_TriangulationParameters * _this)

Radius of neighborhood around each point to consider for building local triangulation. This is an alternative to numNeighbours parameter. Please set to positive value only one of them. Returns a mutable pointer to a member variable of class MR::TriangulationParameters named radius. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_TriangulationParameters_GetMutable_searchNeighbors()

MRC_API const MR_PointCloud ** MR_TriangulationParameters_GetMutable_searchNeighbors ( MR_TriangulationParameters * _this)

optional: if provided this cloud will be used for searching of neighbors (so it must have same validPoints) Returns a mutable pointer to a member variable of class MR::TriangulationParameters named searchNeighbors. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_TriangulationParameters_OffsetMutablePtr()

MRC_API MR_TriangulationParameters * MR_TriangulationParameters_OffsetMutablePtr ( MR_TriangulationParameters * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.

◆ MR_TriangulationParameters_OffsetPtr()

MRC_API const MR_TriangulationParameters * MR_TriangulationParameters_OffsetPtr ( const MR_TriangulationParameters * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.

◆ MR_TriangulationParameters_Set_automaticRadiusIncrease()

MRC_API void MR_TriangulationParameters_Set_automaticRadiusIncrease ( MR_TriangulationParameters * _this,
bool value )

automatic increase of the radius if points outside can make triangles from original radius not-Delone Modifies a member variable of class MR::TriangulationParameters named automaticRadiusIncrease. Parameter _this can not be null. It is a single object.

◆ MR_TriangulationParameters_Set_boundaryAngle()

MRC_API void MR_TriangulationParameters_Set_boundaryAngle ( MR_TriangulationParameters * _this,
float value )

the vertex is considered as boundary if its neighbor ring has angle more than this value Modifies a member variable of class MR::TriangulationParameters named boundaryAngle. Parameter _this can not be null. It is a single object.

◆ MR_TriangulationParameters_Set_critAngle()

MRC_API void MR_TriangulationParameters_Set_critAngle ( MR_TriangulationParameters * _this,
float value )

Critical angle of triangles in local triangulation (angle between triangles in fan should be less then this value)

Good
Too small value

Modifies a member variable of class MR::TriangulationParameters named critAngle. Parameter _this can not be null. It is a single object.

◆ MR_TriangulationParameters_Set_critHoleLength()

MRC_API void MR_TriangulationParameters_Set_critHoleLength ( MR_TriangulationParameters * _this,
float value )

Critical length of hole (all holes with length less then this value will be filled)

If value is subzero it is set automaticly to 0.7*bbox.diagonal() Modifies a member variable of class MR::TriangulationParameters named critHoleLength. Parameter _this can not be null. It is a single object.

◆ MR_TriangulationParameters_Set_numNeighbours()

MRC_API void MR_TriangulationParameters_Set_numNeighbours ( MR_TriangulationParameters * _this,
int32_t value )

The number of nearest neighbor points to use for building of local triangulation.

Note
Too small value can make not optimal triangulation and additional holes
Too big value increases difficulty of optimization and decreases performance
Good
Too small value

Modifies a member variable of class MR::TriangulationParameters named numNeighbours. Parameter _this can not be null. It is a single object.

◆ MR_TriangulationParameters_Set_radius()

MRC_API void MR_TriangulationParameters_Set_radius ( MR_TriangulationParameters * _this,
float value )

Radius of neighborhood around each point to consider for building local triangulation. This is an alternative to numNeighbours parameter. Please set to positive value only one of them. Modifies a member variable of class MR::TriangulationParameters named radius. Parameter _this can not be null. It is a single object.

◆ MR_TriangulationParameters_Set_searchNeighbors()

MRC_API void MR_TriangulationParameters_Set_searchNeighbors ( MR_TriangulationParameters * _this,
const MR_PointCloud * value )

optional: if provided this cloud will be used for searching of neighbors (so it must have same validPoints) Modifies a member variable of class MR::TriangulationParameters named searchNeighbors. Parameter _this can not be null. It is a single object.