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
27
32
39
46
53
60
67
77
86
96
100
105
111
115
119
125
128
131
139
146
154
161
168
174
181
188
194
201
208
215
222
229
235
242
248
254
260
264
269
277MRC_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);
278
282
286
291
294
297
304
312
318
324
334
340MRC_API void MR_FixUndercuts_find_3(const MR_Mesh *mesh, const MR_FixUndercuts_FindParams *params, MR_VertBitSet *outUndercuts);
341
349MRC_API double MR_FixUndercuts_scoreUndercuts(const MR_Mesh *mesh, const MR_Vector3f *upDirection, const MR_Vector2i *resolution);
350
351// Hint direction which will be improved
357
358// Hint direction which will be improved
364
365// Hint direction which will be improved
371
372// Radial step given in radians look improveDirection comment
378
379// Radial step given in radians look improveDirection comment
384
385// Radial step given in radians look improveDirection comment
391
392// Maximum radial line given in radians look improveDirection comment
398
399// Maximum radial line given in radians look improveDirection comment
404
405// Maximum radial line given in radians look improveDirection comment
411
412// Polar angle step
418
419// Polar angle step
424
425// Polar angle step
431
435
440
445MRC_API MR_FixUndercuts_ImproveDirectionParameters *MR_FixUndercuts_ImproveDirectionParameters_ConstructFrom(MR_Vector3f hintDirection, float baseAngleStep, float maxBaseAngle, float polarAngleStep);
446
450
454
460
465
471
474
477
485
486// Resolution of distance map, lower it is, faster score works
492
493// Resolution of distance map, lower it is, faster score works
499
500// Resolution of distance map, lower it is, faster score works
506
507// Hint direction which will be improved
513
514// Hint direction which will be improved
520
521// Hint direction which will be improved
527
528// Radial step given in radians look improveDirection comment
534
535// Radial step given in radians look improveDirection comment
540
541// Radial step given in radians look improveDirection comment
547
548// Maximum radial line given in radians look improveDirection comment
554
555// Maximum radial line given in radians look improveDirection comment
560
561// Maximum radial line given in radians look improveDirection comment
567
568// Polar angle step
574
575// Polar angle step
580
581// Polar angle step
587
591
596
600
604
609
613
619
622
625
633
634// Parallel finds best of several directions defined by ImproveDirectionParameters struct
648
655
656#ifdef __cplusplus
657} // extern "C"
658#endif
struct MR_std_function_bool_from_float MR_std_function_bool_from_float
Definition MR3mf.h:10
struct MR_VertBitSet MR_VertBitSet
Definition MRAABBTree.h:22
struct MR_FaceBitSet MR_FaceBitSet
Definition MRAABBTree.h:17
struct MR_expected_void_std_string MR_expected_void_std_string
Definition MRCtm.h:26
struct MR_Mesh MR_Mesh
Definition MRCtm.h:16
MRC_API const MR_FixUndercuts_FixParams * MR_FixUndercuts_FixParams_OffsetPtr(const MR_FixUndercuts_FixParams *ptr, ptrdiff_t i)
MRC_API MR_FixUndercuts_FindParams * MR_FixUndercuts_FindParams_ConstructFrom(MR_Vector3f upDirection, float wallAngle)
MRC_API const float * MR_FixUndercuts_DistMapImproveDirectionParameters_Get_maxBaseAngle(const MR_FixUndercuts_DistMapImproveDirectionParameters *_this)
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)
MRC_API float * MR_FixUndercuts_FindParams_GetMutable_wallAngle(MR_FixUndercuts_FindParams *_this)
MRC_API void MR_FixUndercuts_DistMapImproveDirectionParameters_Set_maxBaseAngle(MR_FixUndercuts_DistMapImproveDirectionParameters *_this, float value)
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:38
MRC_API float * MR_FixUndercuts_DistMapImproveDirectionParameters_GetMutable_maxBaseAngle(MR_FixUndercuts_DistMapImproveDirectionParameters *_this)
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)
MRC_API void MR_FixUndercuts_FindParams_Set_wallAngle(MR_FixUndercuts_FindParams *_this, float value)
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 MRFixUndercuts.h:20
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 const float * MR_FixUndercuts_DistMapImproveDirectionParameters_Get_baseAngleStep(const MR_FixUndercuts_DistMapImproveDirectionParameters *_this)
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 MR_Vector3f * MR_FixUndercuts_DistMapImproveDirectionParameters_GetMutable_hintDirection(MR_FixUndercuts_DistMapImproveDirectionParameters *_this)
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)
MRC_API float * MR_FixUndercuts_DistMapImproveDirectionParameters_GetMutable_baseAngleStep(MR_FixUndercuts_DistMapImproveDirectionParameters *_this)
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 const float * MR_FixUndercuts_DistMapImproveDirectionParameters_Get_polarAngleStep(const 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_FindParams MR_FixUndercuts_FindParams
Definition MRFixUndercuts.h:26
MRC_API float * MR_FixUndercuts_DistMapImproveDirectionParameters_GetMutable_polarAngleStep(MR_FixUndercuts_DistMapImproveDirectionParameters *_this)
struct MR_FixUndercuts_FixParams MR_FixUndercuts_FixParams
Definition MRFixUndercuts.h:31
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_DistMapImproveDirectionParameters_Set_polarAngleStep(MR_FixUndercuts_DistMapImproveDirectionParameters *_this, float value)
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:45
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_DistMapImproveDirectionParameters_Set_baseAngleStep(MR_FixUndercuts_DistMapImproveDirectionParameters *_this, float value)
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)
MRC_API const MR_FixUndercuts_DistMapImproveDirectionParameters * MR_FixUndercuts_DistMapImproveDirectionParameters_OffsetPtr(const MR_FixUndercuts_DistMapImproveDirectionParameters *ptr, ptrdiff_t i)
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 const MR_Vector3f * MR_FixUndercuts_DistMapImproveDirectionParameters_Get_hintDirection(const MR_FixUndercuts_DistMapImproveDirectionParameters *_this)
MRC_API MR_FixUndercuts_DistMapImproveDirectionParameters * MR_FixUndercuts_DistMapImproveDirectionParameters_OffsetMutablePtr(MR_FixUndercuts_DistMapImproveDirectionParameters *ptr, ptrdiff_t i)
MRC_API void MR_FixUndercuts_DistMapImproveDirectionParameters_Set_hintDirection(MR_FixUndercuts_DistMapImproveDirectionParameters *_this, MR_Vector3f value)
MRC_API MR_FixUndercuts_FixParams * MR_FixUndercuts_FixParams_OffsetMutablePtr(MR_FixUndercuts_FixParams *ptr, ptrdiff_t i)
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)
MRC_API MR_FixUndercuts_FixParams * MR_FixUndercuts_FixParams_DefaultConstructArray(size_t num_elems)
Generated from class MR::Vector2i.
Definition MRVector2.h:50
Generated from class MR::Vector3f.
Definition MRVector3.h:47