MeshLib C Docs
Loading...
Searching...
No Matches
MRPositionVertsSmoothly.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMesh/MREnums.h>
4#include <MRCMisc/common.h>
5#include <MRCMisc/exports.h>
6
7#include <stdbool.h>
8#include <stddef.h>
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14typedef struct MR_Mesh MR_Mesh; // Defined in `#include <MRCMesh/MRMesh.h>`.
15typedef struct MR_MeshTopology MR_MeshTopology; // Defined in `#include <MRCMesh/MRMeshTopology.h>`.
16typedef struct MR_VertBitSet MR_VertBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
17typedef struct MR_VertCoords MR_VertCoords; // Defined in `#include <MRCMesh/MRVector.h>`.
18typedef struct MR_std_function_bool_from_MR_FaceId MR_std_function_bool_from_MR_FaceId; // Defined in `#include <MRCMisc/std_function_bool_from_MR_FaceId.h>`.
19typedef struct MR_std_function_float_from_MR_UndirectedEdgeId MR_std_function_float_from_MR_UndirectedEdgeId; // Defined in `#include <MRCMisc/std_function_float_from_MR_UndirectedEdgeId.h>`.
20typedef struct MR_std_function_float_from_MR_VertId MR_std_function_float_from_MR_VertId; // Defined in `#include <MRCMisc/std_function_float_from_MR_VertId.h>`.
21
22
25
28
31
41MRC_API void MR_positionVertsSmoothly_5(MR_Mesh *mesh, const MR_VertBitSet *verts, const MR_EdgeWeights *edgeWeights, const MR_VertexMass *vmass, const MR_VertBitSet *fixedSharpVertices);
42
50MRC_API void MR_positionVertsSmoothly_6(const MR_MeshTopology *topology, MR_VertCoords *points, const MR_VertBitSet *verts, const MR_EdgeWeights *edgeWeights, const MR_VertexMass *vmass, const MR_VertBitSet *fixedSharpVertices);
51
58
64
71
77
82
88
94
99
105
111
116
122
128
133
139
143
148
152
155
158
162
165
168
173
179
185
190
196
201
207
208// must be defined by the caller
213
214// must be defined by the caller
218
219// must be defined by the caller
224
230
235
241
247
252
258
264
269
275
281
286
292
296
301
304MRC_API MR_SpacingSettings *MR_SpacingSettings_ConstructFrom(const MR_VertBitSet *region, MR_PassBy dist_pass_by, MR_std_function_float_from_MR_UndirectedEdgeId *dist, int numIters, float stabilizer, float maxSumNegW, MR_PassBy isInverted_pass_by, MR_std_function_bool_from_MR_FaceId *isInverted);
305
308
311
315
318
321
326
332
338
346
353
361
368
374
381
388
394
401
407
412
418
422
427
430MRC_API MR_InflateSettings *MR_InflateSettings_ConstructFrom(float pressure, int iterations, bool preSmooth, bool gradualPressureGrowth);
431
434
437
442
445
448
454
462MRC_API void MR_inflate_3(MR_Mesh *mesh, const MR_VertBitSet *verts, const MR_InflateSettings *settings);
463
469MRC_API void MR_inflate_4(const MR_MeshTopology *topology, MR_VertCoords *points, const MR_VertBitSet *verts, const MR_InflateSettings *settings);
470
478MRC_API void MR_inflate1(const MR_MeshTopology *topology, MR_VertCoords *points, const MR_VertBitSet *verts, float pressure);
479
480#ifdef __cplusplus
481} // extern "C"
482#endif
struct MR_MeshTopology MR_MeshTopology
Definition MR2DContoursTriangulation.h:15
struct MR_VertCoords MR_VertCoords
Definition MRAABBTreePoints.h:21
struct MR_VertBitSet MR_VertBitSet
Definition MRAABBTree.h:15
struct MR_std_function_float_from_MR_VertId MR_std_function_float_from_MR_VertId
Definition MRClosestWeightedPoint.h:18
struct MR_Mesh MR_Mesh
Definition MRCtm.h:12
struct MR_std_function_bool_from_MR_FaceId MR_std_function_bool_from_MR_FaceId
Definition MREnumNeighbours.h:18
MR_EdgeWeights
determines the weight of each edge in applications like Laplacian
Definition MREnums.h:23
MR_VertexMass
determines the weight or mass of each vertex in applications like Laplacian
Definition MREnums.h:14
MRC_API const bool * MR_InflateSettings_Get_gradualPressureGrowth(const MR_InflateSettings *_this)
MRC_API MR_InflateSettings * MR_InflateSettings_DefaultConstructArray(size_t num_elems)
MRC_API MR_InflateSettings * MR_InflateSettings_OffsetMutablePtr(MR_InflateSettings *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 int * MR_SpacingSettings_Get_numIters(const MR_SpacingSettings *_this)
struct MR_PositionVertsSmoothlyParams MR_PositionVertsSmoothlyParams
Generated from class MR::PositionVertsSmoothlyParams.
Definition MRPositionVertsSmoothly.h:24
MRC_API void MR_InflateSettings_Set_gradualPressureGrowth(MR_InflateSettings *_this, bool value)
MRC_API void MR_SpacingSettings_Set_maxSumNegW(MR_SpacingSettings *_this, float value)
MRC_API const MR_VertCoords *const * MR_PositionVertsSmoothlyParams_Get_vertShifts(const MR_PositionVertsSmoothlyParams *_this)
MRC_API void MR_SpacingSettings_Set_stabilizer(MR_SpacingSettings *_this, float value)
MRC_API const MR_std_function_bool_from_MR_FaceId * MR_SpacingSettings_Get_isInverted(const MR_SpacingSettings *_this)
MRC_API const MR_SpacingSettings * MR_SpacingSettings_OffsetPtr(const MR_SpacingSettings *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_InflateSettings * MR_InflateSettings_ConstructFrom(float pressure, int iterations, bool preSmooth, bool gradualPressureGrowth)
MRC_API void MR_PositionVertsSmoothlyParams_DestroyArray(const MR_PositionVertsSmoothlyParams *_this)
Destroys a heap-allocated array of MR_PositionVertsSmoothlyParams. Does nothing if the pointer is nul...
struct MR_SpacingSettings MR_SpacingSettings
Generated from class MR::SpacingSettings.
Definition MRPositionVertsSmoothly.h:27
MRC_API MR_PositionVertsSmoothlyParams * MR_PositionVertsSmoothlyParams_AssignFromAnother(MR_PositionVertsSmoothlyParams *_this, MR_PassBy _other_pass_by, MR_PositionVertsSmoothlyParams *_other)
MRC_API const MR_std_function_float_from_MR_UndirectedEdgeId * MR_SpacingSettings_Get_dist(const MR_SpacingSettings *_this)
MRC_API void MR_inflate_3(MR_Mesh *mesh, const MR_VertBitSet *verts, const MR_InflateSettings *settings)
MRC_API const MR_VertBitSet ** MR_PositionVertsSmoothlyParams_GetMutable_region(MR_PositionVertsSmoothlyParams *_this)
MRC_API void MR_PositionVertsSmoothlyParams_Set_vertShifts(MR_PositionVertsSmoothlyParams *_this, const MR_VertCoords *value)
MRC_API MR_std_function_float_from_MR_VertId * MR_PositionVertsSmoothlyParams_GetMutable_vertStabilizers(MR_PositionVertsSmoothlyParams *_this)
MRC_API void MR_SpacingSettings_Set_dist(MR_SpacingSettings *_this, MR_PassBy value_pass_by, MR_std_function_float_from_MR_UndirectedEdgeId *value)
MRC_API MR_SpacingSettings * MR_SpacingSettings_ConstructFromAnother(MR_PassBy _other_pass_by, MR_SpacingSettings *_other)
MRC_API const bool * MR_InflateSettings_Get_preSmooth(const MR_InflateSettings *_this)
MRC_API void MR_positionVertsWithSpacing_2(MR_Mesh *mesh, const MR_SpacingSettings *settings)
MRC_API MR_SpacingSettings * MR_SpacingSettings_OffsetMutablePtr(MR_SpacingSettings *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_PositionVertsSmoothlyParams * MR_PositionVertsSmoothlyParams_ConstructFromAnother(MR_PassBy _other_pass_by, MR_PositionVertsSmoothlyParams *_other)
MRC_API MR_PositionVertsSmoothlyParams * MR_PositionVertsSmoothlyParams_DefaultConstruct(void)
MRC_API void MR_PositionVertsSmoothlyParams_Set_stabilizer(MR_PositionVertsSmoothlyParams *_this, float value)
MRC_API void MR_inflate1(const MR_MeshTopology *topology, MR_VertCoords *points, const MR_VertBitSet *verts, float pressure)
MRC_API void MR_InflateSettings_DestroyArray(const MR_InflateSettings *_this)
Destroys a heap-allocated array of MR_InflateSettings. Does nothing if the pointer is null.
MRC_API const MR_InflateSettings * MR_InflateSettings_OffsetPtr(const MR_InflateSettings *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_PositionVertsSmoothlyParams_Set_edgeWeights(MR_PositionVertsSmoothlyParams *_this, MR_PassBy value_pass_by, MR_std_function_float_from_MR_UndirectedEdgeId *value)
MRC_API void MR_SpacingSettings_Set_numIters(MR_SpacingSettings *_this, int value)
MRC_API const float * MR_InflateSettings_Get_pressure(const MR_InflateSettings *_this)
MRC_API const float * MR_SpacingSettings_Get_stabilizer(const MR_SpacingSettings *_this)
MRC_API void MR_SpacingSettings_Set_region(MR_SpacingSettings *_this, const MR_VertBitSet *value)
MRC_API void MR_InflateSettings_Set_iterations(MR_InflateSettings *_this, int value)
MRC_API const float * MR_PositionVertsSmoothlyParams_Get_stabilizer(const MR_PositionVertsSmoothlyParams *_this)
MRC_API void MR_SpacingSettings_Destroy(const MR_SpacingSettings *_this)
Destroys a heap-allocated instance of MR_SpacingSettings. Does nothing if the pointer is null.
MRC_API MR_std_function_float_from_MR_UndirectedEdgeId * MR_PositionVertsSmoothlyParams_GetMutable_edgeWeights(MR_PositionVertsSmoothlyParams *_this)
MRC_API MR_PositionVertsSmoothlyParams * MR_PositionVertsSmoothlyParams_DefaultConstructArray(size_t num_elems)
MRC_API const int * MR_InflateSettings_Get_iterations(const MR_InflateSettings *_this)
MRC_API MR_InflateSettings * MR_InflateSettings_ConstructFromAnother(const MR_InflateSettings *_other)
MRC_API float * MR_PositionVertsSmoothlyParams_GetMutable_stabilizer(MR_PositionVertsSmoothlyParams *_this)
MRC_API void MR_positionVertsSmoothly_6(const MR_MeshTopology *topology, MR_VertCoords *points, const MR_VertBitSet *verts, const MR_EdgeWeights *edgeWeights, const MR_VertexMass *vmass, const MR_VertBitSet *fixedSharpVertices)
MRC_API float * MR_SpacingSettings_GetMutable_stabilizer(MR_SpacingSettings *_this)
MRC_API const MR_VertBitSet ** MR_SpacingSettings_GetMutable_region(MR_SpacingSettings *_this)
MRC_API void MR_positionVertsSmoothlySharpBd_3(const MR_MeshTopology *topology, MR_VertCoords *points, const MR_PositionVertsSmoothlyParams *params)
MRC_API MR_std_function_bool_from_MR_FaceId * MR_SpacingSettings_GetMutable_isInverted(MR_SpacingSettings *_this)
MRC_API void MR_inflate_4(const MR_MeshTopology *topology, MR_VertCoords *points, const MR_VertBitSet *verts, const MR_InflateSettings *settings)
MRC_API void MR_PositionVertsSmoothlyParams_Set_region(MR_PositionVertsSmoothlyParams *_this, const MR_VertBitSet *value)
MRC_API MR_SpacingSettings * MR_SpacingSettings_DefaultConstruct(void)
MRC_API const MR_std_function_float_from_MR_UndirectedEdgeId * MR_PositionVertsSmoothlyParams_Get_edgeWeights(const MR_PositionVertsSmoothlyParams *_this)
MRC_API void MR_InflateSettings_Destroy(const MR_InflateSettings *_this)
Destroys a heap-allocated instance of MR_InflateSettings. Does nothing if the pointer is null.
MRC_API const MR_VertBitSet *const * MR_SpacingSettings_Get_region(const MR_SpacingSettings *_this)
MRC_API float * MR_SpacingSettings_GetMutable_maxSumNegW(MR_SpacingSettings *_this)
MRC_API const MR_VertBitSet *const * MR_PositionVertsSmoothlyParams_Get_region(const MR_PositionVertsSmoothlyParams *_this)
MRC_API bool * MR_InflateSettings_GetMutable_preSmooth(MR_InflateSettings *_this)
MRC_API void MR_PositionVertsSmoothlyParams_Destroy(const MR_PositionVertsSmoothlyParams *_this)
Destroys a heap-allocated instance of MR_PositionVertsSmoothlyParams. Does nothing if the pointer is ...
MRC_API MR_PositionVertsSmoothlyParams * MR_PositionVertsSmoothlyParams_ConstructFrom(const MR_VertBitSet *region, const MR_VertCoords *vertShifts, float stabilizer, MR_PassBy vertStabilizers_pass_by, MR_std_function_float_from_MR_VertId *vertStabilizers, MR_PassBy edgeWeights_pass_by, MR_std_function_float_from_MR_UndirectedEdgeId *edgeWeights)
struct MR_InflateSettings MR_InflateSettings
Generated from class MR::InflateSettings.
Definition MRPositionVertsSmoothly.h:30
MRC_API void MR_positionVertsSmoothlySharpBd_2_MR_PositionVertsSmoothlyParams(MR_Mesh *mesh, const MR_PositionVertsSmoothlyParams *params)
MRC_API void MR_PositionVertsSmoothlyParams_Set_vertStabilizers(MR_PositionVertsSmoothlyParams *_this, MR_PassBy value_pass_by, MR_std_function_float_from_MR_VertId *value)
MRC_API void MR_positionVertsSmoothly_5(MR_Mesh *mesh, const MR_VertBitSet *verts, const MR_EdgeWeights *edgeWeights, const MR_VertexMass *vmass, const MR_VertBitSet *fixedSharpVertices)
MRC_API MR_InflateSettings * MR_InflateSettings_DefaultConstruct(void)
MRC_API const float * MR_SpacingSettings_Get_maxSumNegW(const MR_SpacingSettings *_this)
MRC_API void MR_SpacingSettings_Set_isInverted(MR_SpacingSettings *_this, MR_PassBy value_pass_by, MR_std_function_bool_from_MR_FaceId *value)
struct MR_std_function_float_from_MR_UndirectedEdgeId MR_std_function_float_from_MR_UndirectedEdgeId
Definition MRPositionVertsSmoothly.h:19
MRC_API MR_InflateSettings * MR_InflateSettings_AssignFromAnother(MR_InflateSettings *_this, const MR_InflateSettings *_other)
MRC_API MR_SpacingSettings * MR_SpacingSettings_DefaultConstructArray(size_t num_elems)
MRC_API MR_PositionVertsSmoothlyParams * MR_PositionVertsSmoothlyParams_OffsetMutablePtr(MR_PositionVertsSmoothlyParams *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_std_function_float_from_MR_VertId * MR_PositionVertsSmoothlyParams_Get_vertStabilizers(const MR_PositionVertsSmoothlyParams *_this)
MRC_API int * MR_InflateSettings_GetMutable_iterations(MR_InflateSettings *_this)
MRC_API MR_SpacingSettings * MR_SpacingSettings_AssignFromAnother(MR_SpacingSettings *_this, MR_PassBy _other_pass_by, MR_SpacingSettings *_other)
MRC_DEPRECATED MRC_API void MR_positionVertsSmoothlySharpBd_2_MR_VertBitSet(MR_Mesh *mesh, const MR_VertBitSet *verts)
MRC_API void MR_InflateSettings_Set_preSmooth(MR_InflateSettings *_this, bool value)
MRC_API float * MR_InflateSettings_GetMutable_pressure(MR_InflateSettings *_this)
MRC_API MR_std_function_float_from_MR_UndirectedEdgeId * MR_SpacingSettings_GetMutable_dist(MR_SpacingSettings *_this)
MRC_API const MR_VertCoords ** MR_PositionVertsSmoothlyParams_GetMutable_vertShifts(MR_PositionVertsSmoothlyParams *_this)
MRC_API MR_SpacingSettings * MR_SpacingSettings_ConstructFrom(const MR_VertBitSet *region, MR_PassBy dist_pass_by, MR_std_function_float_from_MR_UndirectedEdgeId *dist, int numIters, float stabilizer, float maxSumNegW, MR_PassBy isInverted_pass_by, MR_std_function_bool_from_MR_FaceId *isInverted)
MRC_API void MR_InflateSettings_Set_pressure(MR_InflateSettings *_this, float value)
MRC_API const MR_PositionVertsSmoothlyParams * MR_PositionVertsSmoothlyParams_OffsetPtr(const MR_PositionVertsSmoothlyParams *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_SpacingSettings_DestroyArray(const MR_SpacingSettings *_this)
Destroys a heap-allocated array of MR_SpacingSettings. Does nothing if the pointer is null.
MRC_API void MR_positionVertsWithSpacing_3(const MR_MeshTopology *topology, MR_VertCoords *points, const MR_SpacingSettings *settings)
MRC_API int * MR_SpacingSettings_GetMutable_numIters(MR_SpacingSettings *_this)
MRC_API bool * MR_InflateSettings_GetMutable_gradualPressureGrowth(MR_InflateSettings *_this)
#define MRC_DEPRECATED
Definition common.h:76
MR_PassBy
Definition common.h:19
#define MRC_API
Definition exports.h:11