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
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16typedef struct MR_Buffer_MR_VertId MR_Buffer_MR_VertId; // Defined in `#include <MRCMesh/MRBuffer.h>`.
17typedef struct MR_NoInit MR_NoInit; // Defined in `#include <MRCMesh/MRMeshFwd.h>`.
18typedef struct MR_PointCloud MR_PointCloud; // Defined in `#include <MRCMesh/MRPointCloud.h>`.
19typedef struct MR_Triangulation MR_Triangulation; // Defined in `#include <MRCMesh/MRVector.h>`.
20typedef struct MR_Vector_MR_FanRecord_MR_VertId MR_Vector_MR_FanRecord_MR_VertId; // Defined in `#include <MRCMesh/MRVector.h>`.
21typedef struct MR_VertBitSet MR_VertBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
22typedef struct MR_VertCoords MR_VertCoords; // Defined in `#include <MRCMesh/MRVector.h>`.
23typedef 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>`.
24typedef struct MR_std_function_bool_from_float MR_std_function_bool_from_float; // Defined in `#include <MRCMisc/std_function_bool_from_float.h>`.
25typedef struct MR_std_optional_MR_AllLocalTriangulations MR_std_optional_MR_AllLocalTriangulations; // Defined in `#include <MRCMisc/std_optional_MR_AllLocalTriangulations.h>`.
26typedef struct MR_std_vector_MR_FanRecordWithCenter MR_std_vector_MR_FanRecordWithCenter; // Defined in `#include <MRCMisc/std_vector_MR_FanRecordWithCenter.h>`.
27typedef struct MR_std_vector_MR_SomeLocalTriangulations MR_std_vector_MR_SomeLocalTriangulations; // Defined in `#include <MRCMisc/std_vector_MR_SomeLocalTriangulations.h>`.
28typedef struct MR_std_vector_MR_UnorientedTriangle MR_std_vector_MR_UnorientedTriangle; // Defined in `#include <MRCMisc/std_vector_MR_UnorientedTriangle.h>`.
29typedef struct MR_std_vector_MR_VertId MR_std_vector_MR_VertId; // Defined in `#include <MRCMisc/std_vector_MR_VertId.h>`.
30
31
38
45
49
53
60
66
73
78MRC_API const unsigned int *MR_FanRecord_Get_firstNei(const MR_FanRecord *_this);
79
83MRC_API void MR_FanRecord_Set_firstNei(MR_FanRecord *_this, unsigned int value);
84
90
95MRC_API MR_FanRecord *MR_FanRecord_Construct_2(const MR_VertId *b, const unsigned int *fn);
96
101
104
107
112
116
121
126
129
132
138
144
149
155
162
167
170
173
177
180
185
190
193
196
202
207
211
216
221
225
230
231//in fanRecords
236
237//in fanRecords
241
242//in fanRecords
247
251
256
260
263
266
270
273
276
281
286
290
295
300
304
309
313
318
322
325
328
332
335
338
343
352
358
366
373
383
388
394
400
406
407#ifdef __cplusplus
408} // extern "C"
409#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:21
struct MR_VertBitSet MR_VertBitSet
Definition MRAABBTree.h:15
struct MR_NoInit MR_NoInit
Definition MRBox.h:15
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:83
struct MR_PointCloud MR_PointCloud
Definition MRCtm.h:14
struct MR_std_vector_MR_VertId MR_std_vector_MR_VertId
Definition MREdgePaths.h:29
struct MR_Triangulation MR_Triangulation
Definition MRIdentifyVertices.h:13
struct MR_std_vector_MR_FanRecordWithCenter MR_std_vector_MR_FanRecordWithCenter
Definition MRLocalTriangulations.h:26
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:25
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 void MR_FanRecord_Set_firstNei(MR_FanRecord *_this, unsigned int value)
MRC_API const unsigned int * MR_FanRecord_Get_firstNei(const MR_FanRecord *_this)
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:27
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 MR_VertId * MR_FanRecordWithCenter_GetMutable_center(MR_FanRecordWithCenter *_this)
MRC_API unsigned int * MR_FanRecord_GetMutable_firstNei(MR_FanRecord *_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_array_int_4 MR_computeTrianglesRepetitions(const MR_AllLocalTriangulations *triangs)
struct MR_FanRecordWithCenter MR_FanRecordWithCenter
Definition MRLocalTriangulations.h:44
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_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:28
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:20
MRC_API MR_FanRecord * MR_FanRecord_Construct_2(const MR_VertId *b, const unsigned int *fn)
MRC_API MR_FanRecordWithCenter * MR_FanRecordWithCenter_ConstructFromAnother(const MR_FanRecordWithCenter *_other)
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_std_vector_MR_UnorientedTriangle * MR_findRepeatedUnorientedTriangles(const MR_AllLocalTriangulations *triangs, int repetitions)
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:23
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 MR_FanRecordWithCenter * MR_FanRecordWithCenter_Construct_3(const MR_VertId *c, const MR_VertId *b, const unsigned int *fn)
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 MR_Triangulation * MR_findRepeatedOrientedTriangles_2(const MR_AllLocalTriangulations *triangs, int repetitions)
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:37
struct MR_AllLocalTriangulations MR_AllLocalTriangulations
Definition MRLocalTriangulations.h:52
struct MR_SomeLocalTriangulations MR_SomeLocalTriangulations
Definition MRLocalTriangulations.h:48
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:50
Definition MRId.h:55
A fixed-size array of int of size 4.
Definition std_array_int_4.h:10