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>
7#include <MRCMisc/std_array_int_4.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
39
47
52
57
64MRC_API const MR_VertId *MR_FanRecord_Get_border(const MR_FanRecord *_this);
65
73
81
87MRC_API const unsigned int *MR_FanRecord_Get_firstNei(const MR_FanRecord *_this);
88
94MRC_API void MR_FanRecord_Set_firstNei(MR_FanRecord *_this, unsigned int value);
95
101MRC_API unsigned int *MR_FanRecord_GetMutable_firstNei(MR_FanRecord *_this);
102
109MRC_API MR_FanRecord *MR_FanRecord_Construct_2(const MR_VertId *b, const unsigned int *fn);
110
115
118MRC_API const MR_FanRecord *MR_FanRecord_OffsetPtr(const MR_FanRecord *ptr, ptrdiff_t i);
119
123
129
134
140
146
148MRC_API void MR_FanRecord_Destroy(const MR_FanRecord *_this);
149
151MRC_API void MR_FanRecord_DestroyArray(const MR_FanRecord *_this);
152
160
167
174
181
189
197
205
211MRC_API const unsigned int *MR_FanRecordWithCenter_Get_firstNei(const MR_FanRecordWithCenter *_this);
212
218MRC_API void MR_FanRecordWithCenter_Set_firstNei(MR_FanRecordWithCenter *_this, unsigned int value);
219
226
235MRC_API MR_FanRecordWithCenter *MR_FanRecordWithCenter_Construct_3(const MR_VertId *c, const MR_VertId *b, const unsigned int *fn);
236
241
245
249
254
258
264
270
273
276
284
290
296
302
308
314
320
321//in fanRecords
327
328//in fanRecords
334
335//in fanRecords
341
345
350
357MRC_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);
358
362
366
371
374
377
384
390
396
402
408
414
420
424
429
435MRC_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);
436
440
444
449
452
455
462
471
477
484MRC_API void MR_orientLocalTriangulations_MR_VertCoords(MR_AllLocalTriangulations *triangs, const MR_VertCoords *coords, const MR_VertBitSet *region, const MR_VertCoords *targetDir);
485
492
501MRC_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);
502
506MRC_API MR_std_array_int_4 MR_computeTrianglesRepetitions(const MR_AllLocalTriangulations *triangs);
507
513
519
525
526#ifdef __cplusplus
527} // extern "C"
528#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:22
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:88
struct MR_PointCloud MR_PointCloud
Definition MRCtm.h:19
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)
MRC_API const MR_AllLocalTriangulations * MR_AllLocalTriangulations_OffsetPtr(const MR_AllLocalTriangulations *ptr, ptrdiff_t i)
MRC_API MR_FanRecord * MR_FanRecordWithCenter_MutableUpcastTo_MR_FanRecord(MR_FanRecordWithCenter *object)
MRC_API void MR_FanRecord_Set_firstNei(MR_FanRecord *_this, unsigned int value)
MRC_API const unsigned int * MR_FanRecordWithCenter_Get_firstNei(const MR_FanRecordWithCenter *_this)
MRC_API const unsigned int * MR_FanRecord_Get_firstNei(const MR_FanRecord *_this)
MRC_API const MR_VertId * MR_FanRecordWithCenter_Get_border(const MR_FanRecordWithCenter *_this)
MRC_API const MR_SomeLocalTriangulations * MR_SomeLocalTriangulations_OffsetPtr(const MR_SomeLocalTriangulations *ptr, ptrdiff_t i)
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 unsigned int * MR_FanRecordWithCenter_GetMutable_firstNei(MR_FanRecordWithCenter *_this)
MRC_API MR_FanRecordWithCenter * MR_FanRecordWithCenter_OffsetMutablePtr(MR_FanRecordWithCenter *ptr, ptrdiff_t i)
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)
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)
MRC_API MR_VertId * MR_FanRecordWithCenter_GetMutable_border(MR_FanRecordWithCenter *_this)
struct MR_FanRecordWithCenter MR_FanRecordWithCenter
Definition MRLocalTriangulations.h:46
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)
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)
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_FanRecordWithCenter_Set_border(MR_FanRecordWithCenter *_this, MR_VertId value)
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)
MRC_API void MR_FanRecordWithCenter_Set_firstNei(MR_FanRecordWithCenter *_this, unsigned int value)
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:38
struct MR_AllLocalTriangulations MR_AllLocalTriangulations
Definition MRLocalTriangulations.h:56
struct MR_SomeLocalTriangulations MR_SomeLocalTriangulations
Definition MRLocalTriangulations.h:51
MRC_API MR_SomeLocalTriangulations * MR_SomeLocalTriangulations_DefaultConstructArray(size_t num_elems)
Generated from class MR::Vector3f.
Definition MRVector3.h:47
Definition MRId.h:55