MeshLib C Docs
Loading...
Searching...
No Matches
MRVolumeIndexer.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
8#include <stdbool.h>
9#include <stddef.h>
10#include <stdint.h>
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16typedef struct MR_VoxelBitSet MR_VoxelBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
17
18
19typedef int8_t MR_OutEdge;
20enum // MR_OutEdge
21{
30};
31
35
38
41
46
50
55
60
64
69
73
78
82
85
88
93
96
99
104
110
115
118
121
126
129
132
138
143
148
153
157
161
166
171
177
183
189
194
200
206
211
216
224
229
234
240MRC_API void MR_expandVoxelsMask(MR_VoxelBitSet *mask, const MR_VolumeIndexer *indexer, const int32_t *expansion);
241
247MRC_API void MR_shrinkVoxelsMask(MR_VoxelBitSet *mask, const MR_VolumeIndexer *indexer, const int32_t *shrinkage);
248
249#ifdef __cplusplus
250} // extern "C"
251#endif
struct MR_VoxelBitSet MR_VoxelBitSet
Definition MRBitSet.h:103
MRC_API MR_VoxelId MR_VolumeIndexer_getNeighbor_3(const MR_VolumeIndexer *_this, MR_VoxelId v, const MR_Vector3i *pos, MR_OutEdge toNei)
MRC_API MR_VoxelLocation * MR_VoxelLocation_ConstructFromAnother(const MR_VoxelLocation *_other)
MRC_API MR_VoxelLocation * MR_VoxelLocation_DefaultConstruct(void)
MRC_API bool MR_VolumeIndexer_areNeigbors_MR_VoxelId(const MR_VolumeIndexer *_this, MR_VoxelId v0, MR_VoxelId v1)
MRC_API bool MR_VolumeIndexer_isBdVoxel(const MR_VolumeIndexer *_this, const MR_Vector3i *pos)
MRC_API MR_VoxelId MR_VolumeIndexer_endId(const MR_VolumeIndexer *_this)
struct MR_VolumeIndexer MR_VolumeIndexer
Generated from class MR::VolumeIndexer.
Definition MRVolumeIndexer.h:37
MRC_API MR_VoxelLocation * MR_VoxelLocation_ConstructFrom(MR_VoxelId id, MR_Vector3i pos)
MRC_API MR_VolumeIndexer * MR_VolumeIndexer_Construct(const MR_Vector3i *dims)
MRC_API const MR_Vector3i * MR_VoxelLocation_Get_pos(const MR_VoxelLocation *_this)
MRC_API void MR_VoxelLocation_Set_pos(MR_VoxelLocation *_this, MR_Vector3i value)
MRC_API const MR_VolumeIndexer * MR_VolumeIndexer_OffsetPtr(const MR_VolumeIndexer *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_VoxelLocation_DestroyArray(const MR_VoxelLocation *_this)
Destroys a heap-allocated array of MR_VoxelLocation. Does nothing if the pointer is null.
MRC_API MR_VolumeIndexer * MR_VolumeIndexer_AssignFromAnother(MR_VolumeIndexer *_this, const MR_VolumeIndexer *_other)
MRC_API MR_VoxelLocation * MR_VoxelLocation_DefaultConstructArray(size_t num_elems)
MRC_API const MR_VoxelId * MR_VoxelLocation_Get_id(const MR_VoxelLocation *_this)
MRC_API const MR_VoxelLocation * MR_VoxelLocation_OffsetPtr(const MR_VoxelLocation *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_Vector3i * MR_VolumeIndexer_dims(const MR_VolumeIndexer *_this)
MRC_API MR_VoxelLocation * MR_VolumeIndexer_getNeighbor_2_MR_VoxelLocation(const MR_VolumeIndexer *_this, const MR_VoxelLocation *loc, MR_OutEdge toNei)
MRC_API MR_uint64_t MR_VolumeIndexer_sizeXY(const MR_VolumeIndexer *_this)
struct MR_VoxelLocation MR_VoxelLocation
Definition MRVolumeIndexer.h:34
MRC_API bool MR_VoxelLocation_ConvertTo_bool(const MR_VoxelLocation *_this)
MRC_API void MR_VoxelLocation_Destroy(const MR_VoxelLocation *_this)
Destroys a heap-allocated instance of MR_VoxelLocation. Does nothing if the pointer is null.
@ MR_OutEdge_Count
Definition MRVolumeIndexer.h:29
@ MR_OutEdge_PlusZ
Definition MRVolumeIndexer.h:23
@ MR_OutEdge_MinusZ
Definition MRVolumeIndexer.h:24
@ MR_OutEdge_MinusX
Definition MRVolumeIndexer.h:28
@ MR_OutEdge_PlusY
Definition MRVolumeIndexer.h:25
@ MR_OutEdge_PlusX
Definition MRVolumeIndexer.h:27
@ MR_OutEdge_Invalid
Definition MRVolumeIndexer.h:22
@ MR_OutEdge_MinusY
Definition MRVolumeIndexer.h:26
MRC_API MR_VoxelLocation * MR_VoxelLocation_OffsetMutablePtr(MR_VoxelLocation *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_OutEdge MR_opposite_MR_OutEdge(MR_OutEdge e)
Generated from function MR::opposite.
MRC_API MR_VoxelId MR_VolumeIndexer_getExistingNeighbor(const MR_VolumeIndexer *_this, MR_VoxelId v, MR_OutEdge toNei)
MRC_API bool MR_VolumeIndexer_areNeigbors_MR_Vector3i(const MR_VolumeIndexer *_this, const MR_Vector3i *pos0, const MR_Vector3i *pos1)
MRC_API void MR_VolumeIndexer_Destroy(const MR_VolumeIndexer *_this)
Destroys a heap-allocated instance of MR_VolumeIndexer. Does nothing if the pointer is null.
MRC_API bool MR_VolumeIndexer_isInDims(const MR_VolumeIndexer *_this, const MR_Vector3i *pos)
MRC_API MR_VoxelId MR_VolumeIndexer_getNeighbor_4(const MR_VolumeIndexer *_this, MR_VoxelId v, const MR_Vector3i *pos, bool bdPos, MR_OutEdge toNei)
MRC_API bool MR_VolumeIndexer_hasNeighbour(const MR_VolumeIndexer *_this, const MR_Vector3i *pos, MR_OutEdge toNei)
MRC_API void MR_shrinkVoxelsMask(MR_VoxelBitSet *mask, const MR_VolumeIndexer *indexer, const int32_t *shrinkage)
MRC_API MR_VoxelId * MR_VoxelLocation_GetMutable_id(MR_VoxelLocation *_this)
MRC_API void MR_VolumeIndexer_DestroyArray(const MR_VolumeIndexer *_this)
Destroys a heap-allocated array of MR_VolumeIndexer. Does nothing if the pointer is null.
MRC_API MR_VoxelLocation * MR_VolumeIndexer_toLoc_MR_VoxelId(const MR_VolumeIndexer *_this, MR_VoxelId id)
MRC_API MR_VoxelId MR_VolumeIndexer_toVoxelId(const MR_VolumeIndexer *_this, const MR_Vector3i *pos)
MRC_API MR_VolumeIndexer * MR_VolumeIndexer_ConstructFromAnother(const MR_VolumeIndexer *_other)
MRC_API MR_VoxelLocation * MR_VolumeIndexer_toLoc_MR_Vector3i(const MR_VolumeIndexer *_this, const MR_Vector3i *pos)
MRC_API MR_VoxelId MR_VolumeIndexer_getNeighbor_2_MR_VoxelId(const MR_VolumeIndexer *_this, MR_VoxelId v, MR_OutEdge toNei)
MRC_API MR_Vector3i * MR_VoxelLocation_GetMutable_pos(MR_VoxelLocation *_this)
MRC_API MR_VoxelLocation * MR_VoxelLocation_AssignFromAnother(MR_VoxelLocation *_this, const MR_VoxelLocation *_other)
MRC_API MR_uint64_t MR_VolumeIndexer_size(const MR_VolumeIndexer *_this)
MRC_API void MR_expandVoxelsMask(MR_VoxelBitSet *mask, const MR_VolumeIndexer *indexer, const int32_t *expansion)
MRC_API void MR_VoxelLocation_Set_id(MR_VoxelLocation *_this, MR_VoxelId value)
int8_t MR_OutEdge
Definition MRVolumeIndexer.h:19
MRC_API MR_Vector3i MR_VolumeIndexer_toPos(const MR_VolumeIndexer *_this, MR_VoxelId id)
MRC_API MR_VolumeIndexer * MR_VolumeIndexer_OffsetMutablePtr(MR_VolumeIndexer *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
uint64_t MR_uint64_t
Definition common.h:14
#define MRC_API
Definition exports.h:11
const Vector3i & dims() const
Definition MRVector3.h:33
Definition MRId.h:161