MeshLib C Docs
Loading...
Searching...
No Matches
MRSeparationPoint.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 <stddef.h>
8#include <stdint.h>
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14typedef struct MR_Triangulation MR_Triangulation; // Defined in `#include <MRCMesh/MRVector.h>`.
15typedef struct MR_Vector_MR_VoxelId_MR_FaceId MR_Vector_MR_VoxelId_MR_FaceId; // Defined in `#include <MRCMesh/MRVector.h>`.
16typedef struct MR_VertCoords MR_VertCoords; // Defined in `#include <MRCMesh/MRVector.h>`.
17typedef struct MR_phmap_flat_hash_map_uint64_t_std_array_MR_VertId_3_phmap_Hash_uint64_t MR_phmap_flat_hash_map_uint64_t_std_array_MR_VertId_3_phmap_Hash_uint64_t; // Defined in `#include <MRCMisc/phmap_flat_hash_map_uint64_t_std_array_MR_VertId_3_phmap_Hash_uint64_t.h>`.
18typedef struct MR_std_array_MR_VertId_3 MR_std_array_MR_VertId_3; // Defined in `#include <MRCMisc/std_array_MR_VertId_3.h>`.
19typedef struct MR_std_vector_MR_Vector3f MR_std_vector_MR_Vector3f; // Defined in `#include <MRCMisc/std_vector_MR_Vector3f.h>`.
20
21
22typedef int32_t MR_NeighborDir;
23enum // MR_NeighborDir
24{
29};
30
34
37
41
46
49
52
56
59
62
67
72
78
84
89
96
102
107
111
116
121
125
130
136
141
147
152
156
161
166
170
175
179
184
188
191
194
198
201
204
209
214
215#ifdef __cplusplus
216} // extern "C"
217#endif
struct MR_VertCoords MR_VertCoords
Definition MRAABBTreePoints.h:22
struct MR_std_vector_MR_Vector3f MR_std_vector_MR_Vector3f
Definition MRBestFit.h:26
struct MR_Triangulation MR_Triangulation
Definition MRIdentifyVertices.h:13
MRC_API void MR_SeparationPointStorage_Block_Set_coords(MR_SeparationPointStorage_Block *_this, MR_PassBy value_pass_by, MR_std_vector_MR_Vector3f *value)
MRC_API MR_std_vector_MR_Vector3f * MR_SeparationPointStorage_Block_GetMutable_coords(MR_SeparationPointStorage_Block *_this)
MRC_API const MR_Triangulation * MR_SeparationPointStorage_Block_Get_tris(const MR_SeparationPointStorage_Block *_this)
MRC_API MR_SeparationPointStorage_Block * MR_SeparationPointStorage_Block_AssignFromAnother(MR_SeparationPointStorage_Block *_this, MR_PassBy _other_pass_by, MR_SeparationPointStorage_Block *_other)
MRC_API void MR_SeparationPointStorage_Block_Destroy(const MR_SeparationPointStorage_Block *_this)
Destroys a heap-allocated instance of MR_SeparationPointStorage_Block. Does nothing if the pointer is...
MRC_API const MR_SeparationPointStorage * MR_SeparationPointStorage_OffsetPtr(const MR_SeparationPointStorage *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_Vector_MR_VoxelId_MR_FaceId * MR_SeparationPointStorage_Block_Get_faceMap(const MR_SeparationPointStorage_Block *_this)
MRC_API void MR_SeparationPointStorage_Block_Set_smap(MR_SeparationPointStorage_Block *_this, MR_PassBy value_pass_by, MR_phmap_flat_hash_map_uint64_t_std_array_MR_VertId_3_phmap_Hash_uint64_t *value)
MRC_API MR_SeparationPointStorage_Block * MR_SeparationPointStorage_Block_OffsetMutablePtr(MR_SeparationPointStorage_Block *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_Triangulation * MR_SeparationPointStorage_getTriangulation(const MR_SeparationPointStorage *_this, MR_Vector_MR_VoxelId_MR_FaceId *outVoxelPerFaceMap)
struct MR_SeparationPointStorage MR_SeparationPointStorage
Definition MRSeparationPoint.h:33
MRC_API void MR_SeparationPointStorage_Destroy(const MR_SeparationPointStorage *_this)
Destroys a heap-allocated instance of MR_SeparationPointStorage. Does nothing if the pointer is null.
MRC_API void MR_SeparationPointStorage_Block_DestroyArray(const MR_SeparationPointStorage_Block *_this)
Destroys a heap-allocated array of MR_SeparationPointStorage_Block. Does nothing if the pointer is nu...
MRC_API MR_SeparationPointStorage_Block * MR_SeparationPointStorage_Block_DefaultConstructArray(size_t num_elems)
MRC_API const MR_std_array_MR_VertId_3 * MR_SeparationPointStorage_findSeparationPointSet(const MR_SeparationPointStorage *_this, MR_uint64_t voxelId)
struct MR_phmap_flat_hash_map_uint64_t_std_array_MR_VertId_3_phmap_Hash_uint64_t MR_phmap_flat_hash_map_uint64_t_std_array_MR_VertId_3_phmap_Hash_uint64_t
Definition MRSeparationPoint.h:17
MRC_API MR_Triangulation * MR_SeparationPointStorage_Block_GetMutable_tris(MR_SeparationPointStorage_Block *_this)
MRC_API MR_SeparationPointStorage * MR_SeparationPointStorage_OffsetMutablePtr(MR_SeparationPointStorage *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_SeparationPointStorage_Block * MR_SeparationPointStorage_Block_ConstructFromAnother(MR_PassBy _other_pass_by, MR_SeparationPointStorage_Block *_other)
@ MR_NeighborDir_Y
Definition MRSeparationPoint.h:26
@ MR_NeighborDir_X
Definition MRSeparationPoint.h:25
@ MR_NeighborDir_Count
Definition MRSeparationPoint.h:28
@ MR_NeighborDir_Z
Definition MRSeparationPoint.h:27
MRC_API MR_VertId * MR_SeparationPointStorage_Block_GetMutable_shift(MR_SeparationPointStorage_Block *_this)
MRC_API void MR_SeparationPointStorage_Block_Set_faceMap(MR_SeparationPointStorage_Block *_this, MR_PassBy value_pass_by, MR_Vector_MR_VoxelId_MR_FaceId *value)
MRC_API MR_SeparationPointStorage_Block * MR_SeparationPointStorage_Block_ConstructFrom(MR_PassBy smap_pass_by, MR_phmap_flat_hash_map_uint64_t_std_array_MR_VertId_3_phmap_Hash_uint64_t *smap, MR_PassBy coords_pass_by, MR_std_vector_MR_Vector3f *coords, MR_VertId shift, MR_PassBy tris_pass_by, MR_Triangulation *tris, MR_PassBy faceMap_pass_by, MR_Vector_MR_VoxelId_MR_FaceId *faceMap)
MRC_API void MR_SeparationPointStorage_Block_Set_tris(MR_SeparationPointStorage_Block *_this, MR_PassBy value_pass_by, MR_Triangulation *value)
struct MR_Vector_MR_VoxelId_MR_FaceId MR_Vector_MR_VoxelId_MR_FaceId
Definition MRSeparationPoint.h:15
MRC_API void MR_SeparationPointStorage_Block_Set_shift(MR_SeparationPointStorage_Block *_this, MR_VertId value)
MRC_API MR_SeparationPointStorage * MR_SeparationPointStorage_ConstructFromAnother(MR_PassBy _other_pass_by, MR_SeparationPointStorage *_other)
MRC_API const MR_std_vector_MR_Vector3f * MR_SeparationPointStorage_Block_Get_coords(const MR_SeparationPointStorage_Block *_this)
MRC_API MR_Vector_MR_VoxelId_MR_FaceId * MR_SeparationPointStorage_Block_GetMutable_faceMap(MR_SeparationPointStorage_Block *_this)
MRC_API int32_t MR_SeparationPointStorage_makeUniqueVids(MR_SeparationPointStorage *_this)
MRC_API void MR_SeparationPointStorage_getPoints(const MR_SeparationPointStorage *_this, MR_VertCoords *points)
struct MR_SeparationPointStorage_Block MR_SeparationPointStorage_Block
Generated from class MR::SeparationPointStorage::Block.
Definition MRSeparationPoint.h:36
MRC_API MR_phmap_flat_hash_map_uint64_t_std_array_MR_VertId_3_phmap_Hash_uint64_t * MR_SeparationPointStorage_Block_GetMutable_smap(MR_SeparationPointStorage_Block *_this)
MRC_API MR_SeparationPointStorage_Block * MR_SeparationPointStorage_Block_DefaultConstruct(void)
MRC_API const MR_SeparationPointStorage_Block * MR_SeparationPointStorage_Block_OffsetPtr(const MR_SeparationPointStorage_Block *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_VertId * MR_SeparationPointStorage_Block_Get_shift(const MR_SeparationPointStorage_Block *_this)
MRC_API MR_SeparationPointStorage * MR_SeparationPointStorage_DefaultConstruct(void)
MRC_API MR_SeparationPointStorage * MR_SeparationPointStorage_AssignFromAnother(MR_SeparationPointStorage *_this, MR_PassBy _other_pass_by, MR_SeparationPointStorage *_other)
int32_t MR_NeighborDir
Definition MRSeparationPoint.h:22
MRC_API MR_SeparationPointStorage_Block * MR_SeparationPointStorage_getBlock(MR_SeparationPointStorage *_this, MR_uint64_t blockIndex)
MRC_API const MR_phmap_flat_hash_map_uint64_t_std_array_MR_VertId_3_phmap_Hash_uint64_t * MR_SeparationPointStorage_Block_Get_smap(const MR_SeparationPointStorage_Block *_this)
MRC_API MR_VertId MR_SeparationPointStorage_Block_nextVid(const MR_SeparationPointStorage_Block *_this)
MRC_API void MR_SeparationPointStorage_DestroyArray(const MR_SeparationPointStorage *_this)
Destroys a heap-allocated array of MR_SeparationPointStorage. Does nothing if the pointer is null.
MRC_API void MR_SeparationPointStorage_resize(MR_SeparationPointStorage *_this, MR_uint64_t blockCount, MR_uint64_t blockSize)
MRC_API MR_SeparationPointStorage * MR_SeparationPointStorage_DefaultConstructArray(size_t num_elems)
MR_PassBy
Definition common.h:19
uint64_t MR_uint64_t
Definition common.h:14
#define MRC_API
Definition exports.h:11
Definition MRId.h:56
A fixed-size array of MR::VertId of size 3.
Definition std_array_MR_VertId_3.h:12