MeshLib C Docs
Loading...
Searching...
No Matches
MRMeshRelax.h File Reference
#include <MRCMesh/MRId.h>
#include <MRCMesh/MRRelaxParams.h>
#include <MRCMesh/MRVector3.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_FaceBitSet MR_FaceBitSet
 
typedef struct MR_Mesh MR_Mesh
 
typedef struct MR_MeshTopology MR_MeshTopology
 
typedef struct MR_RelaxParams MR_RelaxParams
 
typedef struct MR_VertBitSet MR_VertBitSet
 
typedef struct MR_VertCoords MR_VertCoords
 
typedef struct MR_VertScalars MR_VertScalars
 
typedef struct MR_std_function_bool_from_float MR_std_function_bool_from_float
 
typedef struct MR_MeshRelaxParams MR_MeshRelaxParams
 
typedef struct MR_MeshEqualizeTriAreasParams MR_MeshEqualizeTriAreasParams
 
typedef struct MR_MeshApproxRelaxParams MR_MeshApproxRelaxParams
 

Functions

MRC_API const bool * MR_MeshRelaxParams_Get_hardSmoothTetrahedrons (const MR_MeshRelaxParams *_this)
 
MRC_API void MR_MeshRelaxParams_Set_hardSmoothTetrahedrons (MR_MeshRelaxParams *_this, bool value)
 
MRC_API bool * MR_MeshRelaxParams_GetMutable_hardSmoothTetrahedrons (MR_MeshRelaxParams *_this)
 
MRC_API const MR_VertScalars *const * MR_MeshRelaxParams_Get_weights (const MR_MeshRelaxParams *_this)
 
MRC_API void MR_MeshRelaxParams_Set_weights (MR_MeshRelaxParams *_this, const MR_VertScalars *value)
 
MRC_API const MR_VertScalars ** MR_MeshRelaxParams_GetMutable_weights (MR_MeshRelaxParams *_this)
 
MRC_API MR_MeshRelaxParamsMR_MeshRelaxParams_DefaultConstruct (void)
 
MRC_API MR_MeshRelaxParamsMR_MeshRelaxParams_DefaultConstructArray (size_t num_elems)
 
