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#include <stdint.h>
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
15typedef struct MR_std_function_float_from_int32_t_int32_t MR_std_function_float_from_int32_t_int32_t; // Defined in `#include <MRCMisc/std_function_float_from_int32_t_int32_t.h>`.
16typedef 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>`.
17typedef 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>`.
18typedef 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>`.
19
20
23
26
29
32enum // MR_OffsetContoursParams_Type
33{
38};
39
42enum // MR_OffsetContoursParams_EndType
43{
48};
49
52enum // MR_OffsetContoursParams_CornerType
53{
58};
59
63
64// -1 means unknown index
69
70// -1 means unknown index
74
75// -1 means unknown index
80
81// -1 means unknown index
86
87// -1 means unknown index
91
92// -1 means unknown index
97
101
106
110
113
116
121
124
127
133
137
138// Should be always valid
139// index of lower corresponding origin point on input contour
144
145// Should be always valid
146// index of lower corresponding origin point on input contour
151
152// Should be always valid
153// index of lower corresponding origin point on input contour
158
159// index of lower corresponding destination point on input contour
164
165// index of lower corresponding destination point on input contour
170
171// index of lower corresponding destination point on input contour
176
177// index of upper corresponding origin point on input contour
182
183// index of upper corresponding origin point on input contour
188
189// index of upper corresponding origin point on input contour
194
195// index of upper corresponding destination point on input contour
200
201// index of upper corresponding destination point on input contour
206
207// index of upper corresponding destination point on input contour
212
213// ratio of intersection point on lOrg->lDest segment
214// 0.0 -> lOrg
215// 1.0 -> lDest
220
221// ratio of intersection point on lOrg->lDest segment
222// 0.0 -> lOrg
223// 1.0 -> lDest
227
228// ratio of intersection point on lOrg->lDest segment
229// 0.0 -> lOrg
230// 1.0 -> lDest
235
236// ratio of intersection point on uOrg->uDest segment
237// 0.0 -> uOrg
238// 1.0 -> uDest
243
244// ratio of intersection point on uOrg->uDest segment
245// 0.0 -> uOrg
246// 1.0 -> uDest
250
251// ratio of intersection point on uOrg->uDest segment
252// 0.0 -> uOrg
253// 1.0 -> uDest
258
262
267
275
278
281
286
289
292
298
302
306
311
315
320
325
329
334
339
343
348
349// 20 deg
354
355// 20 deg
359
360// 20 deg
365
366// 120 deg
371
372// 120 deg
376
377// 120 deg
382
388
393
399
403
408
412
415
418
423
426
429
435
443
451
456
460
465
471
476
482
486
491
495
498
501
505
508
511
516
526
536
537#ifdef __cplusplus
538} // extern "C"
539#endif
struct MR_std_vector_std_vector_MR_Vector2f MR_std_vector_std_vector_MR_Vector2f
Definition MR2DContoursTriangulation.h:22
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:25
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 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, int32_t relaxIterations)
MRC_API void MR_OffsetContoursOrigins_Set_uDest(MR_OffsetContoursOrigins *_this, const MR_OffsetContourIndex *value)
int32_t MR_OffsetContoursParams_EndType
type of offsetting on ends of non-closed contours
Definition MROffsetContours.h:41
struct MR_std_vector_std_vector_MR_OffsetContoursOrigins MR_std_vector_std_vector_MR_OffsetContoursOrigins
Definition MROffsetContours.h:16
struct MR_OffsetContoursRestoreZParams MR_OffsetContoursRestoreZParams
Definition MROffsetContours.h:62
@ MR_OffsetContoursParams_EndType_Round
creates round ends (use minAnglePrecision)
Definition MROffsetContours.h:45
@ MR_OffsetContoursParams_EndType_Cut
Definition MROffsetContours.h:47
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 const int32_t * MR_OffsetContourIndex_Get_vertId(const MR_OffsetContourIndex *_this)
MRC_API float * MR_OffsetContoursOrigins_GetMutable_uRatio(MR_OffsetContoursOrigins *_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)
int32_t MR_OffsetContoursParams_Type
type of offset
Definition MROffsetContours.h:31
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)
MRC_API const float * MR_OffsetContoursParams_Get_maxSharpAngle(const MR_OffsetContoursParams *_this)
MRC_API const int32_t * MR_OffsetContourIndex_Get_contourId(const MR_OffsetContourIndex *_this)
MRC_API MR_std_vector_std_vector_MR_Vector2f * MR_offsetContours_3_std_function_float_func_from_int32_t_int32_t(const MR_std_vector_std_vector_MR_Vector2f *contours, MR_PassBy offset_pass_by, MR_std_function_float_from_int32_t_int32_t *offset, const MR_OffsetContoursParams *params)
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_OffsetContourIndex * MR_OffsetContourIndex_ConstructFrom(int32_t contourId, int32_t vertId)
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 void MR_OffsetContourIndex_Set_contourId(MR_OffsetContourIndex *_this, int32_t 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 int32_t * MR_OffsetContourIndex_GetMutable_contourId(MR_OffsetContourIndex *_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 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.
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)
MRC_API MR_OffsetContoursParams_EndType * MR_OffsetContoursParams_GetMutable_endType(MR_OffsetContoursParams *_this)
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 void MR_OffsetContourIndex_Set_vertId(MR_OffsetContourIndex *_this, int32_t value)
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:14
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_OffsetContoursRestoreZParams * MR_OffsetContoursRestoreZParams_DefaultConstructArray(size_t num_elems)
@ MR_OffsetContoursParams_Type_Offset
One-side signed offset, requires closed contours.
Definition MROffsetContours.h:35
@ MR_OffsetContoursParams_Type_Shell
Definition MROffsetContours.h:37
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.
int32_t MR_OffsetContoursParams_CornerType
type of positive offset curve in corners
Definition MROffsetContours.h:51
MRC_API MR_OffsetContoursRestoreZParams * MR_OffsetContoursRestoreZParams_DefaultConstruct(void)
MRC_API void MR_OffsetContoursOrigins_Set_uRatio(MR_OffsetContoursOrigins *_this, float value)
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 int32_t * MR_OffsetContoursRestoreZParams_GetMutable_relaxIterations(MR_OffsetContoursRestoreZParams *_this)
MRC_API const MR_OffsetContourIndex * MR_OffsetContoursOrigins_Get_uOrg(const MR_OffsetContoursOrigins *_this)
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 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 void MR_OffsetContoursRestoreZParams_Set_relaxIterations(MR_OffsetContoursRestoreZParams *_this, int32_t value)
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)
@ MR_OffsetContoursParams_CornerType_Sharp
Definition MROffsetContours.h:57
@ MR_OffsetContoursParams_CornerType_Round
creates round corners (use minAnglePrecision)
Definition MROffsetContours.h:55
MRC_API MR_OffsetContourIndex * MR_OffsetContoursOrigins_GetMutable_uOrg(MR_OffsetContoursOrigins *_this)
struct MR_OffsetContoursParams MR_OffsetContoursParams
Generated from class MR::OffsetContoursParams.
Definition MROffsetContours.h:28
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.
struct MR_std_function_float_from_int32_t_int32_t MR_std_function_float_from_int32_t_int32_t
Definition MROffsetContours.h:15
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 MR_OffsetContourIndex * MR_OffsetContourIndex_DefaultConstruct(void)
MRC_API int32_t * MR_OffsetContourIndex_GetMutable_vertId(MR_OffsetContourIndex *_this)
MRC_API const float * MR_OffsetContoursParams_Get_minAnglePrecision(const MR_OffsetContoursParams *_this)
MRC_API const int32_t * MR_OffsetContoursRestoreZParams_Get_relaxIterations(const MR_OffsetContoursRestoreZParams *_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)
struct MR_OffsetContourIndex MR_OffsetContourIndex
Generated from class 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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API MR_std_vector_std_vector_MR_Vector3f * MR_offsetContours_4_std_function_float_func_from_int32_t_int32_t(const MR_std_vector_std_vector_MR_Vector3f *contours, MR_PassBy offset_pass_by, MR_std_function_float_from_int32_t_int32_t *offset, const MR_OffsetContoursParams *params, const MR_OffsetContoursRestoreZParams *zParmas)
MRC_API MR_OffsetContourIndex * MR_OffsetContourIndex_AssignFromAnother(MR_OffsetContourIndex *_this, const MR_OffsetContourIndex *_other)
MR_PassBy
Definition common.h:19
#define MRC_API
Definition exports.h:11