MeshLib C Docs
Loading...
Searching...
No Matches
MRFixSelfIntersections.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMisc/common.h>
4#include <MRCMisc/exports.h>
5
6#include <stdbool.h>
7#include <stddef.h>
8#include <stdint.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_expected_MR_FaceBitSet_std_string MR_expected_MR_FaceBitSet_std_string; // Defined in `#include <MRCMisc/expected_MR_FaceBitSet_std_string.h>`.
16typedef struct MR_expected_void_std_string MR_expected_void_std_string; // Defined in `#include <MRCMisc/expected_void_std_string.h>`.
17typedef struct MR_std_function_bool_from_float MR_std_function_bool_from_float; // Defined in `#include <MRCMisc/std_function_bool_from_float.h>`.
18
19
23
26enum // MR_SelfIntersections_Settings_Method
27{
32};
33
39
44
50
55
59
64
70
75
81
87
92
98
105
111
118
124
129
135
139
144
147MRC_API MR_SelfIntersections_Settings *MR_SelfIntersections_Settings_ConstructFrom(bool touchIsIntersection, MR_SelfIntersections_Settings_Method method, int32_t relaxIterations, int32_t maxExpand, float subdivideEdgeLen, MR_PassBy callback_pass_by, MR_std_function_bool_from_float *callback);
148
151
154
158
161
164
169
177
184
185#ifdef __cplusplus
186} // extern "C"
187#endif
struct MR_std_function_bool_from_float MR_std_function_bool_from_float
Definition MR3mf.h:10
struct MR_expected_MR_FaceBitSet_std_string MR_expected_MR_FaceBitSet_std_string
Definition MRContoursCut.h:20
struct MR_expected_void_std_string MR_expected_void_std_string
Definition MRCtm.h:20
struct MR_Mesh MR_Mesh
Definition MRCtm.h:13
MRC_API MR_expected_void_std_string * MR_SelfIntersections_fix(MR_Mesh *mesh, const MR_SelfIntersections_Settings *settings)
MRC_API void MR_SelfIntersections_Settings_Set_callback(MR_SelfIntersections_Settings *_this, MR_PassBy value_pass_by, MR_std_function_bool_from_float *value)
MRC_API void MR_SelfIntersections_Settings_Set_method(MR_SelfIntersections_Settings *_this, MR_SelfIntersections_Settings_Method value)
MRC_API MR_SelfIntersections_Settings * MR_SelfIntersections_Settings_AssignFromAnother(MR_SelfIntersections_Settings *_this, MR_PassBy _other_pass_by, MR_SelfIntersections_Settings *_other)
MRC_API MR_std_function_bool_from_float * MR_SelfIntersections_Settings_GetMutable_callback(MR_SelfIntersections_Settings *_this)
MRC_API void MR_SelfIntersections_Settings_Set_touchIsIntersection(MR_SelfIntersections_Settings *_this, bool value)
MRC_API int32_t * MR_SelfIntersections_Settings_GetMutable_maxExpand(MR_SelfIntersections_Settings *_this)
MRC_API const float * MR_SelfIntersections_Settings_Get_subdivideEdgeLen(const MR_SelfIntersections_Settings *_this)
MRC_API MR_SelfIntersections_Settings * MR_SelfIntersections_Settings_ConstructFromAnother(MR_PassBy _other_pass_by, MR_SelfIntersections_Settings *_other)
MRC_API void MR_SelfIntersections_Settings_DestroyArray(const MR_SelfIntersections_Settings *_this)
Destroys a heap-allocated array of MR_SelfIntersections_Settings. Does nothing if the pointer is null...
MRC_API MR_SelfIntersections_Settings * MR_SelfIntersections_Settings_DefaultConstructArray(size_t num_elems)
MRC_API MR_SelfIntersections_Settings * MR_SelfIntersections_Settings_OffsetMutablePtr(MR_SelfIntersections_Settings *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_SelfIntersections_Settings MR_SelfIntersections_Settings
Definition MRFixSelfIntersections.h:22
MRC_API float * MR_SelfIntersections_Settings_GetMutable_subdivideEdgeLen(MR_SelfIntersections_Settings *_this)
MRC_API const MR_std_function_bool_from_float * MR_SelfIntersections_Settings_Get_callback(const MR_SelfIntersections_Settings *_this)
MRC_API const MR_SelfIntersections_Settings * MR_SelfIntersections_Settings_OffsetPtr(const MR_SelfIntersections_Settings *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_SelfIntersections_Settings_Method * MR_SelfIntersections_Settings_GetMutable_method(MR_SelfIntersections_Settings *_this)
MRC_API void MR_SelfIntersections_Settings_Set_maxExpand(MR_SelfIntersections_Settings *_this, int32_t value)
MRC_API void MR_SelfIntersections_Settings_Set_subdivideEdgeLen(MR_SelfIntersections_Settings *_this, float value)
MRC_API void MR_SelfIntersections_Settings_Destroy(const MR_SelfIntersections_Settings *_this)
Destroys a heap-allocated instance of MR_SelfIntersections_Settings. Does nothing if the pointer is n...
MRC_API MR_SelfIntersections_Settings * MR_SelfIntersections_Settings_ConstructFrom(bool touchIsIntersection, MR_SelfIntersections_Settings_Method method, int32_t relaxIterations, int32_t maxExpand, float subdivideEdgeLen, MR_PassBy callback_pass_by, MR_std_function_bool_from_float *callback)
MRC_API MR_expected_MR_FaceBitSet_std_string * MR_SelfIntersections_getFaces(const MR_Mesh *mesh, const bool *touchIsIntersection, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb)
MRC_API const MR_SelfIntersections_Settings_Method * MR_SelfIntersections_Settings_Get_method(const MR_SelfIntersections_Settings *_this)
@ MR_SelfIntersections_Settings_Method_Relax
Relax mesh around self-intersections.
Definition MRFixSelfIntersections.h:29
@ MR_SelfIntersections_Settings_Method_CutAndFill
Cut and re-fill regions around self-intersections (may fall back to Relax)
Definition MRFixSelfIntersections.h:31
MRC_API const bool * MR_SelfIntersections_Settings_Get_touchIsIntersection(const MR_SelfIntersections_Settings *_this)
MRC_API int32_t * MR_SelfIntersections_Settings_GetMutable_relaxIterations(MR_SelfIntersections_Settings *_this)
MRC_API MR_SelfIntersections_Settings * MR_SelfIntersections_Settings_DefaultConstruct(void)
MRC_API void MR_SelfIntersections_Settings_Set_relaxIterations(MR_SelfIntersections_Settings *_this, int32_t value)
MRC_API bool * MR_SelfIntersections_Settings_GetMutable_touchIsIntersection(MR_SelfIntersections_Settings *_this)
MRC_API const int32_t * MR_SelfIntersections_Settings_Get_maxExpand(const MR_SelfIntersections_Settings *_this)
int32_t MR_SelfIntersections_Settings_Method
Fix method.
Definition MRFixSelfIntersections.h:25
MRC_API const int32_t * MR_SelfIntersections_Settings_Get_relaxIterations(const MR_SelfIntersections_Settings *_this)
MR_PassBy
Definition common.h:19
#define MRC_API
Definition exports.h:11