MeshLib C Docs
Loading...
Searching...
No Matches
MRAlphaShape.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMesh/MRId.h>
4#include <MRCMisc/common.h>
5#include <MRCMisc/exports.h>
6
7#include <stdbool.h>
8#include <stddef.h>
9#include <stdint.h>
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15typedef struct MR_ConvertToIntVector MR_ConvertToIntVector; // Defined in `#include <MRCMesh/MRPrecisePredicates3.h>`.
16typedef struct MR_Mesh MR_Mesh; // Defined in `#include <MRCMesh/MRMesh.h>`.
17typedef struct MR_PointCloud MR_PointCloud; // Defined in `#include <MRCMesh/MRPointCloud.h>`.
18typedef struct MR_PreciseVertCoords MR_PreciseVertCoords; // Defined in `#include <MRCMesh/MRPrecisePredicates3.h>`.
19typedef struct MR_Triangulation MR_Triangulation; // Defined in `#include <MRCMesh/MRVector.h>`.
20typedef struct MR_Vector_MR_Vector3i_MR_VertId MR_Vector_MR_Vector3i_MR_VertId; // Defined in `#include <MRCMesh/MRVector.h>`.
21typedef struct MR_std_function_bool_from_float MR_std_function_bool_from_float; // Defined in `#include <MRCMisc/std_function_bool_from_float.h>`.
22typedef struct MR_std_optional_MR_Mesh MR_std_optional_MR_Mesh; // Defined in `#include <MRCMisc/std_optional_MR_Mesh.h>`.
23typedef struct MR_std_optional_MR_Triangulation MR_std_optional_MR_Triangulation; // Defined in `#include <MRCMisc/std_optional_MR_Triangulation.h>`.
24typedef struct MR_std_vector_MR_AlphaShapeNei MR_std_vector_MR_AlphaShapeNei; // Defined in `#include <MRCMisc/std_vector_MR_AlphaShapeNei.h>`.
25typedef struct MR_std_vector_MR_MeshBuilder_VertDuplication MR_std_vector_MR_MeshBuilder_VertDuplication; // Defined in `#include <MRCMisc/std_vector_MR_MeshBuilder_VertDuplication.h>`.
26
27
34
41
46
53
61
68
76
84
92
101
110
119
127
134
142
146
151
159MRC_API MR_AlphaShapeData *MR_AlphaShapeData_ConstructFrom(const MR_ConvertToIntVector *toInt, MR_PassBy intPoints_pass_by, MR_Vector_MR_Vector3i_MR_VertId *intPoints, int64_t intRadiusSq, float searchRadius);
160
164
168
173
176
179
186
194
201MRC_API MR_AlphaShapeData *MR_getAlphaShapeData(const MR_PointCloud *cloud, float radius, bool allPoints);
202
211
220
229
237
245
253
260
267
274
282
290
298
306
314
322
331
340
349
356
363
370
378
386
394
401
408
415
419
424
437MRC_API MR_AlphaShapeStats *MR_AlphaShapeStats_ConstructFrom(size_t collectedNeis, size_t redundancyTests, size_t redundantNeis, size_t consideredTris, size_t touchableTris, size_t inBallTests, size_t shadowTests, size_t exactShadowTests, size_t shadowedNeis);
438
442
446
452
455
458
466
473
480
488
495
499
504
508
512
518
521
524
532
545
553
559
569
580
587
588#ifdef __cplusplus
589} // extern "C"
590#endif
struct MR_std_optional_MR_Mesh MR_std_optional_MR_Mesh
Definition MR2DContoursTriangulation.h:19
struct MR_std_function_bool_from_float MR_std_function_bool_from_float
Definition MR3mf.h:10
MRC_API void MR_AlphaShapeData_Set_intPoints(MR_AlphaShapeData *_this, MR_PassBy value_pass_by, MR_Vector_MR_Vector3i_MR_VertId *value)
MRC_API MR_std_optional_MR_Triangulation * MR_findAlphaShapeAllTriangles_4_MR_AlphaShapeData(const MR_PointCloud *cloud, const MR_AlphaShapeData *data, const MR_std_function_bool_from_float *cb, MR_AlphaShapeStats *stats)
MRC_API MR_AlphaShapeData * MR_AlphaShapeData_ConstructFromAnother(MR_PassBy _other_pass_by, MR_AlphaShapeData *_other)
MRC_API const int64_t * MR_AlphaShapeData_Get_intRadiusSq(const MR_AlphaShapeData *_this)
struct MR_ConvertToIntVector MR_ConvertToIntVector
Definition MRAlphaShape.h:15
MRC_API void MR_AlphaShapeNei_DestroyArray(const MR_AlphaShapeNei *_this)
Destroys a heap-allocated array of MR_AlphaShapeNei. Does nothing if the pointer is null.
MRC_API const MR_PreciseVertCoords * MR_AlphaShapeNei_Get_coords(const MR_AlphaShapeNei *_this)
struct MR_AlphaShapeData MR_AlphaShapeData
Definition MRAlphaShape.h:33
MRC_API size_t * MR_AlphaShapeStats_GetMutable_inBallTests(MR_AlphaShapeStats *_this)
struct MR_Vector_MR_Vector3i_MR_VertId MR_Vector_MR_Vector3i_MR_VertId
std::vector<T>-like container that requires specific indexing type,
Definition MRAlphaShape.h:20
MRC_API void MR_AlphaShapeData_Set_intRadiusSq(MR_AlphaShapeData *_this, int64_t value)
MRC_API MR_AlphaShapeStats * MR_AlphaShapeStats_OffsetMutablePtr(MR_AlphaShapeStats *ptr, ptrdiff_t i)
MRC_API void MR_findAlphaShapeNeiTriangles(const MR_PointCloud *cloud, MR_VertId v, const MR_AlphaShapeData *data, MR_Triangulation *appendTris, MR_std_vector_MR_AlphaShapeNei *neis, bool onlyLargerVids, MR_AlphaShapeStats *stats)
MRC_API const size_t * MR_AlphaShapeStats_Get_redundancyTests(const MR_AlphaShapeStats *_this)
MRC_API MR_std_optional_MR_Mesh * MR_findAlphaShape_5(const MR_PointCloud *cloud, float radius, const MR_std_function_bool_from_float *cb, MR_std_vector_MR_MeshBuilder_VertDuplication *dups, MR_AlphaShapeStats *stats)
MRC_API void MR_AlphaShapeStats_Set_redundantNeis(MR_AlphaShapeStats *_this, size_t value)
MRC_API size_t * MR_AlphaShapeStats_GetMutable_redundantNeis(MR_AlphaShapeStats *_this)
MRC_API const size_t * MR_AlphaShapeStats_Get_consideredTris(const MR_AlphaShapeStats *_this)
MRC_API size_t * MR_AlphaShapeStats_GetMutable_exactShadowTests(MR_AlphaShapeStats *_this)
MRC_API MR_Mesh * MR_findAlphaShape_4(const MR_PointCloud *cloud, float radius, MR_std_vector_MR_MeshBuilder_VertDuplication *dups, MR_AlphaShapeStats *stats)
MRC_API size_t * MR_AlphaShapeStats_GetMutable_touchableTris(MR_AlphaShapeStats *_this)
struct MR_Triangulation MR_Triangulation
std::vector<T>-like container that requires specific indexing type,
Definition MRAlphaShape.h:19
MRC_API size_t * MR_AlphaShapeStats_GetMutable_redundancyTests(MR_AlphaShapeStats *_this)
MRC_API MR_AlphaShapeStats * MR_AlphaShapeStats_ConstructFromAnother(const MR_AlphaShapeStats *_other)
MRC_API void MR_AlphaShapeStats_Set_consideredTris(MR_AlphaShapeStats *_this, size_t value)
MRC_API void MR_AlphaShapeData_Set_searchRadius(MR_AlphaShapeData *_this, float value)
MRC_API MR_AlphaShapeStats * MR_AlphaShapeStats_add_assign(MR_AlphaShapeStats *_this, const MR_AlphaShapeStats *r)
MRC_API const size_t * MR_AlphaShapeStats_Get_inBallTests(const MR_AlphaShapeStats *_this)
MRC_API void MR_AlphaShapeNei_Set_coords(MR_AlphaShapeNei *_this, const MR_PreciseVertCoords *value)
MRC_API size_t * MR_AlphaShapeStats_GetMutable_shadowTests(MR_AlphaShapeStats *_this)
MRC_API MR_AlphaShapeNei * MR_AlphaShapeNei_DefaultConstruct(void)
struct MR_std_vector_MR_MeshBuilder_VertDuplication MR_std_vector_MR_MeshBuilder_VertDuplication
Definition MRAlphaShape.h:25
MRC_API MR_AlphaShapeNei * MR_AlphaShapeNei_OffsetMutablePtr(MR_AlphaShapeNei *ptr, ptrdiff_t i)
MRC_API size_t * MR_AlphaShapeStats_GetMutable_consideredTris(MR_AlphaShapeStats *_this)
MRC_API void MR_AlphaShapeStats_Set_inBallTests(MR_AlphaShapeStats *_this, size_t value)
struct MR_std_vector_MR_AlphaShapeNei MR_std_vector_MR_AlphaShapeNei
Definition MRAlphaShape.h:24
MRC_API float * MR_AlphaShapeData_GetMutable_searchRadius(MR_AlphaShapeData *_this)
struct MR_AlphaShapeNei MR_AlphaShapeNei
Definition MRAlphaShape.h:45
MRC_API MR_AlphaShapeStats * MR_AlphaShapeStats_DefaultConstructArray(size_t num_elems)
MRC_API MR_AlphaShapeNei * MR_AlphaShapeNei_AssignFromAnother(MR_AlphaShapeNei *_this, const MR_AlphaShapeNei *_other)
MRC_API void MR_AlphaShapeData_DestroyArray(const MR_AlphaShapeData *_this)
Destroys a heap-allocated array of MR_AlphaShapeData. Does nothing if the pointer is null.
MRC_API MR_Triangulation * MR_findAlphaShapeAllTriangles_3(const MR_PointCloud *cloud, float radius, MR_AlphaShapeStats *stats)
MRC_API const size_t * MR_AlphaShapeStats_Get_redundantNeis(const MR_AlphaShapeStats *_this)
MRC_API MR_PreciseVertCoords * MR_AlphaShapeData_coords(const MR_AlphaShapeData *_this, const MR_PointCloud *cloud, MR_VertId v)
MRC_API void MR_AlphaShapeData_Set_toInt(MR_AlphaShapeData *_this, const MR_ConvertToIntVector *value)
MRC_API const size_t * MR_AlphaShapeStats_Get_shadowTests(const MR_AlphaShapeStats *_this)
MRC_API const MR_ConvertToIntVector * MR_AlphaShapeData_Get_toInt(const MR_AlphaShapeData *_this)
MRC_API void MR_AlphaShapeStats_Set_collectedNeis(MR_AlphaShapeStats *_this, size_t value)
MRC_API void MR_AlphaShapeStats_Destroy(const MR_AlphaShapeStats *_this)
Destroys a heap-allocated instance of MR_AlphaShapeStats. Does nothing if the pointer is null.
MRC_API MR_AlphaShapeData * MR_getAlphaShapeData(const MR_PointCloud *cloud, float radius, bool allPoints)
MRC_API const MR_Vector_MR_Vector3i_MR_VertId * MR_AlphaShapeData_Get_intPoints(const MR_AlphaShapeData *_this)
MRC_API MR_ConvertToIntVector * MR_AlphaShapeData_GetMutable_toInt(MR_AlphaShapeData *_this)
struct MR_std_optional_MR_Triangulation MR_std_optional_MR_Triangulation
Definition MRAlphaShape.h:23
MRC_API void MR_AlphaShapeData_Destroy(const MR_AlphaShapeData *_this)
Destroys a heap-allocated instance of MR_AlphaShapeData. Does nothing if the pointer is null.
MRC_API const MR_AlphaShapeNei * MR_AlphaShapeNei_OffsetPtr(const MR_AlphaShapeNei *ptr, ptrdiff_t i)
MRC_API MR_AlphaShapeNei * MR_AlphaShapeNei_DefaultConstructArray(size_t num_elems)
MRC_API const size_t * MR_AlphaShapeStats_Get_collectedNeis(const MR_AlphaShapeStats *_this)
MRC_API const size_t * MR_AlphaShapeStats_Get_shadowedNeis(const MR_AlphaShapeStats *_this)
MRC_API void MR_AlphaShapeStats_Set_exactShadowTests(MR_AlphaShapeStats *_this, size_t value)
MRC_API void MR_AlphaShapeStats_Set_touchableTris(MR_AlphaShapeStats *_this, size_t value)
MRC_API const float * MR_AlphaShapeData_Get_searchRadius(const MR_AlphaShapeData *_this)
MRC_API const size_t * MR_AlphaShapeStats_Get_exactShadowTests(const MR_AlphaShapeStats *_this)
struct MR_PreciseVertCoords MR_PreciseVertCoords
Definition MRAlphaShape.h:18
MRC_API MR_AlphaShapeNei * MR_AlphaShapeNei_ConstructFromAnother(const MR_AlphaShapeNei *_other)
MRC_API size_t * MR_AlphaShapeStats_GetMutable_shadowedNeis(MR_AlphaShapeStats *_this)
MRC_API void MR_AlphaShapeStats_Set_shadowTests(MR_AlphaShapeStats *_this, size_t value)
MRC_API MR_Vector_MR_Vector3i_MR_VertId * MR_AlphaShapeData_GetMutable_intPoints(MR_AlphaShapeData *_this)
MRC_API void MR_AlphaShapeStats_Set_shadowedNeis(MR_AlphaShapeStats *_this, size_t value)
MRC_API MR_AlphaShapeStats * MR_AlphaShapeStats_AssignFromAnother(MR_AlphaShapeStats *_this, const MR_AlphaShapeStats *_other)
MRC_API const MR_AlphaShapeStats * MR_AlphaShapeStats_OffsetPtr(const MR_AlphaShapeStats *ptr, ptrdiff_t i)
MRC_API MR_AlphaShapeData * MR_AlphaShapeData_ConstructFrom(const MR_ConvertToIntVector *toInt, MR_PassBy intPoints_pass_by, MR_Vector_MR_Vector3i_MR_VertId *intPoints, int64_t intRadiusSq, float searchRadius)
MRC_API const size_t * MR_AlphaShapeStats_Get_touchableTris(const MR_AlphaShapeStats *_this)
struct MR_AlphaShapeStats MR_AlphaShapeStats
Definition MRAlphaShape.h:40
MRC_API MR_AlphaShapeStats * MR_AlphaShapeStats_ConstructFrom(size_t collectedNeis, size_t redundancyTests, size_t redundantNeis, size_t consideredTris, size_t touchableTris, size_t inBallTests, size_t shadowTests, size_t exactShadowTests, size_t shadowedNeis)
MRC_API void MR_AlphaShapeNei_Destroy(const MR_AlphaShapeNei *_this)
Destroys a heap-allocated instance of MR_AlphaShapeNei. Does nothing if the pointer is null.
MRC_API MR_AlphaShapeData * MR_AlphaShapeData_DefaultConstruct(void)
MRC_API void MR_AlphaShapeStats_Set_redundancyTests(MR_AlphaShapeStats *_this, size_t value)
MRC_API MR_std_optional_MR_Triangulation * MR_findAlphaShapeAllTriangles_4_float(const MR_PointCloud *cloud, float radius, const MR_std_function_bool_from_float *cb, MR_AlphaShapeStats *stats)
MRC_API const MR_AlphaShapeData * MR_AlphaShapeData_OffsetPtr(const MR_AlphaShapeData *ptr, ptrdiff_t i)
MRC_API size_t * MR_AlphaShapeStats_GetMutable_collectedNeis(MR_AlphaShapeStats *_this)
MRC_API MR_AlphaShapeStats * MR_AlphaShapeStats_DefaultConstruct(void)
MRC_API MR_PreciseVertCoords * MR_AlphaShapeNei_GetMutable_coords(MR_AlphaShapeNei *_this)
MRC_API MR_AlphaShapeData * MR_AlphaShapeData_AssignFromAnother(MR_AlphaShapeData *_this, MR_PassBy _other_pass_by, MR_AlphaShapeData *_other)
MRC_API int64_t * MR_AlphaShapeData_GetMutable_intRadiusSq(MR_AlphaShapeData *_this)
MRC_API MR_AlphaShapeData * MR_AlphaShapeData_DefaultConstructArray(size_t num_elems)
MRC_API MR_AlphaShapeData * MR_AlphaShapeData_OffsetMutablePtr(MR_AlphaShapeData *ptr, ptrdiff_t i)
MRC_API void MR_AlphaShapeStats_DestroyArray(const MR_AlphaShapeStats *_this)
Destroys a heap-allocated array of MR_AlphaShapeStats. Does nothing if the pointer is null.
struct MR_Mesh MR_Mesh
Definition MRCtm.h:16
struct MR_PointCloud MR_PointCloud
Definition MRCtm.h:19
MR_PassBy
Definition common.h:13
#define MRC_API
Definition include/MRCMisc/exports.h:11
Definition MRId.h:41