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

Go to the source code of this file.

Typedefs

typedef struct MR_FaceNormals MR_FaceNormals
 
typedef struct MR_Mesh MR_Mesh
 
typedef struct MR_MeshTopology MR_MeshTopology
 
typedef struct MR_UndirectedEdgeBitSet MR_UndirectedEdgeBitSet
 
typedef struct MR_UndirectedEdgeScalars MR_UndirectedEdgeScalars
 
typedef struct MR_expected_void_std_string MR_expected_void_std_string
 
typedef struct MR_std_function_bool_from_float MR_std_function_bool_from_float
 
typedef struct MR_DenoiseViaNormalsSettings MR_DenoiseViaNormalsSettings
 

Functions

MRC_API void MR_denoiseNormals (const MR_Mesh *mesh, MR_FaceNormals *normals, const MR_UndirectedEdgeScalars *v, float gamma)
 
MRC_API void MR_updateIndicator (const MR_Mesh *mesh, MR_UndirectedEdgeScalars *v, const MR_FaceNormals *normals, float beta, float gamma)
 
MRC_API void MR_updateIndicatorFast (const MR_MeshTopology *topology, MR_UndirectedEdgeScalars *v, const MR_FaceNormals *normals, float beta, float gamma)
 
MRC_API const bool * MR_DenoiseViaNormalsSettings_Get_fastIndicatorComputation (const MR_DenoiseViaNormalsSettings *_this)
 
MRC_API void MR_DenoiseViaNormalsSettings_Set_fastIndicatorComputation (MR_DenoiseViaNormalsSettings *_this, bool value)
 
MRC_API bool * MR_DenoiseViaNormalsSettings_GetMutable_fastIndicatorComputation (MR_DenoiseViaNormalsSettings *_this)
 
MRC_API const float * MR_DenoiseViaNormalsSettings_Get_beta (const MR_DenoiseViaNormalsSettings *_this)
 
MRC_API void MR_DenoiseViaNormalsSettings_Set_beta (MR_DenoiseViaNormalsSettings *_this, float value)
 
MRC_API float * MR_DenoiseViaNormalsSettings_GetMutable_beta (MR_DenoiseViaNormalsSettings *_this)
 
MRC_API const float * MR_DenoiseViaNormalsSettings_Get_gamma (const MR_DenoiseViaNormalsSettings *_this)
 
MRC_API void MR_DenoiseViaNormalsSettings_Set_gamma (MR_DenoiseViaNormalsSettings *_this, float value)
 
MRC_API float * MR_DenoiseViaNormalsSettings_GetMutable_gamma (MR_DenoiseViaNormalsSettings *_this)
 
MRC_API const int * MR_DenoiseViaNormalsSettings_Get_normalIters (const MR_DenoiseViaNormalsSettings *_this)
 
MRC_API void MR_DenoiseViaNormalsSettings_Set_normalIters (MR_DenoiseViaNormalsSettings *_this, int value)
 
MRC_API int * MR_DenoiseViaNormalsSettings_GetMutable_normalIters (MR_DenoiseViaNormalsSettings *_this)
 
MRC_API const int * MR_DenoiseViaNormalsSettings_Get_pointIters (const MR_DenoiseViaNormalsSettings *_this)
 
MRC_API void MR_DenoiseViaNormalsSettings_Set_pointIters (MR_DenoiseViaNormalsSettings *_this, int value)
 
MRC_API int * MR_DenoiseViaNormalsSettings_GetMutable_pointIters (MR_DenoiseViaNormalsSettings *_this)
 
MRC_API const float * MR_DenoiseViaNormalsSettings_Get_guideWeight (const MR_DenoiseViaNormalsSettings *_this)
 
MRC_API void MR_DenoiseViaNormalsSettings_Set_guideWeight (MR_DenoiseViaNormalsSettings *_this, float value)
 
MRC_API float * MR_DenoiseViaNormalsSettings_GetMutable_guideWeight (MR_DenoiseViaNormalsSettings *_this)
 
MRC_API const bool * MR_DenoiseViaNormalsSettings_Get_limitNearInitial (const MR_DenoiseViaNormalsSettings *_this)
 
