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
22
25
28
37
46
55
59
60// -1 means unknown index
65
66// -1 means unknown index
70
71// -1 means unknown index
76
77// -1 means unknown index
82
83// -1 means unknown index
87
88// -1 means unknown index
93
97
102
106
109
112
117
120
123
129
133
134// Should be always valid
135// index of lower corresponding origin point on input contour
140
141// Should be always valid
142// index of lower corresponding origin point on input contour
147
148// Should be always valid
149// index of lower corresponding origin point on input contour
154
155// index of lower corresponding destination point on input contour
160
161// index of lower corresponding destination point on input contour
166
167// index of lower corresponding destination point on input contour
172
173// index of upper corresponding origin point on input contour
178
179// index of upper corresponding origin point on input contour
184
185// index of upper corresponding origin point on input contour
190
191// index of upper corresponding destination point on input contour
196
197// index of upper corresponding destination point on input contour
202
203// index of upper corresponding destination point on input contour
208
209// ratio of intersection point on lOrg->lDest segment
210// 0.0 -> lOrg
211// 1.0 -> lDest
216
217// ratio of intersection point on lOrg->lDest segment
218// 0.0 -> lOrg
219// 1.0 -> lDest
223
224// ratio of intersection point on lOrg->lDest segment
225// 0.0 -> lOrg
226// 1.0 -> lDest
231
232// ratio of intersection point on uOrg->uDest segment
233// 0.0 -> uOrg
234// 1.0 -> uDest
239
240// ratio of intersection point on uOrg->uDest segment
241// 0.0 -> uOrg
242// 1.0 -> uDest
246
247// ratio of intersection point on uOrg->uDest segment
248// 0.0 -> uOrg
249// 1.0 -> uDest
254
258
263
271
274
277
282
285
288
294
298
302
307
311
316
321
325
330
335
339
344
345// 20 deg
350
351// 20 deg
355
356// 20 deg
361
362// 120 deg
367
368// 120 deg
372
373// 120 deg
378
384
389
395
399
404
408
411
414
419
422
425
431
439
447
452
456
461
467
472
478
482
487
491
494
497
501
504
507
512
522
532
533#ifdef __cplusplus
534} // extern "C"
535#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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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
Generated from class MR::OffsetContoursOrigins.
Definition MROffsetContours.h:24
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:58
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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:40
@ MR_OffsetContoursParams_EndType_Round
creates round ends (use minAnglePrecision)
Definition MROffsetContours.h:42
@ MR_OffsetContoursParams_EndType_Cut
Definition MROffsetContours.h:44
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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:49
@ MR_OffsetContoursParams_CornerType_Sharp
Definition MROffsetContours.h:53
@ MR_OffsetContoursParams_CornerType_Round
creates round corners (use minAnglePrecision)
Definition MROffsetContours.h:51
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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:31
@ MR_OffsetContoursParams_Type_Offset
One-side signed offset, requires closed contours.
Definition MROffsetContours.h:33
@ MR_OffsetContoursParams_Type_Shell
Definition MROffsetContours.h:35
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API const MR_OffsetContourIndex * MR_OffsetContourIndex_OffsetPtr(const MR_OffsetContourIndex *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_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
Generated from class MR::OffsetContoursParams.
Definition MROffsetContours.h:27
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
Generated from class MR::OffsetContourIndex.
Definition MROffsetContours.h:21
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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:19
#define MRC_API
Definition exports.h:11