MRC_API const MR_MeshRelaxParamsMR_MeshRelaxParams_OffsetPtr (const MR_MeshRelaxParams *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_MeshRelaxParamsMR_MeshRelaxParams_OffsetMutablePtr (MR_MeshRelaxParams *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 const MR_RelaxParamsMR_MeshRelaxParams_UpcastTo_MR_RelaxParams (const MR_MeshRelaxParams *object)
 
MRC_API MR_RelaxParamsMR_MeshRelaxParams_MutableUpcastTo_MR_RelaxParams (MR_MeshRelaxParams *object)
 Upcasts an instance of MR::MeshRelaxParams to its base class MR::RelaxParams.
 
MRC_API const MR_MeshApproxRelaxParamsMR_MeshRelaxParams_StaticDowncastTo_MR_MeshApproxRelaxParams (const MR_MeshRelaxParams *object)
 
MRC_API MR_MeshApproxRelaxParamsMR_MeshRelaxParams_MutableStaticDowncastTo_MR_MeshApproxRelaxParams (MR_MeshRelaxParams *object)
 
MRC_API const MR_MeshEqualizeTriAreasParamsMR_MeshRelaxParams_StaticDowncastTo_MR_MeshEqualizeTriAreasParams (const MR_MeshRelaxParams *object)
 
MRC_API MR_MeshEqualizeTriAreasParamsMR_MeshRelaxParams_MutableStaticDowncastTo_MR_MeshEqualizeTriAreasParams (MR_MeshRelaxParams *object)
 
MRC_API MR_MeshRelaxParamsMR_MeshRelaxParams_ConstructFromAnother (const MR_MeshRelaxParams *_other)
 
MRC_API void MR_MeshRelaxParams_Destroy (const MR_MeshRelaxParams *_this)
 Destroys a heap-allocated instance of MR_MeshRelaxParams. Does nothing if the pointer is null.
 
MRC_API void MR_MeshRelaxParams_DestroyArray (const MR_MeshRelaxParams *_this)
 Destroys a heap-allocated array of MR_MeshRelaxParams. Does nothing if the pointer is null.
 
MRC_API MR_MeshRelaxParamsMR_MeshRelaxParams_AssignFromAnother (MR_MeshRelaxParams *_this, const MR_MeshRelaxParams *_other)
 
MRC_API bool MR_relax_3_MR_Mesh (MR_Mesh *mesh, const MR_MeshRelaxParams *params, const MR_std_function_bool_from_float *cb)
 
MRC_API bool MR_relax_4 (const MR_MeshTopology *topology, MR_VertCoords *points, const MR_MeshRelaxParams *params, const MR_std_function_bool_from_float *cb)
 
MRC_API MR_Vector3f MR_vertexPosEqualNeiAreas_3 (const MR_Mesh *mesh, MR_VertId v, bool noShrinkage)
 
MRC_API MR_Vector3f MR_vertexPosEqualNeiAreas_4 (const MR_MeshTopology *topology, const MR_VertCoords *points, MR_VertId v, bool noShrinkage)
 
MRC_API const bool * MR_MeshEqualizeTriAreasParams_Get_noShrinkage (const MR_MeshEqualizeTriAreasParams *_this)
 
MRC_API void MR_MeshEqualizeTriAreasParams_Set_noShrinkage (MR_MeshEqualizeTriAreasParams *_this, bool value)
 
MRC_API bool * MR_MeshEqualizeTriAreasParams_GetMutable_noShrinkage (MR_MeshEqualizeTriAreasParams *_this)
 
MRC_API MR_MeshEqualizeTriAreasParamsMR_MeshEqualizeTriAreasParams_DefaultConstruct (void)
 
MRC_API MR_MeshEqualizeTriAreasParamsMR_MeshEqualizeTriAreasParams_DefaultConstructArray (size_t num_elems)
 
MRC_API const MR_MeshEqualizeTriAreasParamsMR_MeshEqualizeTriAreasParams_OffsetPtr (const MR_MeshEqualizeTriAreasParams *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_MeshEqualizeTriAreasParamsMR_MeshEqualizeTriAreasParams_OffsetMutablePtr (MR_MeshEqualizeTriAreasParams *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 const MR_MeshRelaxParamsMR_MeshEqualizeTriAreasParams_UpcastTo_MR_MeshRelaxParams (const MR_MeshEqualizeTriAreasParams *object)
 
MRC_API MR_MeshRelaxParamsMR_MeshEqualizeTriAreasParams_MutableUpcastTo_MR_MeshRelaxParams (MR_MeshEqualizeTriAreasParams *object)
 Upcasts an instance of MR::MeshEqualizeTriAreasParams to its base class MR::MeshRelaxParams.
 
MRC_API const MR_RelaxParamsMR_MeshEqualizeTriAreasParams_UpcastTo_MR_RelaxParams (const MR_MeshEqualizeTriAreasParams *object)
 
MRC_API MR_RelaxParamsMR_MeshEqualizeTriAreasParams_MutableUpcastTo_MR_RelaxParams (MR_MeshEqualizeTriAreasParams *object)
 Upcasts an instance of MR::MeshEqualizeTriAreasParams to its base class MR::RelaxParams.
 
MRC_API MR_MeshEqualizeTriAreasParamsMR_MeshEqualizeTriAreasParams_ConstructFromAnother (const MR_MeshEqualizeTriAreasParams *_other)
 
MRC_API void MR_MeshEqualizeTriAreasParams_Destroy (const MR_MeshEqualizeTriAreasParams *_this)
 Destroys a heap-allocated instance of MR_MeshEqualizeTriAreasParams. Does nothing if the pointer is null.
 
MRC_API void MR_MeshEqualizeTriAreasParams_DestroyArray (const MR_MeshEqualizeTriAreasParams *_this)
 Destroys a heap-allocated array of MR_MeshEqualizeTriAreasParams. Does nothing if the pointer is null.
 
MRC_API MR_MeshEqualizeTriAreasParamsMR_MeshEqualizeTriAreasParams_AssignFromAnother (MR_MeshEqualizeTriAreasParams *_this, const MR_MeshEqualizeTriAreasParams *_other)
 
MRC_API bool MR_equalizeTriAreas_3 (MR_Mesh *mesh, const MR_MeshEqualizeTriAreasParams *params, const MR_std_function_bool_from_float *cb)
 
MRC_API bool MR_equalizeTriAreas_4 (const MR_MeshTopology *topology, MR_VertCoords *points, const MR_MeshEqualizeTriAreasParams *params, const MR_std_function_bool_from_float *cb)
 
MRC_API bool MR_relaxKeepVolume_3_MR_Mesh (MR_Mesh *mesh, const MR_MeshRelaxParams *params, const MR_std_function_bool_from_float *cb)
 
MRC_API bool MR_relaxKeepVolume_4 (const MR_MeshTopology *topology, MR_VertCoords *points, const MR_MeshRelaxParams *params, const MR_std_function_bool_from_float *cb)
 
MRC_API const float * MR_MeshApproxRelaxParams_Get_surfaceDilateRadius (const MR_MeshApproxRelaxParams *_this)
 
MRC_API void MR_MeshApproxRelaxParams_Set_surfaceDilateRadius (MR_MeshApproxRelaxParams *_this, float value)
 
MRC_API float * MR_MeshApproxRelaxParams_GetMutable_surfaceDilateRadius (MR_MeshApproxRelaxParams *_this)
 
MRC_API const MR_RelaxApproxTypeMR_MeshApproxRelaxParams_Get_type (const MR_MeshApproxRelaxParams *_this)
 
MRC_API void MR_MeshApproxRelaxParams_Set_type (MR_MeshApproxRelaxParams *_this, MR_RelaxApproxType value)
 
MRC_API MR_RelaxApproxTypeMR_MeshApproxRelaxParams_GetMutable_type (MR_MeshApproxRelaxParams *_this)
 
MRC_API MR_MeshApproxRelaxParamsMR_MeshApproxRelaxParams_DefaultConstruct (void)
 
MRC_API MR_MeshApproxRelaxParamsMR_MeshApproxRelaxParams_DefaultConstructArray (size_t num_elems)
 
MRC_API const MR_MeshApproxRelaxParamsMR_MeshApproxRelaxParams_OffsetPtr (const MR_MeshApproxRelaxParams *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_MeshApproxRelaxParamsMR_MeshApproxRelaxParams_OffsetMutablePtr (MR_MeshApproxRelaxParams *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 const MR_MeshRelaxParamsMR_MeshApproxRelaxParams_UpcastTo_MR_MeshRelaxParams (const MR_MeshApproxRelaxParams *object)
 
MRC_API MR_MeshRelaxParamsMR_MeshApproxRelaxParams_MutableUpcastTo_MR_MeshRelaxParams (MR_MeshApproxRelaxParams *object)
 Upcasts an instance of MR::MeshApproxRelaxParams to its base class MR::MeshRelaxParams.
 
MRC_API const MR_RelaxParamsMR_MeshApproxRelaxParams_UpcastTo_MR_RelaxParams (const MR_MeshApproxRelaxParams *object)
 
MRC_API MR_RelaxParamsMR_MeshApproxRelaxParams_MutableUpcastTo_MR_RelaxParams (MR_MeshApproxRelaxParams *object)
 Upcasts an instance of MR::MeshApproxRelaxParams to its base class MR::RelaxParams.
 
MRC_API MR_MeshApproxRelaxParamsMR_MeshApproxRelaxParams_ConstructFromAnother (const MR_MeshApproxRelaxParams *_other)
 
MRC_API void MR_MeshApproxRelaxParams_Destroy (const MR_MeshApproxRelaxParams *_this)
 Destroys a heap-allocated instance of MR_MeshApproxRelaxParams. Does nothing if the pointer is null.
 
MRC_API void MR_MeshApproxRelaxParams_DestroyArray (const MR_MeshApproxRelaxParams *_this)
 Destroys a heap-allocated array of MR_MeshApproxRelaxParams. Does nothing if the pointer is null.
 
MRC_API MR_MeshApproxRelaxParamsMR_MeshApproxRelaxParams_AssignFromAnother (MR_MeshApproxRelaxParams *_this, const MR_MeshApproxRelaxParams *_other)
 
MRC_API bool MR_relaxApprox_3_MR_Mesh (MR_Mesh *mesh, const MR_MeshApproxRelaxParams *params, const MR_std_function_bool_from_float *cb)
 
MRC_API bool MR_relaxApprox_4 (const MR_MeshTopology *topology, MR_VertCoords *points, const MR_MeshApproxRelaxParams *params, const MR_std_function_bool_from_float *cb)
 
MRC_API void MR_removeSpikes_4 (MR_Mesh *mesh, int32_t maxIterations, float minSumAngle, const MR_VertBitSet *region)
 
MRC_API void MR_removeSpikes_5 (const MR_MeshTopology *topology, MR_VertCoords *points, int32_t maxIterations, float minSumAngle, const MR_VertBitSet *region)
 
MRC_API void MR_smoothRegionBoundary (MR_Mesh *mesh, const MR_FaceBitSet *regionFaces, const int32_t *numIters)
 
MRC_API void MR_hardSmoothTetrahedrons_2 (MR_Mesh *mesh, const MR_VertBitSet *region)
 
MRC_API void MR_hardSmoothTetrahedrons_3 (const MR_MeshTopology *topology, MR_VertCoords *points, const MR_VertBitSet *region)
 

Typedef Documentation

◆ MR_FaceBitSet

typedef struct MR_FaceBitSet MR_FaceBitSet

◆ MR_Mesh

typedef struct MR_Mesh MR_Mesh

◆ MR_MeshApproxRelaxParams

Generated from class MR::MeshApproxRelaxParams. Base classes: Direct: (non-virtual) MR::MeshRelaxParams Indirect: (non-virtual) MR::RelaxParams

◆ MR_MeshEqualizeTriAreasParams

Generated from class MR::MeshEqualizeTriAreasParams. Base classes: Direct: (non-virtual) MR::MeshRelaxParams Indirect: (non-virtual) MR::RelaxParams

◆ MR_MeshRelaxParams

Generated from class MR::MeshRelaxParams. Base classes: Direct: (non-virtual) MR::RelaxParams Derived classes: Direct: (non-virtual) MR::MeshApproxRelaxParams MR::MeshEqualizeTriAreasParams

◆ MR_MeshTopology

◆ MR_RelaxParams

◆ MR_std_function_bool_from_float

◆ MR_VertBitSet

typedef struct MR_VertBitSet MR_VertBitSet

◆ MR_VertCoords

typedef struct MR_VertCoords MR_VertCoords

◆ MR_VertScalars

Function Documentation

◆ MR_equalizeTriAreas_3()

MRC_API bool MR_equalizeTriAreas_3 ( MR_Mesh * mesh,
const MR_MeshEqualizeTriAreasParams * params,
const MR_std_function_bool_from_float * cb )

applies given number of iterations with movement toward vertexPosEqualNeiAreas() to the whole mesh ( or some region if it is specified )

Returns
true if the operation completed successfully, and false if it was interrupted by the progress callback. Generated from function MR::equalizeTriAreas. Parameter mesh 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 cb is a single object. Parameter cb has a default argument: {}, pass a null pointer to use it.

◆ MR_equalizeTriAreas_4()

MRC_API bool MR_equalizeTriAreas_4 ( const MR_MeshTopology * topology,
MR_VertCoords * points,
const MR_MeshEqualizeTriAreasParams * params,
const MR_std_function_bool_from_float * cb )

Generated from function MR::equalizeTriAreas. Parameter topology can not be null. It is a single object. Parameter points 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 cb is a single object. Parameter cb has a default argument: {}, pass a null pointer to use it.

◆ MR_hardSmoothTetrahedrons_2()

MRC_API void MR_hardSmoothTetrahedrons_2 ( MR_Mesh * mesh,
const MR_VertBitSet * region )

move all region vertices with exactly three neighbor vertices in the center of the neighbors Generated from function MR::hardSmoothTetrahedrons. Parameter mesh can not be null. It is a single object. Parameter region defaults to a null pointer in C++.

◆ MR_hardSmoothTetrahedrons_3()

MRC_API void MR_hardSmoothTetrahedrons_3 ( const MR_MeshTopology * topology,
MR_VertCoords * points,
const MR_VertBitSet * region )

Generated from function MR::hardSmoothTetrahedrons. Parameter topology can not be null. It is a single object. Parameter points can not be null. It is a single object. Parameter region defaults to a null pointer in C++.

◆ MR_MeshApproxRelaxParams_AssignFromAnother()

MRC_API MR_MeshApproxRelaxParams * MR_MeshApproxRelaxParams_AssignFromAnother ( MR_MeshApproxRelaxParams * _this,
const MR_MeshApproxRelaxParams * _other )

Generated from a method of class MR::MeshApproxRelaxParams 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_MeshApproxRelaxParams_ConstructFromAnother()

MRC_API MR_MeshApproxRelaxParams * MR_MeshApproxRelaxParams_ConstructFromAnother ( const MR_MeshApproxRelaxParams * _other)

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

◆ MR_MeshApproxRelaxParams_DefaultConstruct()

MRC_API MR_MeshApproxRelaxParams * MR_MeshApproxRelaxParams_DefaultConstruct ( void )

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

◆ MR_MeshApproxRelaxParams_DefaultConstructArray()

MRC_API MR_MeshApproxRelaxParams * MR_MeshApproxRelaxParams_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_MeshApproxRelaxParams_DestroyArray(). Use MR_MeshApproxRelaxParams_OffsetMutablePtr() and MR_MeshApproxRelaxParams_OffsetPtr() to access the array elements.

◆ MR_MeshApproxRelaxParams_Destroy()

MRC_API void MR_MeshApproxRelaxParams_Destroy ( const MR_MeshApproxRelaxParams * _this)

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

◆ MR_MeshApproxRelaxParams_DestroyArray()

MRC_API void MR_MeshApproxRelaxParams_DestroyArray ( const MR_MeshApproxRelaxParams * _this)

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

◆ MR_MeshApproxRelaxParams_Get_surfaceDilateRadius()

MRC_API const float * MR_MeshApproxRelaxParams_Get_surfaceDilateRadius ( const MR_MeshApproxRelaxParams * _this)

radius to find neighbors by surface 0.0f - default = 1e-3 * sqrt(surface area) Returns a pointer to a member variable of class MR::MeshApproxRelaxParams named surfaceDilateRadius. 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_MeshApproxRelaxParams_Get_type()

MRC_API const MR_RelaxApproxType * MR_MeshApproxRelaxParams_Get_type ( const MR_MeshApproxRelaxParams * _this)

Returns a pointer to a member variable of class MR::MeshApproxRelaxParams named type. 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_MeshApproxRelaxParams_GetMutable_surfaceDilateRadius()

MRC_API float * MR_MeshApproxRelaxParams_GetMutable_surfaceDilateRadius ( MR_MeshApproxRelaxParams * _this)

radius to find neighbors by surface 0.0f - default = 1e-3 * sqrt(surface area) Returns a mutable pointer to a member variable of class MR::MeshApproxRelaxParams named surfaceDilateRadius. 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_MeshApproxRelaxParams_GetMutable_type()

MRC_API MR_RelaxApproxType * MR_MeshApproxRelaxParams_GetMutable_type ( MR_MeshApproxRelaxParams * _this)

Returns a mutable pointer to a member variable of class MR::MeshApproxRelaxParams named type. 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_MeshApproxRelaxParams_MutableUpcastTo_MR_MeshRelaxParams()

MRC_API MR_MeshRelaxParams * MR_MeshApproxRelaxParams_MutableUpcastTo_MR_MeshRelaxParams ( MR_MeshApproxRelaxParams * object)

Upcasts an instance of MR::MeshApproxRelaxParams to its base class MR::MeshRelaxParams.

◆ MR_MeshApproxRelaxParams_MutableUpcastTo_MR_RelaxParams()

MRC_API MR_RelaxParams * MR_MeshApproxRelaxParams_MutableUpcastTo_MR_RelaxParams ( MR_MeshApproxRelaxParams * object)

Upcasts an instance of MR::MeshApproxRelaxParams to its base class MR::RelaxParams.

◆ MR_MeshApproxRelaxParams_OffsetMutablePtr()

MRC_API MR_MeshApproxRelaxParams * MR_MeshApproxRelaxParams_OffsetMutablePtr ( MR_MeshApproxRelaxParams * 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_MeshApproxRelaxParams_OffsetPtr()

MRC_API const MR_MeshApproxRelaxParams * MR_MeshApproxRelaxParams_OffsetPtr ( const MR_MeshApproxRelaxParams * 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_MeshApproxRelaxParams_Set_surfaceDilateRadius()

MRC_API void MR_MeshApproxRelaxParams_Set_surfaceDilateRadius ( MR_MeshApproxRelaxParams * _this,
float value )

radius to find neighbors by surface 0.0f - default = 1e-3 * sqrt(surface area) Modifies a member variable of class MR::MeshApproxRelaxParams named surfaceDilateRadius. Parameter _this can not be null. It is a single object.

◆ MR_MeshApproxRelaxParams_Set_type()

MRC_API void MR_MeshApproxRelaxParams_Set_type ( MR_MeshApproxRelaxParams * _this,
MR_RelaxApproxType value )

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

◆ MR_MeshApproxRelaxParams_UpcastTo_MR_MeshRelaxParams()

MRC_API const MR_MeshRelaxParams * MR_MeshApproxRelaxParams_UpcastTo_MR_MeshRelaxParams ( const MR_MeshApproxRelaxParams * object)

Upcasts an instance of MR::MeshApproxRelaxParams to its base class MR::MeshRelaxParams. This version is acting on mutable pointers.

◆ MR_MeshApproxRelaxParams_UpcastTo_MR_RelaxParams()

MRC_API const MR_RelaxParams * MR_MeshApproxRelaxParams_UpcastTo_MR_RelaxParams ( const MR_MeshApproxRelaxParams * object)

Upcasts an instance of MR::MeshApproxRelaxParams to its base class MR::RelaxParams. This version is acting on mutable pointers.

◆ MR_MeshEqualizeTriAreasParams_AssignFromAnother()

MRC_API MR_MeshEqualizeTriAreasParams * MR_MeshEqualizeTriAreasParams_AssignFromAnother ( MR_MeshEqualizeTriAreasParams * _this,
const MR_MeshEqualizeTriAreasParams * _other )

Generated from a method of class MR::MeshEqualizeTriAreasParams 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_MeshEqualizeTriAreasParams_ConstructFromAnother()

MRC_API MR_MeshEqualizeTriAreasParams * MR_MeshEqualizeTriAreasParams_ConstructFromAnother ( const MR_MeshEqualizeTriAreasParams * _other)

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

◆ MR_MeshEqualizeTriAreasParams_DefaultConstruct()

MRC_API MR_MeshEqualizeTriAreasParams * MR_MeshEqualizeTriAreasParams_DefaultConstruct ( void )

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

◆ MR_MeshEqualizeTriAreasParams_DefaultConstructArray()

MRC_API MR_MeshEqualizeTriAreasParams * MR_MeshEqualizeTriAreasParams_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_MeshEqualizeTriAreasParams_DestroyArray(). Use MR_MeshEqualizeTriAreasParams_OffsetMutablePtr() and MR_MeshEqualizeTriAreasParams_OffsetPtr() to access the array elements.

◆ MR_MeshEqualizeTriAreasParams_Destroy()

MRC_API void MR_MeshEqualizeTriAreasParams_Destroy ( const MR_MeshEqualizeTriAreasParams * _this)

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

◆ MR_MeshEqualizeTriAreasParams_DestroyArray()

MRC_API void MR_MeshEqualizeTriAreasParams_DestroyArray ( const MR_MeshEqualizeTriAreasParams * _this)

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

◆ MR_MeshEqualizeTriAreasParams_Get_noShrinkage()

MRC_API const bool * MR_MeshEqualizeTriAreasParams_Get_noShrinkage ( const MR_MeshEqualizeTriAreasParams * _this)

if true prevents the surface from shrinkage after many iterations; technically it is done by solving the same task in the plane orthogonal to normal direction Returns a pointer to a member variable of class MR::MeshEqualizeTriAreasParams named noShrinkage. 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_MeshEqualizeTriAreasParams_GetMutable_noShrinkage()

MRC_API bool * MR_MeshEqualizeTriAreasParams_GetMutable_noShrinkage ( MR_MeshEqualizeTriAreasParams * _this)

if true prevents the surface from shrinkage after many iterations; technically it is done by solving the same task in the plane orthogonal to normal direction Returns a mutable pointer to a member variable of class MR::MeshEqualizeTriAreasParams named noShrinkage. 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_MeshEqualizeTriAreasParams_MutableUpcastTo_MR_MeshRelaxParams()

MRC_API MR_MeshRelaxParams * MR_MeshEqualizeTriAreasParams_MutableUpcastTo_MR_MeshRelaxParams ( MR_MeshEqualizeTriAreasParams * object)

Upcasts an instance of MR::MeshEqualizeTriAreasParams to its base class MR::MeshRelaxParams.

◆ MR_MeshEqualizeTriAreasParams_MutableUpcastTo_MR_RelaxParams()

MRC_API MR_RelaxParams * MR_MeshEqualizeTriAreasParams_MutableUpcastTo_MR_RelaxParams ( MR_MeshEqualizeTriAreasParams * object)

Upcasts an instance of MR::MeshEqualizeTriAreasParams to its base class MR::RelaxParams.

◆ MR_MeshEqualizeTriAreasParams_OffsetMutablePtr()

MRC_API MR_MeshEqualizeTriAreasParams * MR_MeshEqualizeTriAreasParams_OffsetMutablePtr ( MR_MeshEqualizeTriAreasParams * 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_MeshEqualizeTriAreasParams_OffsetPtr()

MRC_API const MR_MeshEqualizeTriAreasParams * MR_MeshEqualizeTriAreasParams_OffsetPtr ( const MR_MeshEqualizeTriAreasParams * 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_MeshEqualizeTriAreasParams_Set_noShrinkage()

MRC_API void MR_MeshEqualizeTriAreasParams_Set_noShrinkage ( MR_MeshEqualizeTriAreasParams * _this,
bool value )

if true prevents the surface from shrinkage after many iterations; technically it is done by solving the same task in the plane orthogonal to normal direction Modifies a member variable of class MR::MeshEqualizeTriAreasParams named noShrinkage. Parameter _this can not be null. It is a single object.

◆ MR_MeshEqualizeTriAreasParams_UpcastTo_MR_MeshRelaxParams()

MRC_API const MR_MeshRelaxParams * MR_MeshEqualizeTriAreasParams_UpcastTo_MR_MeshRelaxParams ( const MR_MeshEqualizeTriAreasParams * object)

Upcasts an instance of MR::MeshEqualizeTriAreasParams to its base class MR::MeshRelaxParams. This version is acting on mutable pointers.

◆ MR_MeshEqualizeTriAreasParams_UpcastTo_MR_RelaxParams()

MRC_API const MR_RelaxParams * MR_MeshEqualizeTriAreasParams_UpcastTo_MR_RelaxParams ( const MR_MeshEqualizeTriAreasParams * object)

Upcasts an instance of MR::MeshEqualizeTriAreasParams to its base class MR::RelaxParams. This version is acting on mutable pointers.

◆ MR_MeshRelaxParams_AssignFromAnother()

MRC_API MR_MeshRelaxParams * MR_MeshRelaxParams_AssignFromAnother ( MR_MeshRelaxParams * _this,
const MR_MeshRelaxParams * _other )

Generated from a method of class MR::MeshRelaxParams 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_MeshRelaxParams_ConstructFromAnother()

MRC_API MR_MeshRelaxParams * MR_MeshRelaxParams_ConstructFromAnother ( const MR_MeshRelaxParams * _other)

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

◆ MR_MeshRelaxParams_DefaultConstruct()

MRC_API MR_MeshRelaxParams * MR_MeshRelaxParams_DefaultConstruct ( void )

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

◆ MR_MeshRelaxParams_DefaultConstructArray()

MRC_API MR_MeshRelaxParams * MR_MeshRelaxParams_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_MeshRelaxParams_DestroyArray(). Use MR_MeshRelaxParams_OffsetMutablePtr() and MR_MeshRelaxParams_OffsetPtr() to access the array elements.

◆ MR_MeshRelaxParams_Destroy()

MRC_API void MR_MeshRelaxParams_Destroy ( const MR_MeshRelaxParams * _this)

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

◆ MR_MeshRelaxParams_DestroyArray()

MRC_API void MR_MeshRelaxParams_DestroyArray ( const MR_MeshRelaxParams * _this)

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

◆ MR_MeshRelaxParams_Get_hardSmoothTetrahedrons()

MRC_API const bool * MR_MeshRelaxParams_Get_hardSmoothTetrahedrons ( const MR_MeshRelaxParams * _this)

move all region vertices with exactly three neighbor vertices in the center of the neighbors Returns a pointer to a member variable of class MR::MeshRelaxParams named hardSmoothTetrahedrons. 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_MeshRelaxParams_Get_weights()

MRC_API const MR_VertScalars *const * MR_MeshRelaxParams_Get_weights ( const MR_MeshRelaxParams * _this)

weight for each vertex. By default, all the vertices have equal weights. Returns a pointer to a member variable of class MR::MeshRelaxParams named weights. 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_MeshRelaxParams_GetMutable_hardSmoothTetrahedrons()

MRC_API bool * MR_MeshRelaxParams_GetMutable_hardSmoothTetrahedrons ( MR_MeshRelaxParams * _this)

move all region vertices with exactly three neighbor vertices in the center of the neighbors Returns a mutable pointer to a member variable of class MR::MeshRelaxParams named hardSmoothTetrahedrons. 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_MeshRelaxParams_GetMutable_weights()

MRC_API const MR_VertScalars ** MR_MeshRelaxParams_GetMutable_weights ( MR_MeshRelaxParams * _this)

weight for each vertex. By default, all the vertices have equal weights. Returns a mutable pointer to a member variable of class MR::MeshRelaxParams named weights. 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_MeshRelaxParams_MutableStaticDowncastTo_MR_MeshApproxRelaxParams()

MRC_API MR_MeshApproxRelaxParams * MR_MeshRelaxParams_MutableStaticDowncastTo_MR_MeshApproxRelaxParams ( MR_MeshRelaxParams * object)

Downcasts an instance of MR::MeshRelaxParams to a derived class MR::MeshApproxRelaxParams. This is a static downcast, it trusts the programmer that the target type is correct. Results in UB and returns an invalid pointer otherwise.

◆ MR_MeshRelaxParams_MutableStaticDowncastTo_MR_MeshEqualizeTriAreasParams()

MRC_API MR_MeshEqualizeTriAreasParams * MR_MeshRelaxParams_MutableStaticDowncastTo_MR_MeshEqualizeTriAreasParams ( MR_MeshRelaxParams * object)

Downcasts an instance of MR::MeshRelaxParams to a derived class MR::MeshEqualizeTriAreasParams. This is a static downcast, it trusts the programmer that the target type is correct. Results in UB and returns an invalid pointer otherwise.

◆ MR_MeshRelaxParams_MutableUpcastTo_MR_RelaxParams()

MRC_API MR_RelaxParams * MR_MeshRelaxParams_MutableUpcastTo_MR_RelaxParams ( MR_MeshRelaxParams * object)

Upcasts an instance of MR::MeshRelaxParams to its base class MR::RelaxParams.

◆ MR_MeshRelaxParams_OffsetMutablePtr()

MRC_API MR_MeshRelaxParams * MR_MeshRelaxParams_OffsetMutablePtr ( MR_MeshRelaxParams * 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_MeshRelaxParams_OffsetPtr()

MRC_API const MR_MeshRelaxParams * MR_MeshRelaxParams_OffsetPtr ( const MR_MeshRelaxParams * 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_MeshRelaxParams_Set_hardSmoothTetrahedrons()

MRC_API void MR_MeshRelaxParams_Set_hardSmoothTetrahedrons ( MR_MeshRelaxParams * _this,
bool value )

move all region vertices with exactly three neighbor vertices in the center of the neighbors Modifies a member variable of class MR::MeshRelaxParams named hardSmoothTetrahedrons. Parameter _this can not be null. It is a single object.

◆ MR_MeshRelaxParams_Set_weights()

MRC_API void MR_MeshRelaxParams_Set_weights ( MR_MeshRelaxParams * _this,
const MR_VertScalars * value )

weight for each vertex. By default, all the vertices have equal weights. Modifies a member variable of class MR::MeshRelaxParams named weights. Parameter _this can not be null. It is a single object.

◆ MR_MeshRelaxParams_StaticDowncastTo_MR_MeshApproxRelaxParams()

MRC_API const MR_MeshApproxRelaxParams * MR_MeshRelaxParams_StaticDowncastTo_MR_MeshApproxRelaxParams ( const MR_MeshRelaxParams * object)

Downcasts an instance of MR::MeshRelaxParams to a derived class MR::MeshApproxRelaxParams. This is a static downcast, it trusts the programmer that the target type is correct. Results in UB and returns an invalid pointer otherwise. This version is acting on mutable pointers.

◆ MR_MeshRelaxParams_StaticDowncastTo_MR_MeshEqualizeTriAreasParams()

MRC_API const MR_MeshEqualizeTriAreasParams * MR_MeshRelaxParams_StaticDowncastTo_MR_MeshEqualizeTriAreasParams ( const MR_MeshRelaxParams * object)

Downcasts an instance of MR::MeshRelaxParams to a derived class MR::MeshEqualizeTriAreasParams. This is a static downcast, it trusts the programmer that the target type is correct. Results in UB and returns an invalid pointer otherwise. This version is acting on mutable pointers.

◆ MR_MeshRelaxParams_UpcastTo_MR_RelaxParams()

MRC_API const MR_RelaxParams * MR_MeshRelaxParams_UpcastTo_MR_RelaxParams ( const MR_MeshRelaxParams * object)

Upcasts an instance of MR::MeshRelaxParams to its base class MR::RelaxParams. This version is acting on mutable pointers.

◆ MR_relax_3_MR_Mesh()

MRC_API bool MR_relax_3_MR_Mesh ( MR_Mesh * mesh,
const MR_MeshRelaxParams * params,
const MR_std_function_bool_from_float * cb )

applies given number of relaxation iterations to the whole mesh ( or some region if it is specified )

Returns
true if was finished successfully, false if was interrupted by progress callback Generated from function MR::relax. Parameter mesh 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 cb is a single object. Parameter cb has a default argument: {}, pass a null pointer to use it.

◆ MR_relax_4()

MRC_API bool MR_relax_4 ( const MR_MeshTopology * topology,
MR_VertCoords * points,
const MR_MeshRelaxParams * params,
const MR_std_function_bool_from_float * cb )

Generated from function MR::relax. Parameter topology can not be null. It is a single object. Parameter points 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 cb is a single object. Parameter cb has a default argument: {}, pass a null pointer to use it.

◆ MR_relaxApprox_3_MR_Mesh()

MRC_API bool MR_relaxApprox_3_MR_Mesh ( MR_Mesh * mesh,
const MR_MeshApproxRelaxParams * params,
const MR_std_function_bool_from_float * cb )

applies given number of relaxation iterations to the whole mesh ( or some region if it is specified ) approx neighborhoods

Returns
true if the operation completed successfully, and false if it was interrupted by the progress callback. Generated from function MR::relaxApprox. Parameter mesh 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 cb is a single object. Parameter cb has a default argument: {}, pass a null pointer to use it.

◆ MR_relaxApprox_4()

MRC_API bool MR_relaxApprox_4 ( const MR_MeshTopology * topology,
MR_VertCoords * points,
const MR_MeshApproxRelaxParams * params,
const MR_std_function_bool_from_float * cb )

Generated from function MR::relaxApprox. Parameter topology can not be null. It is a single object. Parameter points 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 cb is a single object. Parameter cb has a default argument: {}, pass a null pointer to use it.

◆ MR_relaxKeepVolume_3_MR_Mesh()

MRC_API bool MR_relaxKeepVolume_3_MR_Mesh ( MR_Mesh * mesh,
const MR_MeshRelaxParams * params,
const MR_std_function_bool_from_float * cb )

applies given number of relaxation iterations to the whole mesh ( or some region if it is specified )
do not really keeps volume but tries hard

Returns
true if the operation completed successfully, and false if it was interrupted by the progress callback. Generated from function MR::relaxKeepVolume. Parameter mesh 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 cb is a single object. Parameter cb has a default argument: {}, pass a null pointer to use it.

◆ MR_relaxKeepVolume_4()

MRC_API bool MR_relaxKeepVolume_4 ( const MR_MeshTopology * topology,
MR_VertCoords * points,
const MR_MeshRelaxParams * params,
const MR_std_function_bool_from_float * cb )

Generated from function MR::relaxKeepVolume. Parameter topology can not be null. It is a single object. Parameter points 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 cb is a single object. Parameter cb has a default argument: {}, pass a null pointer to use it.

◆ MR_removeSpikes_4()

MRC_API void MR_removeSpikes_4 ( MR_Mesh * mesh,
int32_t maxIterations,
float minSumAngle,
const MR_VertBitSet * region )

applies at most given number of relaxation iterations the spikes detected by given threshold Generated from function MR::removeSpikes. Parameter mesh can not be null. It is a single object. Parameter region defaults to a null pointer in C++.

◆ MR_removeSpikes_5()

MRC_API void MR_removeSpikes_5 ( const MR_MeshTopology * topology,
MR_VertCoords * points,
int32_t maxIterations,
float minSumAngle,
const MR_VertBitSet * region )

Generated from function MR::removeSpikes. Parameter topology can not be null. It is a single object. Parameter points can not be null. It is a single object. Parameter region defaults to a null pointer in C++.

◆ MR_smoothRegionBoundary()

MRC_API void MR_smoothRegionBoundary ( MR_Mesh * mesh,
const MR_FaceBitSet * regionFaces,
const int32_t * numIters )

given a region of faces on the mesh, moves boundary vertices of the region to make the region contour much smoother with minor optimization of mesh topology near region boundary;

Parameters
numIters>= 1 how many times to run the algorithm to achieve a better quality, solution is typically oscillates back and forth so even number of iterations is recommended Generated from function MR::smoothRegionBoundary. Parameter mesh can not be null. It is a single object. Parameter regionFaces can not be null. It is a single object. Parameter numIters has a default argument: 4, pass a null pointer to use it.

◆ MR_vertexPosEqualNeiAreas_3()

MRC_API MR_Vector3f MR_vertexPosEqualNeiAreas_3 ( const MR_Mesh * mesh,
MR_VertId v,
bool noShrinkage )

computes position of a vertex, when all neighbor triangles have almost equal areas, more precisely it minimizes sum_i (area_i)^2 by adjusting the position of this vertex only Generated from function MR::vertexPosEqualNeiAreas. Parameter mesh can not be null. It is a single object.

◆ MR_vertexPosEqualNeiAreas_4()

MRC_API MR_Vector3f MR_vertexPosEqualNeiAreas_4 ( const MR_MeshTopology * topology,
const MR_VertCoords * points,
MR_VertId v,
bool noShrinkage )

Generated from function MR::vertexPosEqualNeiAreas. Parameter topology can not be null. It is a single object. Parameter points can not be null. It is a single object.