MRC_API void MR_DenoiseViaNormalsSettings_Set_limitNearInitial (MR_DenoiseViaNormalsSettings *_this, bool value)
 
MRC_API bool * MR_DenoiseViaNormalsSettings_GetMutable_limitNearInitial (MR_DenoiseViaNormalsSettings *_this)
 
MRC_API const float * MR_DenoiseViaNormalsSettings_Get_maxInitialDist (const MR_DenoiseViaNormalsSettings *_this)
 
MRC_API void MR_DenoiseViaNormalsSettings_Set_maxInitialDist (MR_DenoiseViaNormalsSettings *_this, float value)
 
MRC_API float * MR_DenoiseViaNormalsSettings_GetMutable_maxInitialDist (MR_DenoiseViaNormalsSettings *_this)
 
MRC_API MR_UndirectedEdgeBitSet *const * MR_DenoiseViaNormalsSettings_Get_outCreases (const MR_DenoiseViaNormalsSettings *_this)
 
MRC_API void MR_DenoiseViaNormalsSettings_Set_outCreases (MR_DenoiseViaNormalsSettings *_this, MR_UndirectedEdgeBitSet *value)
 
MRC_API MR_UndirectedEdgeBitSet ** MR_DenoiseViaNormalsSettings_GetMutable_outCreases (MR_DenoiseViaNormalsSettings *_this)
 
MRC_API const MR_std_function_bool_from_floatMR_DenoiseViaNormalsSettings_Get_cb (const MR_DenoiseViaNormalsSettings *_this)
 
MRC_API void MR_DenoiseViaNormalsSettings_Set_cb (MR_DenoiseViaNormalsSettings *_this, MR_PassBy value_pass_by, MR_std_function_bool_from_float *value)
 
MRC_API MR_std_function_bool_from_floatMR_DenoiseViaNormalsSettings_GetMutable_cb (MR_DenoiseViaNormalsSettings *_this)
 
MRC_API MR_DenoiseViaNormalsSettingsMR_DenoiseViaNormalsSettings_DefaultConstruct (void)
 
MRC_API MR_DenoiseViaNormalsSettingsMR_DenoiseViaNormalsSettings_DefaultConstructArray (size_t num_elems)
 
MRC_API MR_DenoiseViaNormalsSettingsMR_DenoiseViaNormalsSettings_ConstructFrom (bool fastIndicatorComputation, float beta, float gamma, int normalIters, int pointIters, float guideWeight, bool limitNearInitial, float maxInitialDist, MR_UndirectedEdgeBitSet *outCreases, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb)
 
MRC_API const MR_DenoiseViaNormalsSettingsMR_DenoiseViaNormalsSettings_OffsetPtr (const MR_DenoiseViaNormalsSettings *ptr, ptrdiff_t i)
 
MRC_API MR_DenoiseViaNormalsSettingsMR_DenoiseViaNormalsSettings_OffsetMutablePtr (MR_DenoiseViaNormalsSettings *ptr, ptrdiff_t i)
 
MRC_API MR_DenoiseViaNormalsSettingsMR_DenoiseViaNormalsSettings_ConstructFromAnother (MR_PassBy _other_pass_by, MR_DenoiseViaNormalsSettings *_other)
 
MRC_API void MR_DenoiseViaNormalsSettings_Destroy (const MR_DenoiseViaNormalsSettings *_this)
 Destroys a heap-allocated instance of MR_DenoiseViaNormalsSettings. Does nothing if the pointer is null.
 
MRC_API void MR_DenoiseViaNormalsSettings_DestroyArray (const MR_DenoiseViaNormalsSettings *_this)
 Destroys a heap-allocated array of MR_DenoiseViaNormalsSettings. Does nothing if the pointer is null.
 
MRC_API MR_DenoiseViaNormalsSettingsMR_DenoiseViaNormalsSettings_AssignFromAnother (MR_DenoiseViaNormalsSettings *_this, MR_PassBy _other_pass_by, MR_DenoiseViaNormalsSettings *_other)
 
MRC_API MR_expected_void_std_stringMR_meshDenoiseViaNormals (MR_Mesh *mesh, const MR_DenoiseViaNormalsSettings *settings)
 

