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
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15typedef struct MR_FaceBitSet MR_FaceBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
16typedef struct MR_Mesh MR_Mesh; // Defined in `#include <MRCMesh/MRMesh.h>`.
17typedef struct MR_MeshTopology MR_MeshTopology; // Defined in `#include <MRCMesh/MRMeshTopology.h>`.
18typedef struct MR_RelaxParams MR_RelaxParams; // Defined in `#include <MRCMesh/MRRelaxParams.h>`.
19typedef struct MR_VertBitSet MR_VertBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
20typedef struct MR_VertCoords MR_VertCoords; // Defined in `#include <MRCMesh/MRVector.h>`.
21typedef struct MR_VertScalars MR_VertScalars; // Defined in `#include <MRCMesh/MRVector.h>`.
22typedef struct MR_std_function_bool_from_float MR_std_function_bool_from_float; // Defined in `#include <MRCMisc/std_function_bool_from_float.h>`.
23
24
34
42
50
56
61
67
73
78
84
88
93
96
99
103
106
111
115
120
124
129
132
135
141
151
160
166
170MRC_API MR_Vector3f MR_vertexPosEqualNeiAreas_4(const MR_MeshTopology *topology, const MR_VertCoords *points, MR_VertId v, bool noShrinkage);
171
178
184
191
195
200
203
206
210
213
217
220
225
228
231
237
247
256
267
276
283
289
296
301
305
310
314
319
322
325
329
332
336
339
344
347
350
356
367
376
381MRC_API void MR_removeSpikes_4(MR_Mesh *mesh, int maxIterations, float minSumAngle, const MR_VertBitSet *region);
382
387MRC_API void MR_removeSpikes_5(const MR_MeshTopology *topology, MR_VertCoords *points, int maxIterations, float minSumAngle, const MR_VertBitSet *region);
388
397MRC_API void MR_smoothRegionBoundary(MR_Mesh *mesh, const MR_FaceBitSet *regionFaces, const int *numIters);
398
404
410
411#ifdef __cplusplus
412} // extern "C"
413#endif
struct MR_MeshTopology MR_MeshTopology
Definition MR2DContoursTriangulation.h:15
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:24
struct MR_VertCoords MR_VertCoords
Definition MRAABBTreePoints.h:21
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:12
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:49
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:41
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 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 void MR_smoothRegionBoundary(MR_Mesh *mesh, const MR_FaceBitSet *regionFaces, const int *numIters)
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 void MR_removeSpikes_5(const MR_MeshTopology *topology, MR_VertCoords *points, int maxIterations, float minSumAngle, const MR_VertBitSet *region)
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 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:18
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_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:33
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 void MR_removeSpikes_4(MR_Mesh *mesh, int maxIterations, float minSumAngle, const MR_VertBitSet *region)
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.
MR_RelaxApproxType
Definition MRRelaxParams.h:32
#define MRC_API
Definition exports.h:11
Definition MRVector3.h:50
Definition MRId.h:55