MeshLib C Docs
Loading...
Searching...
No Matches
MROffsetContours.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
9#ifdef __cplusplus
10extern "C" {
11#endif
12
14typedef struct MR_std_function_float_from_int_int MR_std_function_float_from_int_int; // Defined in `#include <MRCMisc/std_function_float_from_int_int.h>`.
15typedef struct MR_std_vector_std_vector_MR_OffsetContoursOrigins MR_std_vector_std_vector_MR_OffsetContoursOrigins; // Defined in `#include <MRCMisc/std_vector_std_vector_MR_OffsetContoursOrigins.h>`.
16typedef struct MR_std_vector_std_vector_MR_Vector2f MR_std_vector_std_vector_MR_Vector2f; // Defined in `#include <MRCMisc/std_vector_std_vector_MR_Vector2f.h>`.
17typedef struct MR_std_vector_std_vector_MR_Vector3f MR_std_vector_std_vector_MR_Vector3f; // Defined in `#include <MRCMisc/std_vector_std_vector_MR_Vector3f.h>`.
18
19
23
27
36
45
54
58
63
64// -1 means unknown index
69
70// -1 means unknown index
75
76// -1 means unknown index
81
82// -1 means unknown index
87
88// -1 means unknown index
93
94// -1 means unknown index
99
103
108
113
117
121
127
130
133
141
145
146// Should be always valid
147// index of lower corresponding origin point on input contour
152
153// Should be always valid
154// index of lower corresponding origin point on input contour
161
162// Should be always valid
163// index of lower corresponding origin point on input contour
168
169// index of lower corresponding destination point on input contour
174
175// index of lower corresponding destination point on input contour
182
183// index of lower corresponding destination point on input contour
188
189// index of upper corresponding origin point on input contour
194
195// index of upper corresponding origin point on input contour
202
203// index of upper corresponding origin point on input contour
208
209// index of upper corresponding destination point on input contour
214
215// index of upper corresponding destination point on input contour
222
223// index of upper corresponding destination point on input contour
228
229// ratio of intersection point on lOrg->lDest segment
230// 0.0 -> lOrg
231// 1.0 -> lDest
236
237// ratio of intersection point on lOrg->lDest segment
238// 0.0 -> lOrg
239// 1.0 -> lDest
244
245// ratio of intersection point on lOrg->lDest segment
246// 0.0 -> lOrg
247// 1.0 -> lDest
252
253// ratio of intersection point on uOrg->uDest segment
254// 0.0 -> uOrg
255// 1.0 -> uDest
260
261// ratio of intersection point on uOrg->uDest segment
262// 0.0 -> uOrg
263// 1.0 -> uDest
268
269// ratio of intersection point on uOrg->uDest segment
270// 0.0 -> uOrg
271// 1.0 -> uDest
276
280
285
298
302
306
312
315
318
326
330
334
339
345
350
355
361
366
371
377
382
383// 20 deg
388
389// 20 deg
394
395// 20 deg
400
401// 120 deg
406
407// 120 deg
412
413// 120 deg
418
424
431
437
441
446
455
459
463
469
472
475
483
491
499
504
510
515
521
527
533
537
542
548
552
556
561
564
567
574
584
594
595#ifdef __cplusplus
596} // extern "C"
597#endif
struct MR_std_vector_std_vector_MR_Vector2f MR_std_vector_std_vector_MR_Vector2f
Definition MR2DContoursTriangulation.h:21
struct MR_std_vector_std_vector_MR_Vector3f MR_std_vector_std_vector_MR_Vector3f
Definition MRContour.h:17
MRC_API const MR_OffsetContoursParams * MR_OffsetContoursParams_OffsetPtr(const MR_OffsetContoursParams *ptr, ptrdiff_t i)
MRC_API MR_OffsetContoursParams * MR_OffsetContoursParams_ConstructFrom(MR_OffsetContoursParams_Type type, MR_OffsetContoursParams_EndType endType, MR_OffsetContoursParams_CornerType cornerType, float minAnglePrecision, float maxSharpAngle, MR_std_vector_std_vector_MR_OffsetContoursOrigins *indicesMap)
MRC_API const MR_OffsetContourIndex * MR_OffsetContoursOrigins_Get_uDest(const MR_OffsetContoursOrigins *_this)
struct MR_OffsetContoursOrigins MR_OffsetContoursOrigins
Definition MROffsetContours.h:26
MRC_API const float * MR_OffsetContoursOrigins_Get_lRatio(const MR_OffsetContoursOrigins *_this)
MRC_API const MR_OffsetContourIndex * MR_OffsetContoursOrigins_Get_lOrg(const MR_OffsetContoursOrigins *_this)
MRC_API void MR_OffsetContoursOrigins_Set_uDest(MR_OffsetContoursOrigins *_this, const MR_OffsetContourIndex *value)
struct MR_std_vector_std_vector_MR_OffsetContoursOrigins MR_std_vector_std_vector_MR_OffsetContoursOrigins
Definition MROffsetContours.h:15
struct MR_OffsetContoursRestoreZParams MR_OffsetContoursRestoreZParams
Definition MROffsetContours.h:62
MRC_API void MR_OffsetContoursOrigins_Set_lOrg(MR_OffsetContoursOrigins *_this, const MR_OffsetContourIndex *value)
MRC_API const MR_OffsetContoursOrigins * MR_OffsetContoursOrigins_OffsetPtr(const MR_OffsetContoursOrigins *ptr, ptrdiff_t i)
MRC_API MR_OffsetContoursOrigins * MR_OffsetContoursOrigins_DefaultConstruct(void)
MRC_API MR_OffsetContoursOrigins * MR_OffsetContoursOrigins_ConstructFromAnother(const MR_OffsetContoursOrigins *_other)
MRC_API float * MR_OffsetContoursOrigins_GetMutable_uRatio(MR_OffsetContoursOrigins *_this)
MRC_API int * MR_OffsetContourIndex_GetMutable_contourId(MR_OffsetContourIndex *_this)
MRC_API void MR_OffsetContoursParams_Set_minAnglePrecision(MR_OffsetContoursParams *_this, float value)
MRC_API const float * MR_OffsetContoursOrigins_Get_uRatio(const MR_OffsetContoursOrigins *_this)
MRC_API MR_OffsetContoursParams * MR_OffsetContoursParams_DefaultConstructArray(size_t num_elems)
MRC_API int * MR_OffsetContourIndex_GetMutable_vertId(MR_OffsetContourIndex *_this)
MRC_API void MR_OffsetContoursRestoreZParams_DestroyArray(const MR_OffsetContoursRestoreZParams *_this)
Destroys a heap-allocated array of MR_OffsetContoursRestoreZParams. Does nothing if the pointer is nu...
MRC_API bool MR_OffsetContoursOrigins_valid(const MR_OffsetContoursOrigins *_this)
MRC_API MR_OffsetContoursOrigins * MR_OffsetContoursOrigins_ConstructFrom(const MR_OffsetContourIndex *lOrg, const MR_OffsetContourIndex *lDest, const MR_OffsetContourIndex *uOrg, const MR_OffsetContourIndex *uDest, float lRatio, float uRatio)
MRC_API MR_OffsetContourIndex * MR_OffsetContourIndex_DefaultConstructArray(size_t num_elems)
MR_OffsetContoursParams_EndType
type of offsetting on ends of non-closed contours
Definition MROffsetContours.h:39
@ MR_OffsetContoursParams_EndType_Round
creates round ends (use minAnglePrecision)
Definition MROffsetContours.h:41
@ MR_OffsetContoursParams_EndType_Cut
Definition MROffsetContours.h:43
MRC_API const float * MR_OffsetContoursParams_Get_maxSharpAngle(const MR_OffsetContoursParams *_this)
MRC_API void MR_OffsetContoursParams_DestroyArray(const MR_OffsetContoursParams *_this)
Destroys a heap-allocated array of MR_OffsetContoursParams. Does nothing if the pointer is null.
MRC_API MR_std_vector_std_vector_MR_Vector2f * MR_offsetContours_3_std_function_float_func_from_int_int(const MR_std_vector_std_vector_MR_Vector2f *contours, MR_PassBy offset_pass_by, MR_std_function_float_from_int_int *offset, const MR_OffsetContoursParams *params)
MRC_API void MR_OffsetContoursRestoreZParams_Destroy(const MR_OffsetContoursRestoreZParams *_this)
Destroys a heap-allocated instance of MR_OffsetContoursRestoreZParams. Does nothing if the pointer is...
MRC_API MR_OffsetContoursRestoreZParams * MR_OffsetContoursRestoreZParams_AssignFromAnother(MR_OffsetContoursRestoreZParams *_this, MR_PassBy _other_pass_by, MR_OffsetContoursRestoreZParams *_other)
MRC_API void MR_OffsetContoursRestoreZParams_Set_zCallback(MR_OffsetContoursRestoreZParams *_this, MR_PassBy value_pass_by, MR_std_function_float_from_const_std_vector_std_vector_MR_Vector2f_ref_const_MR_OffsetContourIndex_ref_const_MR_OffsetContoursOrigins_ref *value)
MRC_API MR_OffsetContoursOrigins * MR_OffsetContoursOrigins_OffsetMutablePtr(MR_OffsetContoursOrigins *ptr, ptrdiff_t i)
MRC_API const MR_OffsetContoursParams_CornerType * MR_OffsetContoursParams_Get_cornerType(const MR_OffsetContoursParams *_this)
MRC_API void MR_OffsetContoursOrigins_Set_lRatio(MR_OffsetContoursOrigins *_this, float value)
MRC_API float * MR_OffsetContoursParams_GetMutable_maxSharpAngle(MR_OffsetContoursParams *_this)
MRC_API bool MR_OffsetContourIndex_valid(const MR_OffsetContourIndex *_this)
MRC_API MR_OffsetContoursRestoreZParams * MR_OffsetContoursRestoreZParams_ConstructFromAnother(MR_PassBy _other_pass_by, MR_OffsetContoursRestoreZParams *_other)
MRC_API void MR_OffsetContoursParams_Destroy(const MR_OffsetContoursParams *_this)
Destroys a heap-allocated instance of MR_OffsetContoursParams. Does nothing if the pointer is null.
MRC_API const int * MR_OffsetContourIndex_Get_contourId(const MR_OffsetContourIndex *_this)
MRC_API MR_OffsetContourIndex * MR_OffsetContourIndex_ConstructFromAnother(const MR_OffsetContourIndex *_other)
MRC_API void MR_OffsetContourIndex_Destroy(const MR_OffsetContourIndex *_this)
Destroys a heap-allocated instance of MR_OffsetContourIndex. Does nothing if the pointer is null.
struct MR_std_function_float_from_int_int MR_std_function_float_from_int_int
Definition MROffsetContours.h:14
MRC_API void MR_OffsetContoursParams_Set_indicesMap(MR_OffsetContoursParams *_this, MR_std_vector_std_vector_MR_OffsetContoursOrigins *value)
MRC_API void MR_OffsetContoursOrigins_Set_lDest(MR_OffsetContoursOrigins *_this, const MR_OffsetContourIndex *value)
MR_OffsetContoursParams_CornerType
type of positive offset curve in corners
Definition MROffsetContours.h:48
@ MR_OffsetContoursParams_CornerType_Sharp
Definition MROffsetContours.h:52
@ MR_OffsetContoursParams_CornerType_Round
creates round corners (use minAnglePrecision)
Definition MROffsetContours.h:50
MRC_API MR_OffsetContoursParams_EndType * MR_OffsetContoursParams_GetMutable_endType(MR_OffsetContoursParams *_this)
MRC_API MR_OffsetContoursRestoreZParams * MR_OffsetContoursRestoreZParams_ConstructFrom(MR_PassBy zCallback_pass_by, MR_std_function_float_from_const_std_vector_std_vector_MR_Vector2f_ref_const_MR_OffsetContourIndex_ref_const_MR_OffsetContoursOrigins_ref *zCallback, int relaxIterations)
MRC_API const MR_OffsetContoursRestoreZParams * MR_OffsetContoursRestoreZParams_OffsetPtr(const MR_OffsetContoursRestoreZParams *ptr, ptrdiff_t i)
MRC_API MR_OffsetContoursParams * MR_OffsetContoursParams_AssignFromAnother(MR_OffsetContoursParams *_this, const MR_OffsetContoursParams *_other)
MRC_API const MR_OffsetContoursParams_Type * MR_OffsetContoursParams_Get_type(const MR_OffsetContoursParams *_this)
MRC_API MR_OffsetContoursParams * MR_OffsetContoursParams_ConstructFromAnother(const MR_OffsetContoursParams *_other)
MRC_API void MR_OffsetContoursOrigins_Set_uOrg(MR_OffsetContoursOrigins *_this, const MR_OffsetContourIndex *value)
MRC_API MR_OffsetContoursParams_CornerType * MR_OffsetContoursParams_GetMutable_cornerType(MR_OffsetContoursParams *_this)
MRC_API MR_OffsetContourIndex * MR_OffsetContoursOrigins_GetMutable_uDest(MR_OffsetContoursOrigins *_this)
MRC_API MR_std_function_float_from_const_std_vector_std_vector_MR_Vector2f_ref_const_MR_OffsetContourIndex_ref_const_MR_OffsetContoursOrigins_ref * MR_OffsetContoursRestoreZParams_GetMutable_zCallback(MR_OffsetContoursRestoreZParams *_this)
MRC_API float * MR_OffsetContoursOrigins_GetMutable_lRatio(MR_OffsetContoursOrigins *_this)
MRC_API float * MR_OffsetContoursParams_GetMutable_minAnglePrecision(MR_OffsetContoursParams *_this)
struct MR_std_function_float_from_const_std_vector_std_vector_MR_Vector2f_ref_const_MR_OffsetContourIndex_ref_const_MR_OffsetContoursOrigins_ref MR_std_function_float_from_const_std_vector_std_vector_MR_Vector2f_ref_const_MR_OffsetContourIndex_ref_const_MR_OffsetContoursOrigins_ref
Definition MROffsetContours.h:13
MRC_API const MR_std_function_float_from_const_std_vector_std_vector_MR_Vector2f_ref_const_MR_OffsetContourIndex_ref_const_MR_OffsetContoursOrigins_ref * MR_OffsetContoursRestoreZParams_Get_zCallback(const MR_OffsetContoursRestoreZParams *_this)
MRC_API MR_std_vector_std_vector_MR_Vector3f * MR_offsetContours_4_std_function_float_func_from_int_int(const MR_std_vector_std_vector_MR_Vector3f *contours, MR_PassBy offset_pass_by, MR_std_function_float_from_int_int *offset, const MR_OffsetContoursParams *params, const MR_OffsetContoursRestoreZParams *zParmas)
MRC_API MR_OffsetContoursRestoreZParams * MR_OffsetContoursRestoreZParams_DefaultConstructArray(size_t num_elems)
MRC_API MR_OffsetContoursParams_Type * MR_OffsetContoursParams_GetMutable_type(MR_OffsetContoursParams *_this)
MRC_API MR_OffsetContourIndex * MR_OffsetContoursOrigins_GetMutable_lDest(MR_OffsetContoursOrigins *_this)
MRC_API MR_OffsetContoursRestoreZParams * MR_OffsetContoursRestoreZParams_OffsetMutablePtr(MR_OffsetContoursRestoreZParams *ptr, ptrdiff_t i)
MRC_API MR_OffsetContoursParams * MR_OffsetContoursParams_DefaultConstruct(void)
MRC_API void MR_OffsetContoursOrigins_DestroyArray(const MR_OffsetContoursOrigins *_this)
Destroys a heap-allocated array of MR_OffsetContoursOrigins. Does nothing if the pointer is null.
MR_OffsetContoursParams_Type
type of offset
Definition MROffsetContours.h:30
@ MR_OffsetContoursParams_Type_Offset
One-side signed offset, requires closed contours.
Definition MROffsetContours.h:32
@ MR_OffsetContoursParams_Type_Shell
Definition MROffsetContours.h:34
MRC_API MR_OffsetContoursRestoreZParams * MR_OffsetContoursRestoreZParams_DefaultConstruct(void)
MRC_API void MR_OffsetContoursOrigins_Set_uRatio(MR_OffsetContoursOrigins *_this, float value)
MRC_API const int * MR_OffsetContoursRestoreZParams_Get_relaxIterations(const MR_OffsetContoursRestoreZParams *_this)
MRC_API void MR_OffsetContoursParams_Set_endType(MR_OffsetContoursParams *_this, MR_OffsetContoursParams_EndType value)
MRC_API MR_OffsetContoursParams * MR_OffsetContoursParams_OffsetMutablePtr(MR_OffsetContoursParams *ptr, ptrdiff_t i)
MRC_API const MR_OffsetContourIndex * MR_OffsetContourIndex_OffsetPtr(const MR_OffsetContourIndex *ptr, ptrdiff_t i)
MRC_API const MR_OffsetContourIndex * MR_OffsetContoursOrigins_Get_uOrg(const MR_OffsetContoursOrigins *_this)
MRC_API MR_OffsetContourIndex * MR_OffsetContourIndex_ConstructFrom(int contourId, int vertId)
MRC_API const MR_OffsetContourIndex * MR_OffsetContoursOrigins_Get_lDest(const MR_OffsetContoursOrigins *_this)
MRC_API MR_OffsetContourIndex * MR_OffsetContoursOrigins_GetMutable_lOrg(MR_OffsetContoursOrigins *_this)
MRC_API void MR_OffsetContoursParams_Set_type(MR_OffsetContoursParams *_this, MR_OffsetContoursParams_Type value)
MRC_API int * MR_OffsetContoursRestoreZParams_GetMutable_relaxIterations(MR_OffsetContoursRestoreZParams *_this)
MRC_API MR_OffsetContoursOrigins * MR_OffsetContoursOrigins_AssignFromAnother(MR_OffsetContoursOrigins *_this, const MR_OffsetContoursOrigins *_other)
MRC_API bool MR_OffsetContoursOrigins_isIntersection(const MR_OffsetContoursOrigins *_this)
MRC_API const MR_OffsetContoursParams_EndType * MR_OffsetContoursParams_Get_endType(const MR_OffsetContoursParams *_this)
MRC_API MR_std_vector_std_vector_MR_Vector2f * MR_offsetContours_3_float(const MR_std_vector_std_vector_MR_Vector2f *contours, float offset, const MR_OffsetContoursParams *params)
MRC_API void MR_OffsetContourIndex_Set_contourId(MR_OffsetContourIndex *_this, int value)
MRC_API MR_OffsetContourIndex * MR_OffsetContoursOrigins_GetMutable_uOrg(MR_OffsetContoursOrigins *_this)
struct MR_OffsetContoursParams MR_OffsetContoursParams
Definition MROffsetContours.h:57
MRC_API void MR_OffsetContourIndex_DestroyArray(const MR_OffsetContourIndex *_this)
Destroys a heap-allocated array of MR_OffsetContourIndex. Does nothing if the pointer is null.
MRC_API void MR_OffsetContoursOrigins_Destroy(const MR_OffsetContoursOrigins *_this)
Destroys a heap-allocated instance of MR_OffsetContoursOrigins. Does nothing if the pointer is null.
MRC_API MR_std_vector_std_vector_MR_Vector3f * MR_offsetContours_4_float(const MR_std_vector_std_vector_MR_Vector3f *contours, float offset, const MR_OffsetContoursParams *params, const MR_OffsetContoursRestoreZParams *zParmas)
MRC_API void MR_OffsetContoursParams_Set_cornerType(MR_OffsetContoursParams *_this, MR_OffsetContoursParams_CornerType value)
MRC_API void MR_OffsetContourIndex_Set_vertId(MR_OffsetContourIndex *_this, int value)
MRC_API MR_OffsetContourIndex * MR_OffsetContourIndex_DefaultConstruct(void)
MRC_API const float * MR_OffsetContoursParams_Get_minAnglePrecision(const MR_OffsetContoursParams *_this)
MRC_API MR_std_vector_std_vector_MR_OffsetContoursOrigins *const * MR_OffsetContoursParams_Get_indicesMap(const MR_OffsetContoursParams *_this)
MRC_API MR_std_vector_std_vector_MR_OffsetContoursOrigins ** MR_OffsetContoursParams_GetMutable_indicesMap(MR_OffsetContoursParams *_this)
MRC_API const int * MR_OffsetContourIndex_Get_vertId(const MR_OffsetContourIndex *_this)
struct MR_OffsetContourIndex MR_OffsetContourIndex
Definition MROffsetContours.h:22
MRC_API void MR_OffsetContoursParams_Set_maxSharpAngle(MR_OffsetContoursParams *_this, float value)
MRC_API MR_OffsetContoursOrigins * MR_OffsetContoursOrigins_DefaultConstructArray(size_t num_elems)
MRC_API MR_OffsetContourIndex * MR_OffsetContourIndex_OffsetMutablePtr(MR_OffsetContourIndex *ptr, ptrdiff_t i)
MRC_API MR_OffsetContourIndex * MR_OffsetContourIndex_AssignFromAnother(MR_OffsetContourIndex *_this, const MR_OffsetContourIndex *_other)
MRC_API void MR_OffsetContoursRestoreZParams_Set_relaxIterations(MR_OffsetContoursRestoreZParams *_this, int value)
MR_PassBy
Definition common.h:23
#define MRC_API
Definition exports.h:11