Typedef Documentation

◆ MR_DenoiseViaNormalsSettings

Generated from class MR::DenoiseViaNormalsSettings. Supported MR_PassBy modes: MR_PassBy_DefaultConstruct, MR_PassBy_Copy, MR_PassBy_Move (and MR_PassBy_DefaultArgument and MR_PassBy_NoObject if supported by the callee).

◆ MR_expected_void_std_string

◆ MR_FaceNormals

◆ MR_Mesh

typedef struct MR_Mesh MR_Mesh

◆ MR_MeshTopology

◆ MR_std_function_bool_from_float

◆ MR_UndirectedEdgeBitSet

◆ MR_UndirectedEdgeScalars

Function Documentation

◆ MR_denoiseNormals()

MRC_API void MR_denoiseNormals ( const MR_Mesh * mesh,
MR_FaceNormals * normals,
const MR_UndirectedEdgeScalars * v,
float gamma )

Smooth face normals, given

Parameters
meshcontains topology information and coordinates for equation weights
normalsinput noisy normals and output smooth normals
vedge indicator function (1 - smooth edge, 0 - crease edge)
gammathe amount of smoothing: 0 - no smoothing, 1 - average smoothing, ... see the article "Mesh Denoising via a Novel Mumford-Shah Framework", equation (19) Generated from function MR::denoiseNormals. Parameter mesh can not be null. It is a single object. Parameter normals can not be null. It is a single object. Parameter v can not be null. It is a single object.

◆ MR_DenoiseViaNormalsSettings_AssignFromAnother()

MRC_API MR_DenoiseViaNormalsSettings * MR_DenoiseViaNormalsSettings_AssignFromAnother ( MR_DenoiseViaNormalsSettings * _this,
MR_PassBy _other_pass_by,
MR_DenoiseViaNormalsSettings * _other )

Generated from method MR::DenoiseViaNormalsSettings::operator=. Parameter _this can not be null. It is a single object. The reference to things referred to by the parameter _other (if any) might be preserved in this object. The returned pointer will never be null. It is non-owning, do NOT destroy it. When this function is called, this object will drop any object references it had previously.

◆ MR_DenoiseViaNormalsSettings_ConstructFrom()

MRC_API MR_DenoiseViaNormalsSettings * MR_DenoiseViaNormalsSettings_ConstructFrom ( bool fastIndicatorComputation,
float beta,
float gamma,
int normalIters,
int pointIters,
float guideWeight,
bool limitNearInitial,
float maxInitialDist,
MR_UndirectedEdgeBitSet * outCreases,
MR_PassBy cb_pass_by,
MR_std_function_bool_from_float * cb )

Constructs MR::DenoiseViaNormalsSettings elementwise. The reference to the parameter outCreases might be preserved in the constructed object. The reference to the parameter cb might be preserved in the constructed object. Never returns null. Returns an instance allocated on the heap! Must call MR_DenoiseViaNormalsSettings_Destroy() to free it when you're done using it. When this function is called, this object will drop any object references it had previously.

◆ MR_DenoiseViaNormalsSettings_ConstructFromAnother()

MRC_API MR_DenoiseViaNormalsSettings * MR_DenoiseViaNormalsSettings_ConstructFromAnother ( MR_PassBy _other_pass_by,
MR_DenoiseViaNormalsSettings * _other )

Generated from constructor MR::DenoiseViaNormalsSettings::DenoiseViaNormalsSettings. The reference to things referred to by the parameter _other (if any) might be preserved in the constructed object. Never returns null. Returns an instance allocated on the heap! Must call MR_DenoiseViaNormalsSettings_Destroy() to free it when you're done using it.

◆ MR_DenoiseViaNormalsSettings_DefaultConstruct()

MRC_API MR_DenoiseViaNormalsSettings * MR_DenoiseViaNormalsSettings_DefaultConstruct ( void )

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

◆ MR_DenoiseViaNormalsSettings_DefaultConstructArray()

