MeshLib C Docs
Loading...
Searching...
No Matches
MRMeshRelax.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMesh/MRId.h>
5#include <MRCMesh/MRVector3.h>
6#include <MRCMisc/exports.h>
7
8#include <stdbool.h>
9#include <stddef.h>
10#include <stdint.h>
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16typedef struct MR_FaceBitSet MR_FaceBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
17typedef struct MR_Mesh MR_Mesh; // Defined in `#include <MRCMesh/MRMesh.h>`.
18typedef struct MR_MeshTopology MR_MeshTopology; // Defined in `#include <MRCMesh/MRMeshTopology.h>`.
19typedef struct MR_RelaxParams MR_RelaxParams; // Defined in `#include <MRCMesh/MRRelaxParams.h>`.
20typedef struct MR_VertBitSet MR_VertBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
21typedef struct MR_VertCoords MR_VertCoords; // Defined in `#include <MRCMesh/MRVector.h>`.
22typedef struct MR_VertScalars MR_VertScalars; // Defined in `#include <MRCMesh/MRVector.h>`.
23typedef struct MR_std_function_bool_from_float MR_std_function_bool_from_float; // Defined in `#include <MRCMisc/std_function_bool_from_float.h>`.
24
25
35
43
51
57
62
68
74
79
85
89
94
97
100
104
107
112
116
121
125
130
133
136
142
152
161
167
171MRC_API MR_Vector3f MR_vertexPosEqualNeiAreas_4(const MR_MeshTopology *topology, const MR_VertCoords *points, MR_VertId v, bool noShrinkage);
172
179
185
192
196
201
204
207
211
214
218
221
226
229
232
238
248
257
268
277
284
290
297
302
306
311
315
320
323
326
330
333
337
340
345
348
351
357
368
377
382MRC_API void MR_removeSpikes_4(MR_Mesh *mesh, int32_t maxIterations, float minSumAngle, const MR_VertBitSet *region);
383
388MRC_API void MR_removeSpikes_5(const MR_MeshTopology *topology, MR_VertCoords *points, int32_t maxIterations, float minSumAngle, const MR_VertBitSet *region);
389
398MRC_API void MR_smoothRegionBoundary(MR_Mesh *mesh, const MR_FaceBitSet *regionFaces, const int32_t *numIters);
399
405
411
412#ifdef __cplusplus
413} // extern "C"
414#endif
struct MR_MeshTopology MR_MeshTopology
Definition MR2DContoursTriangulation.h:16
struct MR_std_function_bool_from_float MR_std_function_bool_from_float
Definition MR3mf.h:10
struct MR_FaceBitSet MR_FaceBitSet
Definition MRAABBTreeBase.h:25
struct MR_VertCoords MR_VertCoords
Definition MRAABBTreePoints.h:22
struct MR_VertBitSet MR_VertBitSet
Definition MRAABBTree.h:15
struct MR_VertScalars MR_VertScalars
Definition MRAggregateFlow.h:17
struct MR_Mesh MR_Mesh
Definition MRCtm.h:13
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...
MRC_API MR_MeshRelaxParams * MR_MeshRelaxParams_ConstructFromAnother(const MR_MeshRelaxParams *_other)
MRC_API const MR_MeshEqualizeTriAreasParams * MR_MeshRelaxParams_StaticDowncastTo_MR_MeshEqualizeTriAreasParams(const MR_MeshRelaxParams *object)
struct MR_MeshApproxRelaxParams MR_MeshApproxRelaxParams
Definition MRMeshRelax.h:50
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 const MR_MeshRelaxParams * MR_MeshApproxRelaxParams_UpcastTo_MR_MeshRelaxParams(const MR_MeshApproxRelaxParams *object)
MRC_API void MR_MeshEqualizeTriAreasParams_Destroy(const MR_MeshEqualizeTriAreasParams *_this)
Destroys a heap-allocated instance of MR_MeshEqualizeTriAreasParams. Does nothing if the pointer is n...
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...
MRC_API MR_MeshApproxRelaxParams * MR_MeshApproxRelaxParams_DefaultConstructArray(size_t num_elems)
struct MR_MeshEqualizeTriAreasParams MR_MeshEqualizeTriAreasParams
Definition MRMeshRelax.h:42
MRC_API MR_MeshRelaxParams * MR_MeshRelaxParams_DefaultConstruct(void)
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_4(const MR_MeshTopology *topology, const MR_VertCoords *points, MR_VertId v, bool noShrinkage)
MRC_API MR_MeshEqualizeTriAreasParams * MR_MeshEqualizeTriAreasParams_ConstructFromAnother(const MR_MeshEqualizeTriAreasParams *_other)
MRC_API MR_MeshEqualizeTriAreasParams * MR_MeshRelaxParams_MutableStaticDowncastTo_MR_MeshEqualizeTriAreasParams(MR_MeshRelaxParams *object)
MRC_API void MR_hardSmoothTetrahedrons_2(MR_Mesh *mesh, const MR_VertBitSet *region)
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 bool MR_relaxKeepVolume_3_MR_Mesh(MR_Mesh *mesh, const MR_MeshRelaxParams *params, const MR_std_function_bool_from_float *cb)
MRC_API const MR_RelaxParams * MR_MeshEqualizeTriAreasParams_UpcastTo_MR_RelaxParams(const MR_MeshEqualizeTriAreasParams *object)
MRC_API MR_MeshEqualizeTriAreasParams * MR_MeshEqualizeTriAreasParams_AssignFromAnother(MR_MeshEqualizeTriAreasParams *_this, const MR_MeshEqualizeTriAreasParams *_other)
MRC_API MR_Vector3f MR_vertexPosEqualNeiAreas_3(const MR_Mesh *mesh, MR_VertId v, bool noShrinkage)
MRC_API const float * MR_MeshApproxRelaxParams_Get_surfaceDilateRadius(const MR_MeshApproxRelaxParams *_this)
MRC_API MR_MeshEqualizeTriAreasParams * MR_MeshEqualizeTriAreasParams_DefaultConstruct(void)
MRC_API void MR_MeshApproxRelaxParams_Set_surfaceDilateRadius(MR_MeshApproxRelaxParams *_this, float value)
MRC_API const bool * MR_MeshEqualizeTriAreasParams_Get_noShrinkage(const MR_MeshEqualizeTriAreasParams *_this)
MRC_API MR_MeshApproxRelaxParams * MR_MeshApproxRelaxParams_ConstructFromAnother(const MR_MeshApproxRelaxParams *_other)
MRC_API void MR_MeshEqualizeTriAreasParams_Set_noShrinkage(MR_MeshEqualizeTriAreasParams *_this, bool value)
MRC_API MR_MeshEqualizeTriAreasParams * MR_MeshEqualizeTriAreasParams_DefaultConstructArray(size_t num_elems)
MRC_API void MR_MeshRelaxParams_Set_weights(MR_MeshRelaxParams *_this, const MR_VertScalars *value)
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...
MRC_API const MR_RelaxApproxType * MR_MeshApproxRelaxParams_Get_type(const MR_MeshApproxRelaxParams *_this)
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 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 void MR_hardSmoothTetrahedrons_3(const MR_MeshTopology *topology, MR_VertCoords *points, const MR_VertBitSet *region)
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_MeshRelaxParams_Destroy(const MR_MeshRelaxParams *_this)
Destroys a heap-allocated instance of MR_MeshRelaxParams. Does nothing if the pointer is null.
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...
MRC_API void MR_MeshApproxRelaxParams_Set_type(MR_MeshApproxRelaxParams *_this, MR_RelaxApproxType value)
MRC_API float * MR_MeshApproxRelaxParams_GetMutable_surfaceDilateRadius(MR_MeshApproxRelaxParams *_this)
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 void MR_removeSpikes_4(MR_Mesh *mesh, int32_t maxIterations, float minSumAngle, const MR_VertBitSet *region)
MRC_API bool * MR_MeshEqualizeTriAreasParams_GetMutable_noShrinkage(MR_MeshEqualizeTriAreasParams *_this)
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_relaxKeepVolume_4(const MR_MeshTopology *topology, MR_VertCoords *points, const MR_MeshRelaxParams *params, const MR_std_function_bool_from_float *cb)
MRC_API MR_MeshRelaxParams * MR_MeshRelaxParams_DefaultConstructArray(size_t num_elems)
MRC_API MR_MeshRelaxParams * MR_MeshEqualizeTriAreasParams_MutableUpcastTo_MR_MeshRelaxParams(MR_MeshEqualizeTriAreasParams *object)
Upcasts an instance of MR::MeshEqualizeTriAreasParams to its base class MR::MeshRelaxParams.
MRC_API MR_MeshApproxRelaxParams * MR_MeshApproxRelaxParams_DefaultConstruct(void)
MRC_API MR_RelaxApproxType * MR_MeshApproxRelaxParams_GetMutable_type(MR_MeshApproxRelaxParams *_this)
MRC_API const MR_RelaxParams * MR_MeshApproxRelaxParams_UpcastTo_MR_RelaxParams(const MR_MeshApproxRelaxParams *object)
MRC_API const MR_VertScalars ** MR_MeshRelaxParams_GetMutable_weights(MR_MeshRelaxParams *_this)
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 void MR_smoothRegionBoundary(MR_Mesh *mesh, const MR_FaceBitSet *regionFaces, const int32_t *numIters)
MRC_API MR_RelaxParams * MR_MeshApproxRelaxParams_MutableUpcastTo_MR_RelaxParams(MR_MeshApproxRelaxParams *object)
Upcasts an instance of MR::MeshApproxRelaxParams to its base class MR::RelaxParams.
MRC_API const MR_VertScalars *const * MR_MeshRelaxParams_Get_weights(const MR_MeshRelaxParams *_this)
MRC_API const MR_RelaxParams * MR_MeshRelaxParams_UpcastTo_MR_RelaxParams(const MR_MeshRelaxParams *object)
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...
struct MR_RelaxParams MR_RelaxParams
Definition MRMeshRelax.h:19
MRC_API MR_MeshRelaxParams * MR_MeshApproxRelaxParams_MutableUpcastTo_MR_MeshRelaxParams(MR_MeshApproxRelaxParams *object)
Upcasts an instance of MR::MeshApproxRelaxParams to its base class MR::MeshRelaxParams.
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_MeshEqualizeTriAreasParams_DestroyArray(const MR_MeshEqualizeTriAreasParams *_this)
Destroys a heap-allocated array of MR_MeshEqualizeTriAreasParams. Does nothing if the pointer is null...
MRC_API MR_RelaxParams * MR_MeshEqualizeTriAreasParams_MutableUpcastTo_MR_RelaxParams(MR_MeshEqualizeTriAreasParams *object)
Upcasts an instance of MR::MeshEqualizeTriAreasParams to its base class MR::RelaxParams.
struct MR_MeshRelaxParams MR_MeshRelaxParams
Definition MRMeshRelax.h:34
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...
MRC_API void MR_MeshRelaxParams_Set_hardSmoothTetrahedrons(MR_MeshRelaxParams *_this, bool value)
MRC_API MR_MeshApproxRelaxParams * MR_MeshRelaxParams_MutableStaticDowncastTo_MR_MeshApproxRelaxParams(MR_MeshRelaxParams *object)
MRC_API MR_MeshRelaxParams * MR_MeshRelaxParams_AssignFromAnother(MR_MeshRelaxParams *_this, const MR_MeshRelaxParams *_other)
MRC_API bool * MR_MeshRelaxParams_GetMutable_hardSmoothTetrahedrons(MR_MeshRelaxParams *_this)
MRC_API const MR_MeshApproxRelaxParams * MR_MeshRelaxParams_StaticDowncastTo_MR_MeshApproxRelaxParams(const MR_MeshRelaxParams *object)
MRC_API MR_MeshApproxRelaxParams * MR_MeshApproxRelaxParams_AssignFromAnother(MR_MeshApproxRelaxParams *_this, const MR_MeshApproxRelaxParams *_other)
MRC_API const MR_MeshRelaxParams * MR_MeshEqualizeTriAreasParams_UpcastTo_MR_MeshRelaxParams(const MR_MeshEqualizeTriAreasParams *object)
MRC_API const bool * MR_MeshRelaxParams_Get_hardSmoothTetrahedrons(const MR_MeshRelaxParams *_this)
MRC_API MR_RelaxParams * MR_MeshRelaxParams_MutableUpcastTo_MR_RelaxParams(MR_MeshRelaxParams *object)
Upcasts an instance of MR::MeshRelaxParams to its base class MR::RelaxParams.
int32_t MR_RelaxApproxType
Definition MRRelaxParams.h:32
#define MRC_API
Definition exports.h:11
Definition MRVector3.h:51
Definition MRId.h:56