MeshLib C Docs
Loading...
Searching...
No Matches
MRLocalTriangulations.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMesh/MRId.h>
4#include <MRCMesh/MRVector3.h>
5#include <MRCMisc/common.h>
6#include <MRCMisc/exports.h>
8
9#include <stdbool.h>
10#include <stddef.h>
11#include <stdint.h>
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17typedef struct MR_Buffer_MR_VertId MR_Buffer_MR_VertId; // Defined in `#include <MRCMesh/MRBuffer.h>`.
18typedef struct MR_NoInit MR_NoInit; // Defined in `#include <MRCMesh/MRMeshFwd.h>`.
19typedef struct MR_PointCloud MR_PointCloud; // Defined in `#include <MRCMesh/MRPointCloud.h>`.
20typedef struct MR_Triangulation MR_Triangulation; // Defined in `#include <MRCMesh/MRVector.h>`.
21typedef struct MR_Vector_MR_FanRecord_MR_VertId MR_Vector_MR_FanRecord_MR_VertId; // Defined in `#include <MRCMesh/MRVector.h>`.
22typedef struct MR_VertBitSet MR_VertBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
23typedef struct MR_VertCoords MR_VertCoords; // Defined in `#include <MRCMesh/MRVector.h>`.
24typedef struct MR_std_function_MR_Vector3f_from_MR_VertId MR_std_function_MR_Vector3f_from_MR_VertId; // Defined in `#include <MRCMisc/std_function_MR_Vector3f_from_MR_VertId.h>`.
25typedef struct MR_std_function_bool_from_float MR_std_function_bool_from_float; // Defined in `#include <MRCMisc/std_function_bool_from_float.h>`.
26typedef struct MR_std_optional_MR_AllLocalTriangulations MR_std_optional_MR_AllLocalTriangulations; // Defined in `#include <MRCMisc/std_optional_MR_AllLocalTriangulations.h>`.
27typedef struct MR_std_vector_MR_FanRecordWithCenter MR_std_vector_MR_FanRecordWithCenter; // Defined in `#include <MRCMisc/std_vector_MR_FanRecordWithCenter.h>`.
28typedef struct MR_std_vector_MR_SomeLocalTriangulations MR_std_vector_MR_SomeLocalTriangulations; // Defined in `#include <MRCMisc/std_vector_MR_SomeLocalTriangulations.h>`.
29typedef struct MR_std_vector_MR_UnorientedTriangle MR_std_vector_MR_UnorientedTriangle; // Defined in `#include <MRCMisc/std_vector_MR_UnorientedTriangle.h>`.
30typedef struct MR_std_vector_MR_VertId MR_std_vector_MR_VertId; // Defined in `#include <MRCMisc/std_vector_MR_VertId.h>`.
31
32
39
46
50
54
61
67
74
79MRC_API const uint32_t *MR_FanRecord_Get_firstNei(const MR_FanRecord *_this);
80
84MRC_API void MR_FanRecord_Set_firstNei(MR_FanRecord *_this, uint32_t value);
85
91
97
102
105
108
113
117
122
127
130
133
139
145
150
156
163
168
171
174
178
181
186
191
194
197
203
208
212
217
222
226
231
232//in fanRecords
237
238//in fanRecords
242
243//in fanRecords
248
252
257
261
264
267
271
274
277
282
287
291
296
301
305
310
314
319
323
326
329
333
336
339
344
353
359
367
374
384
389
395
401
407
408#ifdef __cplusplus
409} // extern "C"
410#endif
struct MR_std_function_bool_from_float MR_std_function_bool_from_float
Definition MR3mf.h:10
struct MR_VertCoords MR_VertCoords
Definition MRAABBTreePoints.h:22
struct MR_VertBitSet MR_VertBitSet
Definition MRAABBTree.h:15
struct MR_NoInit MR_NoInit
Definition MRBox.h:16
struct MR_Buffer_MR_VertId MR_Buffer_MR_VertId
std::vector<V>-like container that is 1) resized without initialization of its elements,...
Definition MRBuffer.h:73
struct MR_PointCloud MR_PointCloud
Definition MRCtm.h:15
struct MR_std_vector_MR_VertId MR_std_vector_MR_VertId
Definition MREdgePaths.h:30
struct MR_Triangulation MR_Triangulation
Definition MRIdentifyVertices.h:13
struct MR_std_vector_MR_FanRecordWithCenter MR_std_vector_MR_FanRecordWithCenter
Definition MRLocalTriangulations.h:27
MRC_API MR_std_optional_MR_AllLocalTriangulations * MR_uniteLocalTriangulations(const MR_std_vector_MR_SomeLocalTriangulations *in, const MR_std_function_bool_from_float *progress)
MRC_API MR_AllLocalTriangulations * MR_AllLocalTriangulations_ConstructFrom(MR_PassBy neighbors_pass_by, MR_Buffer_MR_VertId *neighbors, MR_PassBy fanRecords_pass_by, MR_Vector_MR_FanRecord_MR_VertId *fanRecords)
struct MR_std_optional_MR_AllLocalTriangulations MR_std_optional_MR_AllLocalTriangulations
Definition MRLocalTriangulations.h:26
MRC_API MR_VertId * MR_FanRecord_GetMutable_border(MR_FanRecord *_this)
MRC_API const MR_FanRecordWithCenter * MR_FanRecord_StaticDowncastTo_MR_FanRecordWithCenter(const MR_FanRecord *object)
MRC_API MR_std_vector_MR_FanRecordWithCenter * MR_SomeLocalTriangulations_GetMutable_fanRecords(MR_SomeLocalTriangulations *_this)
MRC_API const MR_FanRecordWithCenter * MR_FanRecordWithCenter_OffsetPtr(const MR_FanRecordWithCenter *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_AllLocalTriangulations * MR_AllLocalTriangulations_OffsetPtr(const MR_AllLocalTriangulations *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_FanRecord * MR_FanRecordWithCenter_MutableUpcastTo_MR_FanRecord(MR_FanRecordWithCenter *object)
Upcasts an instance of MR::FanRecordWithCenter to its base class MR::FanRecord.
MRC_API MR_Triangulation * MR_findRepeatedOrientedTriangles_2(const MR_AllLocalTriangulations *triangs, int32_t repetitions)
MRC_API void MR_FanRecord_Set_firstNei(MR_FanRecord *_this, uint32_t value)
MRC_API const MR_SomeLocalTriangulations * MR_SomeLocalTriangulations_OffsetPtr(const MR_SomeLocalTriangulations *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_AllLocalTriangulations * MR_AllLocalTriangulations_DefaultConstructArray(size_t num_elems)
MRC_API const MR_VertId * MR_SomeLocalTriangulations_Get_maxCenterId(const MR_SomeLocalTriangulations *_this)
MRC_API MR_FanRecordWithCenter * MR_FanRecordWithCenter_OffsetMutablePtr(MR_FanRecordWithCenter *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 void MR_FanRecordWithCenter_Set_center(MR_FanRecordWithCenter *_this, MR_VertId value)
MRC_API MR_Vector_MR_FanRecord_MR_VertId * MR_AllLocalTriangulations_GetMutable_fanRecords(MR_AllLocalTriangulations *_this)
MRC_API void MR_SomeLocalTriangulations_Set_fanRecords(MR_SomeLocalTriangulations *_this, MR_PassBy value_pass_by, MR_std_vector_MR_FanRecordWithCenter *value)
MRC_API void MR_FanRecord_DestroyArray(const MR_FanRecord *_this)
Destroys a heap-allocated array of MR_FanRecord. Does nothing if the pointer is null.
MRC_API const MR_VertId * MR_FanRecordWithCenter_Get_center(const MR_FanRecordWithCenter *_this)
struct MR_std_vector_MR_SomeLocalTriangulations MR_std_vector_MR_SomeLocalTriangulations
Definition MRLocalTriangulations.h:28
MRC_API const MR_FanRecord * MR_FanRecord_OffsetPtr(const MR_FanRecord *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 uint32_t * MR_FanRecord_Get_firstNei(const MR_FanRecord *_this)
MRC_API MR_VertId * MR_FanRecordWithCenter_GetMutable_center(MR_FanRecordWithCenter *_this)
MRC_API const MR_std_vector_MR_VertId * MR_SomeLocalTriangulations_Get_neighbors(const MR_SomeLocalTriangulations *_this)
MRC_API MR_FanRecord * MR_FanRecord_AssignFromAnother(MR_FanRecord *_this, const MR_FanRecord *_other)
MRC_API MR_FanRecordWithCenter * MR_FanRecordWithCenter_Construct_1(const MR_NoInit *_1)
MRC_API MR_std_vector_MR_UnorientedTriangle * MR_findRepeatedUnorientedTriangles(const MR_AllLocalTriangulations *triangs, int32_t repetitions)
MRC_API MR_std_array_int32_t_4 MR_computeTrianglesRepetitions(const MR_AllLocalTriangulations *triangs)
struct MR_FanRecordWithCenter MR_FanRecordWithCenter
Definition MRLocalTriangulations.h:45
MRC_API const MR_Buffer_MR_VertId * MR_AllLocalTriangulations_Get_neighbors(const MR_AllLocalTriangulations *_this)
MRC_API void MR_AllLocalTriangulations_Destroy(const MR_AllLocalTriangulations *_this)
Destroys a heap-allocated instance of MR_AllLocalTriangulations. Does nothing if the pointer is null.
MRC_API MR_FanRecordWithCenter * MR_FanRecordWithCenter_DefaultConstructArray(size_t num_elems)
MRC_API void MR_SomeLocalTriangulations_Destroy(const MR_SomeLocalTriangulations *_this)
Destroys a heap-allocated instance of MR_SomeLocalTriangulations. Does nothing if the pointer is null...
MRC_API MR_FanRecordWithCenter * MR_FanRecordWithCenter_Construct_3(const MR_VertId *c, const MR_VertId *b, const uint32_t *fn)
MRC_API MR_FanRecord * MR_FanRecord_OffsetMutablePtr(MR_FanRecord *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 void MR_FanRecordWithCenter_DestroyArray(const MR_FanRecordWithCenter *_this)
Destroys a heap-allocated array of MR_FanRecordWithCenter. Does nothing if the pointer is null.
struct MR_std_vector_MR_UnorientedTriangle MR_std_vector_MR_UnorientedTriangle
Definition MRLocalTriangulations.h:29
MRC_API MR_SomeLocalTriangulations * MR_SomeLocalTriangulations_DefaultConstruct(void)
MRC_API MR_FanRecordWithCenter * MR_FanRecordWithCenter_AssignFromAnother(MR_FanRecordWithCenter *_this, const MR_FanRecordWithCenter *_other)
MRC_API void MR_FanRecordWithCenter_Destroy(const MR_FanRecordWithCenter *_this)
Destroys a heap-allocated instance of MR_FanRecordWithCenter. Does nothing if the pointer is null.
MRC_API void MR_AllLocalTriangulations_Set_fanRecords(MR_AllLocalTriangulations *_this, MR_PassBy value_pass_by, MR_Vector_MR_FanRecord_MR_VertId *value)
MRC_API MR_VertId * MR_SomeLocalTriangulations_GetMutable_maxCenterId(MR_SomeLocalTriangulations *_this)
MRC_API MR_SomeLocalTriangulations * MR_SomeLocalTriangulations_OffsetMutablePtr(MR_SomeLocalTriangulations *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
struct MR_Vector_MR_FanRecord_MR_VertId MR_Vector_MR_FanRecord_MR_VertId
Definition MRLocalTriangulations.h:21
MRC_API MR_FanRecordWithCenter * MR_FanRecordWithCenter_ConstructFromAnother(const MR_FanRecordWithCenter *_other)
MRC_API uint32_t * MR_FanRecord_GetMutable_firstNei(MR_FanRecord *_this)
MRC_API void MR_AllLocalTriangulations_DestroyArray(const MR_AllLocalTriangulations *_this)
Destroys a heap-allocated array of MR_AllLocalTriangulations. Does nothing if the pointer is null.
MRC_API MR_AllLocalTriangulations * MR_AllLocalTriangulations_ConstructFromAnother(MR_PassBy _other_pass_by, MR_AllLocalTriangulations *_other)
MRC_API bool MR_autoOrientLocalTriangulations(const MR_PointCloud *pointCloud, MR_AllLocalTriangulations *triangs, const MR_VertBitSet *region, MR_PassBy progress_pass_by, MR_std_function_bool_from_float *progress, MR_Triangulation *outRep3, MR_Triangulation *outRep2)
MRC_API MR_FanRecord * MR_FanRecord_ConstructFromAnother(const MR_FanRecord *_other)
MRC_API MR_AllLocalTriangulations * MR_AllLocalTriangulations_AssignFromAnother(MR_AllLocalTriangulations *_this, MR_PassBy _other_pass_by, MR_AllLocalTriangulations *_other)
MRC_API MR_Buffer_MR_VertId * MR_AllLocalTriangulations_GetMutable_neighbors(MR_AllLocalTriangulations *_this)
MRC_API void MR_SomeLocalTriangulations_DestroyArray(const MR_SomeLocalTriangulations *_this)
Destroys a heap-allocated array of MR_SomeLocalTriangulations. Does nothing if the pointer is null.
MRC_API void MR_findRepeatedOrientedTriangles_3(const MR_AllLocalTriangulations *triangs, MR_Triangulation *outRep3, MR_Triangulation *outRep2)
MRC_API void MR_FanRecord_Destroy(const MR_FanRecord *_this)
Destroys a heap-allocated instance of MR_FanRecord. Does nothing if the pointer is null.
MRC_API MR_AllLocalTriangulations * MR_AllLocalTriangulations_DefaultConstruct(void)
MRC_API const MR_std_vector_MR_FanRecordWithCenter * MR_SomeLocalTriangulations_Get_fanRecords(const MR_SomeLocalTriangulations *_this)
struct MR_std_function_MR_Vector3f_from_MR_VertId MR_std_function_MR_Vector3f_from_MR_VertId
Definition MRLocalTriangulations.h:24
MRC_API MR_FanRecord * MR_FanRecord_DefaultConstructArray(size_t num_elems)
MRC_API void MR_SomeLocalTriangulations_Set_maxCenterId(MR_SomeLocalTriangulations *_this, MR_VertId value)
MRC_API void MR_FanRecord_Set_border(MR_FanRecord *_this, MR_VertId value)
MRC_API MR_std_vector_MR_VertId * MR_SomeLocalTriangulations_GetMutable_neighbors(MR_SomeLocalTriangulations *_this)
MRC_API void MR_orientLocalTriangulations_std_function_MR_Vector3f_func_from_MR_VertId(MR_AllLocalTriangulations *triangs, const MR_VertCoords *coords, const MR_VertBitSet *region, const MR_std_function_MR_Vector3f_from_MR_VertId *targetDir)
MRC_API MR_FanRecord * MR_FanRecord_Construct_1(const MR_NoInit *_1)
MRC_API void MR_orientLocalTriangulations_MR_VertCoords(MR_AllLocalTriangulations *triangs, const MR_VertCoords *coords, const MR_VertBitSet *region, const MR_VertCoords *targetDir)
MRC_API MR_AllLocalTriangulations * MR_AllLocalTriangulations_OffsetMutablePtr(MR_AllLocalTriangulations *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_FanRecordWithCenter * MR_FanRecord_MutableStaticDowncastTo_MR_FanRecordWithCenter(MR_FanRecord *object)
MRC_API MR_Vector3f MR_computeNormal(const MR_AllLocalTriangulations *triangs, const MR_VertCoords *points, MR_VertId v)
MRC_API const MR_FanRecord * MR_FanRecordWithCenter_UpcastTo_MR_FanRecord(const MR_FanRecordWithCenter *object)
MRC_API const MR_VertId * MR_FanRecord_Get_border(const MR_FanRecord *_this)
MRC_API MR_SomeLocalTriangulations * MR_SomeLocalTriangulations_AssignFromAnother(MR_SomeLocalTriangulations *_this, MR_PassBy _other_pass_by, MR_SomeLocalTriangulations *_other)
MRC_API MR_SomeLocalTriangulations * MR_SomeLocalTriangulations_ConstructFromAnother(MR_PassBy _other_pass_by, MR_SomeLocalTriangulations *_other)
MRC_API MR_SomeLocalTriangulations * MR_SomeLocalTriangulations_ConstructFrom(MR_PassBy neighbors_pass_by, MR_std_vector_MR_VertId *neighbors, MR_PassBy fanRecords_pass_by, MR_std_vector_MR_FanRecordWithCenter *fanRecords, MR_VertId maxCenterId)
MRC_API void MR_AllLocalTriangulations_Set_neighbors(MR_AllLocalTriangulations *_this, MR_PassBy value_pass_by, MR_Buffer_MR_VertId *value)
MRC_API const MR_Vector_MR_FanRecord_MR_VertId * MR_AllLocalTriangulations_Get_fanRecords(const MR_AllLocalTriangulations *_this)
MRC_API void MR_SomeLocalTriangulations_Set_neighbors(MR_SomeLocalTriangulations *_this, MR_PassBy value_pass_by, MR_std_vector_MR_VertId *value)
struct MR_FanRecord MR_FanRecord
Definition MRLocalTriangulations.h:38
struct MR_AllLocalTriangulations MR_AllLocalTriangulations
Definition MRLocalTriangulations.h:53
struct MR_SomeLocalTriangulations MR_SomeLocalTriangulations
Definition MRLocalTriangulations.h:49
MRC_API MR_FanRecord * MR_FanRecord_Construct_2(const MR_VertId *b, const uint32_t *fn)
MRC_API MR_SomeLocalTriangulations * MR_SomeLocalTriangulations_DefaultConstructArray(size_t num_elems)
MR_PassBy
Definition common.h:19
#define MRC_API
Definition exports.h:11
Definition MRVector3.h:51
Definition MRId.h:56
A fixed-size array of int32_t of size 4.
Definition std_array_int32_t_4.h:12