MRC_API MR_DenoiseViaNormalsSettings * MR_DenoiseViaNormalsSettings_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_DenoiseViaNormalsSettings_DestroyArray(). Use MR_DenoiseViaNormalsSettings_OffsetMutablePtr() and MR_DenoiseViaNormalsSettings_OffsetPtr() to access the array elements.

◆ MR_DenoiseViaNormalsSettings_Destroy()

MRC_API void MR_DenoiseViaNormalsSettings_Destroy ( const MR_DenoiseViaNormalsSettings * _this)

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

◆ MR_DenoiseViaNormalsSettings_DestroyArray()

MRC_API void MR_DenoiseViaNormalsSettings_DestroyArray ( const MR_DenoiseViaNormalsSettings * _this)

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

◆ MR_DenoiseViaNormalsSettings_Get_beta()

MRC_API const float * MR_DenoiseViaNormalsSettings_Get_beta ( const MR_DenoiseViaNormalsSettings * _this)

0.001 - sharp edges, 0.01 - moderate edges, 0.1 - smooth edges Returns a pointer to a member variable of class MR::DenoiseViaNormalsSettings named beta. 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_DenoiseViaNormalsSettings_Get_cb()

MRC_API const MR_std_function_bool_from_float * MR_DenoiseViaNormalsSettings_Get_cb ( const MR_DenoiseViaNormalsSettings * _this)

to get the progress and optionally cancel Returns a pointer to a member variable of class MR::DenoiseViaNormalsSettings named cb. 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_DenoiseViaNormalsSettings_Get_fastIndicatorComputation()

MRC_API const bool * MR_DenoiseViaNormalsSettings_Get_fastIndicatorComputation ( const MR_DenoiseViaNormalsSettings * _this)

use approximated computation, which is much faster than precise solution Returns a pointer to a member variable of class MR::DenoiseViaNormalsSettings named fastIndicatorComputation. 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_DenoiseViaNormalsSettings_Get_gamma()

MRC_API const float * MR_DenoiseViaNormalsSettings_Get_gamma ( const MR_DenoiseViaNormalsSettings * _this)

the amount of smoothing: 0 - no smoothing, 1 - average smoothing, ... Returns a pointer to a member variable of class MR::DenoiseViaNormalsSettings named gamma. 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_DenoiseViaNormalsSettings_Get_guideWeight()

MRC_API const float * MR_DenoiseViaNormalsSettings_Get_guideWeight ( const MR_DenoiseViaNormalsSettings * _this)

how much resulting points must be attracted to initial points (e.g. to avoid general shrinkage), must be > 0 Returns a pointer to a member variable of class MR::DenoiseViaNormalsSettings named guideWeight. 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_DenoiseViaNormalsSettings_Get_limitNearInitial()

MRC_API const bool * MR_DenoiseViaNormalsSettings_Get_limitNearInitial ( const MR_DenoiseViaNormalsSettings * _this)

if true then maximal displacement of each point during denoising will be limited Returns a pointer to a member variable of class MR::DenoiseViaNormalsSettings named limitNearInitial. 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_DenoiseViaNormalsSettings_Get_maxInitialDist()

MRC_API const float * MR_DenoiseViaNormalsSettings_Get_maxInitialDist ( const MR_DenoiseViaNormalsSettings * _this)

maximum distance between a point and its position before relaxation, ignored if limitNearInitial = false Returns a pointer to a member variable of class MR::DenoiseViaNormalsSettings named maxInitialDist. 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_DenoiseViaNormalsSettings_Get_normalIters()

MRC_API const int * MR_DenoiseViaNormalsSettings_Get_normalIters ( const MR_DenoiseViaNormalsSettings * _this)

the number of iterations to smooth normals and find creases; the more the better quality, but longer computation Returns a pointer to a member variable of class MR::DenoiseViaNormalsSettings named normalIters. 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_DenoiseViaNormalsSettings_Get_outCreases()

MRC_API MR_UndirectedEdgeBitSet *const * MR_DenoiseViaNormalsSettings_Get_outCreases ( const MR_DenoiseViaNormalsSettings * _this)

optionally returns creases found during smoothing Returns a pointer to a member variable of class MR::DenoiseViaNormalsSettings named outCreases. 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_DenoiseViaNormalsSettings_Get_pointIters()

