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
70
71// -1 means unknown index
76
77// -1 means unknown index
83
84// -1 means unknown index
90
91// -1 means unknown index
96
97// -1 means unknown index
103
107
112
117
121
125
131
134
137
145
149
150// Should be always valid
151// index of lower corresponding origin point on input contour
157
158// Should be always valid
159// index of lower corresponding origin point on input contour
166
167// Should be always valid
168// index of lower corresponding origin point on input contour
174
175// index of lower corresponding destination point on input contour
181
182// index of lower corresponding destination point on input contour
189
190// index of lower corresponding destination point on input contour
196
197// index of upper corresponding origin point on input contour
203
204// index of upper corresponding origin point on input contour
211
212// index of upper corresponding origin point on input contour
218
219// index of upper corresponding destination point on input contour
225
226// index of upper corresponding destination point on input contour
233
234// index of upper corresponding destination point on input contour
240
241// ratio of intersection point on lOrg->lDest segment
242// 0.0 -> lOrg
243// 1.0 -> lDest
249
250// ratio of intersection point on lOrg->lDest segment
251// 0.0 -> lOrg
252// 1.0 -> lDest
257
258// ratio of intersection point on lOrg->lDest segment
259// 0.0 -> lOrg
260// 1.0 -> lDest
266
267// ratio of intersection point on uOrg->uDest segment
268// 0.0 -> uOrg
269// 1.0 -> uDest
275
276// ratio of intersection point on uOrg->uDest segment
277// 0.0 -> uOrg
278// 1.0 -> uDest
283
284// ratio of intersection point on uOrg->uDest segment
285// 0.0 -> uOrg
286// 1.0 -> uDest
292
296
301
314
318
322
328
331
334
342
346
350
356
362
368
374
380
386
392
398
404
405// 20 deg
411
412// 20 deg
417
418// 20 deg
424
425// 120 deg
431
432// 120 deg
437
438// 120 deg
444
451
458
465
469
474
483
487
491
497
500
503
511
519
527
533
539
545
552
558
565
569
574
580
584
588
593
596
599
606
616
626
627#ifdef __cplusplus
628} // extern "C"
629#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)