MeshLib C Docs
Loading...
Searching...
No Matches
MRFixUndercuts.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMesh/MRVector2.h>
4#include <MRCMesh/MRVector3.h>
5#include <MRCMisc/common.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_VertBitSet MR_VertBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
18typedef struct MR_expected_void_std_string MR_expected_void_std_string; // Defined in `#include <MRCMisc/expected_void_std_string.h>`.
19typedef struct MR_std_function_bool_from_float MR_std_function_bool_from_float; // Defined in `#include <MRCMisc/std_function_bool_from_float.h>`.
20typedef struct MR_std_function_double_from_const_MR_FaceBitSet_ref_const_MR_FixUndercuts_FindParams_ref MR_std_function_double_from_const_MR_FaceBitSet_ref_const_MR_FixUndercuts_FindParams_ref; // Defined in `#include <MRCMisc/std_function_double_from_const_MR_FaceBitSet_ref_const_MR_FixUndercuts_FindParams_ref.h>`.
21
22
26
30
36
42
48
53
59
68
76
85
89
94
98
101
104
109
112
115
121
127
133
139
145
150
156
162
167
173
179
184
190
196
201
207
212
216
221
225
230
234MRC_API MR_FixUndercuts_FixParams *MR_FixUndercuts_FixParams_ConstructFrom(const MR_FixUndercuts_FindParams *findParameters, float voxelSize, float bottomExtension, const MR_FaceBitSet *region, bool smooth, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb);
235
238
241
245
248
251
256
264
270
276
286
292MRC_API void MR_FixUndercuts_find_3(const MR_Mesh *mesh, const MR_FixUndercuts_FindParams *params, MR_VertBitSet *outUndercuts);
293
301MRC_API double MR_FixUndercuts_scoreUndercuts(const MR_Mesh *mesh, const MR_Vector3f *upDirection, const MR_Vector2i *resolution);
302
303// Hint direction which will be improved
308
309// Hint direction which will be improved
313
314// Hint direction which will be improved
319
320// Radial step given in radians look improveDirection comment
325
326// Radial step given in radians look improveDirection comment
330
331// Radial step given in radians look improveDirection comment
336
337// Maximum radial line given in radians look improveDirection comment
342
343// Maximum radial line given in radians look improveDirection comment
347
348// Maximum radial line given in radians look improveDirection comment
353
354// Polar angle step
359
360// Polar angle step
364
365// Polar angle step
370
374
379
382MRC_API MR_FixUndercuts_ImproveDirectionParameters *MR_FixUndercuts_ImproveDirectionParameters_ConstructFrom(MR_Vector3f hintDirection, float baseAngleStep, float maxBaseAngle, float polarAngleStep);
383
386
389
394
398
403
406
409
415
416// Resolution of distance map, lower it is, faster score works
421
422// Resolution of distance map, lower it is, faster score works
426
427// Resolution of distance map, lower it is, faster score works
432
436
441
444
447
451
454
459
462
465
471
472// Parallel finds best of several directions defined by ImproveDirectionParameters struct
486
493
494#ifdef __cplusplus
495} // extern "C"
496#endif
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_VertBitSet MR_VertBitSet
Definition MRAABBTree.h:15
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 const MR_FixUndercuts_FixParams * MR_FixUndercuts_FixParams_OffsetPtr(const MR_FixUndercuts_FixParams *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_FixUndercuts_FindParams * MR_FixUndercuts_FindParams_ConstructFrom(MR_Vector3f upDirection, float wallAngle)
MRC_API MR_Vector3f MR_FixUndercuts_distMapImproveDirection(const MR_Mesh *mesh, const MR_FixUndercuts_DistMapImproveDirectionParameters *params)
MRC_API float * MR_FixUndercuts_ImproveDirectionParameters_GetMutable_baseAngleStep(MR_FixUndercuts_ImproveDirectionParameters *_this)
MRC_API void MR_FixUndercuts_FixParams_Set_findParameters(MR_FixUndercuts_FixParams *_this, const MR_FixUndercuts_FindParams *value)
MRC_API const MR_Vector3f * MR_FixUndercuts_ImproveDirectionParameters_Get_hintDirection(const MR_FixUndercuts_ImproveDirectionParameters *_this)
MRC_API MR_FixUndercuts_ImproveDirectionParameters * MR_FixUndercuts_ImproveDirectionParameters_DefaultConstructArray(size_t num_elems)
MRC_API const MR_FixUndercuts_DistMapImproveDirectionParameters * MR_FixUndercuts_ImproveDirectionParameters_StaticDowncastTo_MR_FixUndercuts_DistMapImproveDirectionParameters(const MR_FixUndercuts_ImproveDirectionParameters *object)
MRC_API const MR_FixUndercuts_ImproveDirectionParameters * MR_FixUndercuts_ImproveDirectionParameters_OffsetPtr(const MR_FixUndercuts_ImproveDirectionParameters *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 float * MR_FixUndercuts_FindParams_GetMutable_wallAngle(MR_FixUndercuts_FindParams *_this)
MRC_API const float * MR_FixUndercuts_FixParams_Get_bottomExtension(const MR_FixUndercuts_FixParams *_this)
MRC_API void MR_FixUndercuts_FixParams_Set_bottomExtension(MR_FixUndercuts_FixParams *_this, float value)
struct MR_FixUndercuts_ImproveDirectionParameters MR_FixUndercuts_ImproveDirectionParameters
Definition MRFixUndercuts.h:35
MRC_API void MR_FixUndercuts_DistMapImproveDirectionParameters_Destroy(const MR_FixUndercuts_DistMapImproveDirectionParameters *_this)
Destroys a heap-allocated instance of MR_FixUndercuts_DistMapImproveDirectionParameters....
MRC_API float * MR_FixUndercuts_FixParams_GetMutable_bottomExtension(MR_FixUndercuts_FixParams *_this)
MRC_API const MR_FixUndercuts_FindParams * MR_FixUndercuts_FindParams_OffsetPtr(const MR_FixUndercuts_FindParams *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_FixUndercuts_FindParams_Set_wallAngle(MR_FixUndercuts_FindParams *_this, float value)
MRC_API void MR_FixUndercuts_ImproveDirectionParameters_Set_baseAngleStep(MR_FixUndercuts_ImproveDirectionParameters *_this, float value)
MRC_API double MR_FixUndercuts_scoreUndercuts(const MR_Mesh *mesh, const MR_Vector3f *upDirection, const MR_Vector2i *resolution)
MRC_API MR_FixUndercuts_DistMapImproveDirectionParameters * MR_FixUndercuts_DistMapImproveDirectionParameters_ConstructFromAnother(const MR_FixUndercuts_DistMapImproveDirectionParameters *_other)
MRC_API void MR_FixUndercuts_DistMapImproveDirectionParameters_DestroyArray(const MR_FixUndercuts_DistMapImproveDirectionParameters *_this)
Destroys a heap-allocated array of MR_FixUndercuts_DistMapImproveDirectionParameters....
MRC_API void MR_FixUndercuts_ImproveDirectionParameters_Set_polarAngleStep(MR_FixUndercuts_ImproveDirectionParameters *_this, float value)
MRC_API void MR_FixUndercuts_ImproveDirectionParameters_Set_maxBaseAngle(MR_FixUndercuts_ImproveDirectionParameters *_this, float value)
MRC_API MR_Vector3f MR_FixUndercuts_improveDirection(const MR_Mesh *mesh, const MR_FixUndercuts_ImproveDirectionParameters *params, const MR_std_function_double_from_const_MR_FaceBitSet_ref_const_MR_FixUndercuts_FindParams_ref *metric)
MRC_API const MR_Vector2i * MR_FixUndercuts_DistMapImproveDirectionParameters_Get_distanceMapResolution(const MR_FixUndercuts_DistMapImproveDirectionParameters *_this)
MRC_API void MR_FixUndercuts_ImproveDirectionParameters_Set_hintDirection(MR_FixUndercuts_ImproveDirectionParameters *_this, MR_Vector3f value)
MRC_API MR_Vector3f * MR_FixUndercuts_ImproveDirectionParameters_GetMutable_hintDirection(MR_FixUndercuts_ImproveDirectionParameters *_this)
MRC_API float * MR_FixUndercuts_ImproveDirectionParameters_GetMutable_maxBaseAngle(MR_FixUndercuts_ImproveDirectionParameters *_this)
MRC_API bool * MR_FixUndercuts_FixParams_GetMutable_smooth(MR_FixUndercuts_FixParams *_this)
MRC_API void MR_FixUndercuts_FixParams_Set_smooth(MR_FixUndercuts_FixParams *_this, bool value)
MRC_API const float * MR_FixUndercuts_FixParams_Get_voxelSize(const MR_FixUndercuts_FixParams *_this)
MRC_API MR_std_function_bool_from_float * MR_FixUndercuts_FixParams_GetMutable_cb(MR_FixUndercuts_FixParams *_this)
MRC_API void MR_FixUndercuts_ImproveDirectionParameters_Destroy(const MR_FixUndercuts_ImproveDirectionParameters *_this)
Destroys a heap-allocated instance of MR_FixUndercuts_ImproveDirectionParameters. Does nothing if the...
MRC_API MR_FixUndercuts_FindParams * MR_FixUndercuts_FindParams_OffsetMutablePtr(MR_FixUndercuts_FindParams *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 double MR_FixUndercuts_find_4(const MR_Mesh *mesh, const MR_FixUndercuts_FindParams *params, MR_FaceBitSet *outUndercuts, const MR_std_function_double_from_const_MR_FaceBitSet_ref_const_MR_FixUndercuts_FindParams_ref *metric)
MRC_API const float * MR_FixUndercuts_ImproveDirectionParameters_Get_polarAngleStep(const MR_FixUndercuts_ImproveDirectionParameters *_this)
MRC_API MR_FixUndercuts_DistMapImproveDirectionParameters * MR_FixUndercuts_DistMapImproveDirectionParameters_DefaultConstructArray(size_t num_elems)
MRC_API float * MR_FixUndercuts_ImproveDirectionParameters_GetMutable_polarAngleStep(MR_FixUndercuts_ImproveDirectionParameters *_this)
MRC_API MR_FixUndercuts_FindParams * MR_FixUndercuts_FindParams_DefaultConstruct(void)
MRC_API MR_Vector2i * MR_FixUndercuts_DistMapImproveDirectionParameters_GetMutable_distanceMapResolution(MR_FixUndercuts_DistMapImproveDirectionParameters *_this)
MRC_API MR_FixUndercuts_FixParams * MR_FixUndercuts_FixParams_ConstructFrom(const MR_FixUndercuts_FindParams *findParameters, float voxelSize, float bottomExtension, const MR_FaceBitSet *region, bool smooth, MR_PassBy cb_pass_by, MR_std_function_bool_from_float *cb)
struct MR_FixUndercuts_FixParams MR_FixUndercuts_FixParams
Definition MRFixUndercuts.h:29
MRC_API MR_std_function_double_from_const_MR_FaceBitSet_ref_const_MR_FixUndercuts_FindParams_ref * MR_FixUndercuts_getUndercutAreaMetric(const MR_Mesh *mesh)
MRC_API void MR_FixUndercuts_FixParams_Set_voxelSize(MR_FixUndercuts_FixParams *_this, float value)
MRC_API MR_FixUndercuts_ImproveDirectionParameters * MR_FixUndercuts_ImproveDirectionParameters_ConstructFromAnother(const MR_FixUndercuts_ImproveDirectionParameters *_other)
MRC_API const MR_FaceBitSet *const * MR_FixUndercuts_FixParams_Get_region(const MR_FixUndercuts_FixParams *_this)
MRC_API const float * MR_FixUndercuts_FindParams_Get_wallAngle(const MR_FixUndercuts_FindParams *_this)
MRC_API MR_FixUndercuts_FindParams * MR_FixUndercuts_FindParams_AssignFromAnother(MR_FixUndercuts_FindParams *_this, const MR_FixUndercuts_FindParams *_other)
MRC_API MR_FixUndercuts_FixParams * MR_FixUndercuts_FixParams_AssignFromAnother(MR_FixUndercuts_FixParams *_this, MR_PassBy _other_pass_by, MR_FixUndercuts_FixParams *_other)
MRC_API void MR_FixUndercuts_FixParams_DestroyArray(const MR_FixUndercuts_FixParams *_this)
Destroys a heap-allocated array of MR_FixUndercuts_FixParams. Does nothing if the pointer is null.
MRC_API void MR_FixUndercuts_DistMapImproveDirectionParameters_Set_distanceMapResolution(MR_FixUndercuts_DistMapImproveDirectionParameters *_this, MR_Vector2i value)
MRC_API const MR_FixUndercuts_ImproveDirectionParameters * MR_FixUndercuts_DistMapImproveDirectionParameters_UpcastTo_MR_FixUndercuts_ImproveDirectionParameters(const MR_FixUndercuts_DistMapImproveDirectionParameters *object)
MRC_API MR_expected_void_std_string * MR_FixUndercuts_fix(MR_Mesh *mesh, const MR_FixUndercuts_FixParams *params)
MRC_API const MR_Vector3f * MR_FixUndercuts_FindParams_Get_upDirection(const MR_FixUndercuts_FindParams *_this)
MRC_API MR_FixUndercuts_ImproveDirectionParameters * MR_FixUndercuts_ImproveDirectionParameters_AssignFromAnother(MR_FixUndercuts_ImproveDirectionParameters *_this, const MR_FixUndercuts_ImproveDirectionParameters *_other)
MRC_API MR_FixUndercuts_FindParams * MR_FixUndercuts_FixParams_GetMutable_findParameters(MR_FixUndercuts_FixParams *_this)
MRC_API MR_FixUndercuts_DistMapImproveDirectionParameters * MR_FixUndercuts_DistMapImproveDirectionParameters_AssignFromAnother(MR_FixUndercuts_DistMapImproveDirectionParameters *_this, const MR_FixUndercuts_DistMapImproveDirectionParameters *_other)
MRC_API void MR_FixUndercuts_FixParams_Set_cb(MR_FixUndercuts_FixParams *_this, MR_PassBy value_pass_by, MR_std_function_bool_from_float *value)
MRC_API MR_FixUndercuts_FixParams * MR_FixUndercuts_FixParams_DefaultConstruct(void)
MRC_API void MR_FixUndercuts_ImproveDirectionParameters_DestroyArray(const MR_FixUndercuts_ImproveDirectionParameters *_this)
Destroys a heap-allocated array of MR_FixUndercuts_ImproveDirectionParameters. Does nothing if the po...
MRC_API MR_FixUndercuts_FixParams * MR_FixUndercuts_FixParams_ConstructFromAnother(MR_PassBy _other_pass_by, MR_FixUndercuts_FixParams *_other)
MRC_API void MR_FixUndercuts_FindParams_Set_upDirection(MR_FixUndercuts_FindParams *_this, MR_Vector3f value)
struct MR_FixUndercuts_DistMapImproveDirectionParameters MR_FixUndercuts_DistMapImproveDirectionParameters
Definition MRFixUndercuts.h:41
MRC_API MR_FixUndercuts_ImproveDirectionParameters * MR_FixUndercuts_ImproveDirectionParameters_ConstructFrom(MR_Vector3f hintDirection, float baseAngleStep, float maxBaseAngle, float polarAngleStep)
MRC_API const MR_std_function_bool_from_float * MR_FixUndercuts_FixParams_Get_cb(const MR_FixUndercuts_FixParams *_this)
MRC_API void MR_FixUndercuts_FixParams_Destroy(const MR_FixUndercuts_FixParams *_this)
Destroys a heap-allocated instance of MR_FixUndercuts_FixParams. Does nothing if the pointer is null.
MRC_API void MR_FixUndercuts_FindParams_Destroy(const MR_FixUndercuts_FindParams *_this)
Destroys a heap-allocated instance of MR_FixUndercuts_FindParams. Does nothing if the pointer is null...
MRC_API const MR_FaceBitSet ** MR_FixUndercuts_FixParams_GetMutable_region(MR_FixUndercuts_FixParams *_this)
MRC_API MR_Vector3f * MR_FixUndercuts_FindParams_GetMutable_upDirection(MR_FixUndercuts_FindParams *_this)
MRC_API const float * MR_FixUndercuts_ImproveDirectionParameters_Get_maxBaseAngle(const MR_FixUndercuts_ImproveDirectionParameters *_this)
MRC_API const MR_FixUndercuts_FindParams * MR_FixUndercuts_FixParams_Get_findParameters(const MR_FixUndercuts_FixParams *_this)
MRC_API void MR_FixUndercuts_FixParams_Set_region(MR_FixUndercuts_FixParams *_this, const MR_FaceBitSet *value)
MRC_API MR_FixUndercuts_ImproveDirectionParameters * MR_FixUndercuts_ImproveDirectionParameters_DefaultConstruct(void)
MRC_API void MR_FixUndercuts_find_3(const MR_Mesh *mesh, const MR_FixUndercuts_FindParams *params, MR_VertBitSet *outUndercuts)
MRC_API void MR_FixUndercuts_FindParams_DestroyArray(const MR_FixUndercuts_FindParams *_this)
Destroys a heap-allocated array of MR_FixUndercuts_FindParams. Does nothing if the pointer is null.
MRC_API const bool * MR_FixUndercuts_FixParams_Get_smooth(const MR_FixUndercuts_FixParams *_this)
MRC_API MR_std_function_double_from_const_MR_FaceBitSet_ref_const_MR_FixUndercuts_FindParams_ref * MR_FixUndercuts_getUndercutAreaProjectionMetric(const MR_Mesh *mesh)
MRC_API MR_FixUndercuts_FindParams * MR_FixUndercuts_FindParams_DefaultConstructArray(size_t num_elems)
MRC_API MR_FixUndercuts_ImproveDirectionParameters * MR_FixUndercuts_ImproveDirectionParameters_OffsetMutablePtr(MR_FixUndercuts_ImproveDirectionParameters *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_FixUndercuts_DistMapImproveDirectionParameters * MR_FixUndercuts_DistMapImproveDirectionParameters_OffsetPtr(const MR_FixUndercuts_DistMapImproveDirectionParameters *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_FixUndercuts_DistMapImproveDirectionParameters * MR_FixUndercuts_DistMapImproveDirectionParameters_DefaultConstruct(void)
MRC_API const float * MR_FixUndercuts_ImproveDirectionParameters_Get_baseAngleStep(const MR_FixUndercuts_ImproveDirectionParameters *_this)
MRC_API MR_FixUndercuts_DistMapImproveDirectionParameters * MR_FixUndercuts_ImproveDirectionParameters_MutableStaticDowncastTo_MR_FixUndercuts_DistMapImproveDirectionParameters(MR_FixUndercuts_ImproveDirectionParameters *object)
MRC_API MR_FixUndercuts_DistMapImproveDirectionParameters * MR_FixUndercuts_DistMapImproveDirectionParameters_OffsetMutablePtr(MR_FixUndercuts_DistMapImproveDirectionParameters *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_FixUndercuts_FixParams * MR_FixUndercuts_FixParams_OffsetMutablePtr(MR_FixUndercuts_FixParams *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_FixUndercuts_FindParams * MR_FixUndercuts_FindParams_ConstructFromAnother(const MR_FixUndercuts_FindParams *_other)
MRC_API float * MR_FixUndercuts_FixParams_GetMutable_voxelSize(MR_FixUndercuts_FixParams *_this)
MRC_API MR_FixUndercuts_ImproveDirectionParameters * MR_FixUndercuts_DistMapImproveDirectionParameters_MutableUpcastTo_MR_FixUndercuts_ImproveDirectionParameters(MR_FixUndercuts_DistMapImproveDirectionParameters *object)
Upcasts an instance of MR::FixUndercuts::DistMapImproveDirectionParameters to its base class MR::FixU...
MRC_API MR_FixUndercuts_FixParams * MR_FixUndercuts_FixParams_DefaultConstructArray(size_t num_elems)
MR_PassBy
Definition common.h:19
#define MRC_API
Definition exports.h:11
struct MR_std_function_double_from_const_MR_FaceBitSet_ref_const_MR_FixUndercuts_FindParams_ref MR_std_function_double_from_const_MR_FaceBitSet_ref_const_MR_FixUndercuts_FindParams_ref
Definition std_function_double_from_const_MR_FaceBitSet_ref_const_MR_FixUndercuts_FindParams_ref.h:18
struct MR_FixUndercuts_FindParams MR_FixUndercuts_FindParams
Definition std_function_double_from_const_MR_FaceBitSet_ref_const_MR_FixUndercuts_FindParams_ref.h:13
Definition MRVector2.h:28
Definition MRVector3.h:51