MRC_API const int * MR_DenoiseViaNormalsSettings_Get_pointIters ( const MR_DenoiseViaNormalsSettings * _this)

the number of iterations to update vertex coordinates from found normals; the more the better quality, but longer computation Returns a pointer to a member variable of class MR::DenoiseViaNormalsSettings named pointIters. 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_DenoiseViaNormalsSettings_GetMutable_beta()

MRC_API float * MR_DenoiseViaNormalsSettings_GetMutable_beta ( MR_DenoiseViaNormalsSettings * _this)

0.001 - sharp edges, 0.01 - moderate edges, 0.1 - smooth edges Returns a mutable pointer to a member variable of class MR::DenoiseViaNormalsSettings named beta. 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_DenoiseViaNormalsSettings_GetMutable_cb()

MRC_API MR_std_function_bool_from_float * MR_DenoiseViaNormalsSettings_GetMutable_cb ( MR_DenoiseViaNormalsSettings * _this)

to get the progress and optionally cancel Returns a mutable pointer to a member variable of class MR::DenoiseViaNormalsSettings named cb. 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_DenoiseViaNormalsSettings_GetMutable_fastIndicatorComputation()

MRC_API bool * MR_DenoiseViaNormalsSettings_GetMutable_fastIndicatorComputation ( MR_DenoiseViaNormalsSettings * _this)

use approximated computation, which is much faster than precise solution Returns a mutable pointer to a member variable of class MR::DenoiseViaNormalsSettings named fastIndicatorComputation. 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_DenoiseViaNormalsSettings_GetMutable_gamma()

MRC_API float * MR_DenoiseViaNormalsSettings_GetMutable_gamma ( MR_DenoiseViaNormalsSettings * _this)

the amount of smoothing: 0 - no smoothing, 1 - average smoothing, ... Returns a mutable pointer to a member variable of class MR::DenoiseViaNormalsSettings named gamma. 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_DenoiseViaNormalsSettings_GetMutable_guideWeight()

MRC_API float * MR_DenoiseViaNormalsSettings_GetMutable_guideWeight ( MR_DenoiseViaNormalsSettings * _this)

how much resulting points must be attracted to initial points (e.g. to avoid general shrinkage), must be > 0 Returns a mutable pointer to a member variable of class MR::DenoiseViaNormalsSettings named guideWeight. 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_DenoiseViaNormalsSettings_GetMutable_limitNearInitial()

MRC_API bool * MR_DenoiseViaNormalsSettings_GetMutable_limitNearInitial ( MR_DenoiseViaNormalsSettings * _this)

if true then maximal displacement of each point during denoising will be limited Returns a mutable pointer to a member variable of class MR::DenoiseViaNormalsSettings named limitNearInitial. 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_DenoiseViaNormalsSettings_GetMutable_maxInitialDist()

MRC_API float * MR_DenoiseViaNormalsSettings_GetMutable_maxInitialDist ( MR_DenoiseViaNormalsSettings * _this)

maximum distance between a point and its position before relaxation, ignored if limitNearInitial = false Returns a mutable pointer to a member variable of class MR::DenoiseViaNormalsSettings named maxInitialDist. 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_DenoiseViaNormalsSettings_GetMutable_normalIters()

MRC_API int * MR_DenoiseViaNormalsSettings_GetMutable_normalIters ( MR_DenoiseViaNormalsSettings * _this)

the number of iterations to smooth normals and find creases; the more the better quality, but longer computation Returns a mutable pointer to a member variable of class MR::DenoiseViaNormalsSettings named normalIters. 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_DenoiseViaNormalsSettings_GetMutable_outCreases()

MRC_API MR_UndirectedEdgeBitSet ** MR_DenoiseViaNormalsSettings_GetMutable_outCreases ( MR_DenoiseViaNormalsSettings * _this)

optionally returns creases found during smoothing Returns a mutable pointer to a member variable of class MR::DenoiseViaNormalsSettings named outCreases. 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_DenoiseViaNormalsSettings_GetMutable_pointIters()

MRC_API int * MR_DenoiseViaNormalsSettings_GetMutable_pointIters ( MR_DenoiseViaNormalsSettings * _this)

the number of iterations to update vertex coordinates from found normals; the more the better quality, but longer computation Returns a mutable pointer to a member variable of class MR::DenoiseViaNormalsSettings named pointIters. 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_DenoiseViaNormalsSettings_OffsetMutablePtr()

MRC_API MR_DenoiseViaNormalsSettings * MR_DenoiseViaNormalsSettings_OffsetMutablePtr ( MR_DenoiseViaNormalsSettings * 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. The reference to the parameter ptr might be preserved in the return value.

◆ MR_DenoiseViaNormalsSettings_OffsetPtr()

MRC_API const MR_DenoiseViaNormalsSettings * MR_DenoiseViaNormalsSettings_OffsetPtr ( const MR_DenoiseViaNormalsSettings * 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. The reference to the parameter ptr might be preserved in the return value.

◆ MR_DenoiseViaNormalsSettings_Set_beta()

MRC_API void MR_DenoiseViaNormalsSettings_Set_beta ( MR_DenoiseViaNormalsSettings * _this,
float value )

0.001 - sharp edges, 0.01 - moderate edges, 0.1 - smooth edges Modifies a member variable of class MR::DenoiseViaNormalsSettings named beta. Parameter _this can not be null. It is a single object. When this function is called, this object will drop object references it had previously in beta.

◆ MR_DenoiseViaNormalsSettings_Set_cb()

MRC_API void MR_DenoiseViaNormalsSettings_Set_cb ( MR_DenoiseViaNormalsSettings * _this,
MR_PassBy value_pass_by,
MR_std_function_bool_from_float * value )

to get the progress and optionally cancel Modifies a member variable of class MR::DenoiseViaNormalsSettings named cb. Parameter _this can not be null. It is a single object. The reference to the parameter value might be preserved in this object in element cb. When this function is called, this object will drop object references it had previously in cb.

◆ MR_DenoiseViaNormalsSettings_Set_fastIndicatorComputation()

MRC_API void MR_DenoiseViaNormalsSettings_Set_fastIndicatorComputation ( MR_DenoiseViaNormalsSettings * _this,
bool value )

use approximated computation, which is much faster than precise solution Modifies a member variable of class MR::DenoiseViaNormalsSettings named fastIndicatorComputation. Parameter _this can not be null. It is a single object. When this function is called, this object will drop object references it had previously in fastIndicatorComputation.

◆ MR_DenoiseViaNormalsSettings_Set_gamma()

MRC_API void MR_DenoiseViaNormalsSettings_Set_gamma ( MR_DenoiseViaNormalsSettings * _this,
float value )

the amount of smoothing: 0 - no smoothing, 1 - average smoothing, ... Modifies a member variable of class MR::DenoiseViaNormalsSettings named gamma. Parameter _this can not be null. It is a single object. When this function is called, this object will drop object references it had previously in gamma.

◆ MR_DenoiseViaNormalsSettings_Set_guideWeight()

MRC_API void MR_DenoiseViaNormalsSettings_Set_guideWeight ( MR_DenoiseViaNormalsSettings * _this,
float value )

how much resulting points must be attracted to initial points (e.g. to avoid general shrinkage), must be > 0 Modifies a member variable of class MR::DenoiseViaNormalsSettings named guideWeight. Parameter _this can not be null. It is a single object. When this function is called, this object will drop object references it had previously in guideWeight.

◆ MR_DenoiseViaNormalsSettings_Set_limitNearInitial()

MRC_API void MR_DenoiseViaNormalsSettings_Set_limitNearInitial ( MR_DenoiseViaNormalsSettings * _this,
bool value )

if true then maximal displacement of each point during denoising will be limited Modifies a member variable of class MR::DenoiseViaNormalsSettings named limitNearInitial. Parameter _this can not be null. It is a single object. When this function is called, this object will drop object references it had previously in limitNearInitial.

◆ MR_DenoiseViaNormalsSettings_Set_maxInitialDist()

MRC_API void MR_DenoiseViaNormalsSettings_Set_maxInitialDist ( MR_DenoiseViaNormalsSettings * _this,
float value )

maximum distance between a point and its position before relaxation, ignored if limitNearInitial = false Modifies a member variable of class MR::DenoiseViaNormalsSettings named maxInitialDist. Parameter _this can not be null. It is a single object. When this function is called, this object will drop object references it had previously in maxInitialDist.

◆ MR_DenoiseViaNormalsSettings_Set_normalIters()

MRC_API void MR_DenoiseViaNormalsSettings_Set_normalIters ( MR_DenoiseViaNormalsSettings * _this,
int value )

the number of iterations to smooth normals and find creases; the more the better quality, but longer computation Modifies a member variable of class MR::DenoiseViaNormalsSettings named normalIters. Parameter _this can not be null. It is a single object. When this function is called, this object will drop object references it had previously in normalIters.

◆ MR_DenoiseViaNormalsSettings_Set_outCreases()

MRC_API void MR_DenoiseViaNormalsSettings_Set_outCreases ( MR_DenoiseViaNormalsSettings * _this,
MR_UndirectedEdgeBitSet * value )

optionally returns creases found during smoothing Modifies a member variable of class MR::DenoiseViaNormalsSettings named outCreases. Parameter _this can not be null. It is a single object. The reference to the parameter value might be preserved in this object in element outCreases. When this function is called, this object will drop object references it had previously in outCreases.

◆ MR_DenoiseViaNormalsSettings_Set_pointIters()

MRC_API void MR_DenoiseViaNormalsSettings_Set_pointIters ( MR_DenoiseViaNormalsSettings * _this,
int value )

the number of iterations to update vertex coordinates from found normals; the more the better quality, but longer computation Modifies a member variable of class MR::DenoiseViaNormalsSettings named pointIters. Parameter _this can not be null. It is a single object. When this function is called, this object will drop object references it had previously in pointIters.

◆ MR_meshDenoiseViaNormals()

MRC_API MR_expected_void_std_string * MR_meshDenoiseViaNormals ( MR_Mesh * mesh,
const MR_DenoiseViaNormalsSettings * settings )

Reduces noise in given mesh, see the article "Mesh Denoising via a Novel Mumford-Shah Framework" Generated from function MR::meshDenoiseViaNormals. Parameter mesh can not be null. It is a single object. Parameter settings is a single object. Parameter settings has a default argument: {}, pass a null pointer to use it. Never returns null. Returns an instance allocated on the heap! Must call MR_expected_void_std_string_Destroy() to free it when you're done using it.

◆ MR_updateIndicator()

MRC_API void MR_updateIndicator ( const MR_Mesh * mesh,
MR_UndirectedEdgeScalars * v,
const MR_FaceNormals * normals,
float beta,
float gamma )

Compute edge indicator function (1 - smooth edge, 0 - crease edge) by solving large system of linear equations

Parameters
meshcontains topology information and coordinates for equation weights
normalsper-face normals
beta0.001 - sharp edges, 0.01 - moderate edges, 0.1 - smooth edges
gammathe amount of smoothing: 0 - no smoothing, 1 - average smoothing, ... see the article "Mesh Denoising via a Novel Mumford-Shah Framework", equation (20) Generated from function MR::updateIndicator. Parameter mesh can not be null. It is a single object. Parameter v can not be null. It is a single object. Parameter normals can not be null. It is a single object.

◆ MR_updateIndicatorFast()

MRC_API void MR_updateIndicatorFast ( const MR_MeshTopology * topology,
MR_UndirectedEdgeScalars * v,
const MR_FaceNormals * normals,
float beta,
float gamma )

Compute edge indicator function (1 - smooth edge, 0 - crease edge) by approximation without solving the system of linear equations

Parameters
normalsper-face normals
beta0.001 - sharp edges, 0.01 - moderate edges, 0.1 - smooth edges
gammathe amount of smoothing: 0 - no smoothing, 1 - average smoothing, ... see the article "Mesh Denoising via a Novel Mumford-Shah Framework", equation (20) Generated from function MR::updateIndicatorFast. Parameter topology can not be null. It is a single object. Parameter v can not be null. It is a single object. Parameter normals can not be null. It is a single object.