MeshLib C Docs
Loading...
Searching...
No Matches
MRAABBTreePoints.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMesh/MRBox.h>
4#include <MRCMesh/MRId.h>
5#include <MRCMesh/MRVector3.h>
6#include <MRCMisc/common.h>
7#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_Mesh MR_Mesh; // Defined in `#include <MRCMesh/MRMesh.h>`.
17typedef struct MR_PointCloud MR_PointCloud; // Defined in `#include <MRCMesh/MRPointCloud.h>`.
18typedef struct MR_Vector_MR_AABBTreePoints_Node_MR_NodeId MR_Vector_MR_AABBTreePoints_Node_MR_NodeId; // Defined in `#include <MRCMesh/MRVector.h>`.
19typedef struct MR_VertBMap MR_VertBMap; // Defined in `#include <MRCMesh/MRBuffer.h>`.
20typedef struct MR_VertBitSet MR_VertBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
21typedef struct MR_VertCoords MR_VertCoords; // Defined in `#include <MRCMesh/MRVector.h>`.
22typedef struct MR_std_pair_int_int MR_std_pair_int_int; // Defined in `#include <MRCMisc/std_pair_int_int.h>`.
23typedef struct MR_std_vector_MR_AABBTreePoints_Point MR_std_vector_MR_AABBTreePoints_Point; // Defined in `#include <MRCMisc/std_vector_MR_AABBTreePoints_Point.h>`.
24
25
29
33
38
43
48
51MRC_API const MR_AABBTreePoints *MR_AABBTreePoints_OffsetPtr(const MR_AABBTreePoints *ptr, ptrdiff_t i);
52
56
63
70
79
82
85
93
98
103
106
111
116
123
131
135MRC_API MR_uint64_t MR_AABBTreePoints_heapBytes(const MR_AABBTreePoints *_this);
136
145MRC_API void MR_AABBTreePoints_refit(MR_AABBTreePoints *_this, const MR_VertCoords *newCoords, const MR_VertBitSet *changedVerts);
146
153
160
167
174
181
188
195
202
209
213
218
226
230
234
240
243
246
254
259
265
269MRC_API void MR_AABBTreePoints_Node_setLeafPointRange(MR_AABBTreePoints_Node *_this, int first, int last);
270
276
282
288
294
300
306
310
315
322
326
330
336
339
342
350
351// returns the number of nodes in the binary tree with given number of points
353MRC_API int MR_getNumNodesPoints(int numPoints);
354
355#ifdef __cplusplus
356} // extern "C"
357#endif
MRC_API MR_AABBTreePoints_Point * MR_AABBTreePoints_Point_AssignFromAnother(MR_AABBTreePoints_Point *_this, const MR_AABBTreePoints_Point *_other)
MRC_API MR_AABBTreePoints_Node * MR_AABBTreePoints_Node_DefaultConstruct(void)
MRC_API MR_AABBTreePoints_Point * MR_AABBTreePoints_Point_DefaultConstruct(void)
MRC_API void MR_AABBTreePoints_Node_DestroyArray(const MR_AABBTreePoints_Node *_this)
Destroys a heap-allocated array of MR_AABBTreePoints_Node. Does nothing if the pointer is null.
MRC_API MR_AABBTreePoints * MR_AABBTreePoints_OffsetMutablePtr(MR_AABBTreePoints *ptr, ptrdiff_t i)
MRC_API MR_NodeId MR_AABBTreePoints_rootNodeId(void)
Generated from method MR::AABBTreePoints::rootNodeId.
MRC_API int MR_getNumNodesPoints(int numPoints)
Generated from function MR::getNumNodesPoints.
MRC_API const MR_Vector3f * MR_AABBTreePoints_Point_Get_coord(const MR_AABBTreePoints_Point *_this)
MRC_API MR_AABBTreePoints * MR_AABBTreePoints_Construct_1_MR_PointCloud(const MR_PointCloud *pointCloud)
MRC_API void MR_AABBTreePoints_Point_Set_coord(MR_AABBTreePoints_Point *_this, MR_Vector3f value)
MRC_API void MR_AABBTreePoints_Node_setLeafPointRange(MR_AABBTreePoints_Node *_this, int first, int last)
struct MR_VertCoords MR_VertCoords
Definition MRAABBTreePoints.h:21
MRC_API MR_AABBTreePoints * MR_AABBTreePoints_AssignFromAnother(MR_AABBTreePoints *_this, MR_PassBy _other_pass_by, MR_AABBTreePoints *_other)
MRC_API const MR_std_vector_MR_AABBTreePoints_Point * MR_AABBTreePoints_orderedPoints(const MR_AABBTreePoints *_this)
MRC_API MR_AABBTreePoints * MR_AABBTreePoints_Construct_1_MR_Mesh(const MR_Mesh *mesh)
MRC_API void MR_AABBTreePoints_Point_Destroy(const MR_AABBTreePoints_Point *_this)
Destroys a heap-allocated instance of MR_AABBTreePoints_Point. Does nothing if the pointer is null.
MRC_API MR_Vector3f * MR_AABBTreePoints_Point_GetMutable_coord(MR_AABBTreePoints_Point *_this)
MRC_API bool MR_AABBTreePoints_Node_leaf(const MR_AABBTreePoints_Node *_this)
MRC_API const int * MR_AABBTreePoints_Get_MaxNumPointsInLeaf(void)
MRC_API MR_AABBTreePoints * MR_AABBTreePoints_Construct_2(const MR_VertCoords *points, const MR_VertBitSet *validPoints)
struct MR_std_pair_int_int MR_std_pair_int_int
Definition MRAABBTreePoints.h:22
MRC_API MR_NodeId * MR_AABBTreePoints_Node_GetMutable_l(MR_AABBTreePoints_Node *_this)
MRC_API void MR_AABBTreePoints_Node_Set_l(MR_AABBTreePoints_Node *_this, MR_NodeId value)
MRC_API MR_Box3f MR_AABBTreePoints_getBoundingBox(const MR_AABBTreePoints *_this)
MRC_API const MR_AABBTreePoints_Node * MR_AABBTreePoints_index(const MR_AABBTreePoints *_this, MR_NodeId nid)
MRC_API const MR_Box3f * MR_AABBTreePoints_Node_Get_box(const MR_AABBTreePoints_Node *_this)
MRC_API void MR_AABBTreePoints_Node_Destroy(const MR_AABBTreePoints_Node *_this)
Destroys a heap-allocated instance of MR_AABBTreePoints_Node. Does nothing if the pointer is null.
MRC_API MR_AABBTreePoints_Point * MR_AABBTreePoints_Point_DefaultConstructArray(size_t num_elems)
MRC_API const MR_AABBTreePoints_Node * MR_AABBTreePoints_Node_OffsetPtr(const MR_AABBTreePoints_Node *ptr, ptrdiff_t i)
MRC_API MR_std_pair_int_int * MR_AABBTreePoints_Node_getLeafPointRange(const MR_AABBTreePoints_Node *_this)
MRC_API MR_AABBTreePoints_Point * MR_AABBTreePoints_Point_ConstructFromAnother(const MR_AABBTreePoints_Point *_other)
MRC_API MR_NodeId * MR_AABBTreePoints_Node_GetMutable_r(MR_AABBTreePoints_Node *_this)
MRC_API void MR_AABBTreePoints_DestroyArray(const MR_AABBTreePoints *_this)
Destroys a heap-allocated array of MR_AABBTreePoints. Does nothing if the pointer is null.
struct MR_std_vector_MR_AABBTreePoints_Point MR_std_vector_MR_AABBTreePoints_Point
Definition MRAABBTreePoints.h:23
MRC_API MR_AABBTreePoints * MR_AABBTreePoints_ConstructFromAnother(MR_PassBy _other_pass_by, MR_AABBTreePoints *_other)
MRC_API void MR_AABBTreePoints_Node_Set_box(MR_AABBTreePoints_Node *_this, MR_Box3f value)
MRC_API void MR_AABBTreePoints_Destroy(const MR_AABBTreePoints *_this)
Destroys a heap-allocated instance of MR_AABBTreePoints. Does nothing if the pointer is null.
MRC_API const MR_VertId * MR_AABBTreePoints_Point_Get_id(const MR_AABBTreePoints_Point *_this)
struct MR_AABBTreePoints_Point MR_AABBTreePoints_Point
Definition MRAABBTreePoints.h:32
MRC_API MR_AABBTreePoints_Node * MR_AABBTreePoints_Node_DefaultConstructArray(size_t num_elems)
MRC_API MR_AABBTreePoints_Node * MR_AABBTreePoints_Node_OffsetMutablePtr(MR_AABBTreePoints_Node *ptr, ptrdiff_t i)
MRC_API void MR_AABBTreePoints_refit(MR_AABBTreePoints *_this, const MR_VertCoords *newCoords, const MR_VertBitSet *changedVerts)
MRC_API MR_uint64_t MR_AABBTreePoints_heapBytes(const MR_AABBTreePoints *_this)
MRC_API const MR_NodeId * MR_AABBTreePoints_Node_Get_l(const MR_AABBTreePoints_Node *_this)
struct MR_VertBMap MR_VertBMap
Definition MRAABBTreePoints.h:19
struct MR_AABBTreePoints MR_AABBTreePoints
Definition MRAABBTreePoints.h:37
struct MR_Vector_MR_AABBTreePoints_Node_MR_NodeId MR_Vector_MR_AABBTreePoints_Node_MR_NodeId
Definition MRAABBTreePoints.h:18
MRC_API MR_AABBTreePoints_Point * MR_AABBTreePoints_Point_ConstructFrom(MR_Vector3f coord, MR_VertId id)
MRC_API MR_VertId * MR_AABBTreePoints_Point_GetMutable_id(MR_AABBTreePoints_Point *_this)
MRC_API MR_AABBTreePoints_Node * MR_AABBTreePoints_Node_ConstructFromAnother(const MR_AABBTreePoints_Node *_other)
MRC_API void MR_AABBTreePoints_getLeafOrderAndReset(MR_AABBTreePoints *_this, MR_VertBMap *vertMap)
MRC_API void MR_AABBTreePoints_getLeafOrder(const MR_AABBTreePoints *_this, MR_VertBMap *vertMap)
MRC_API MR_AABBTreePoints_Node * MR_AABBTreePoints_Node_AssignFromAnother(MR_AABBTreePoints_Node *_this, const MR_AABBTreePoints_Node *_other)
MRC_API void MR_AABBTreePoints_Point_DestroyArray(const MR_AABBTreePoints_Point *_this)
Destroys a heap-allocated array of MR_AABBTreePoints_Point. Does nothing if the pointer is null.
MRC_API const MR_NodeId * MR_AABBTreePoints_Node_Get_r(const MR_AABBTreePoints_Node *_this)
MRC_API const MR_Vector_MR_AABBTreePoints_Node_MR_NodeId * MR_AABBTreePoints_nodes(const MR_AABBTreePoints *_this)
MRC_API const MR_AABBTreePoints * MR_AABBTreePoints_OffsetPtr(const MR_AABBTreePoints *ptr, ptrdiff_t i)
MRC_API MR_AABBTreePoints_Node * MR_AABBTreePoints_Node_ConstructFrom(MR_Box3f box, MR_NodeId l, MR_NodeId r)
MRC_API void MR_AABBTreePoints_Node_Set_r(MR_AABBTreePoints_Node *_this, MR_NodeId value)
struct MR_AABBTreePoints_Node MR_AABBTreePoints_Node
Definition MRAABBTreePoints.h:28
MRC_API MR_AABBTreePoints_Point * MR_AABBTreePoints_Point_OffsetMutablePtr(MR_AABBTreePoints_Point *ptr, ptrdiff_t i)
MRC_API const MR_AABBTreePoints_Point * MR_AABBTreePoints_Point_OffsetPtr(const MR_AABBTreePoints_Point *ptr, ptrdiff_t i)
MRC_API MR_Box3f * MR_AABBTreePoints_Node_GetMutable_box(MR_AABBTreePoints_Node *_this)
MRC_API void MR_AABBTreePoints_Point_Set_id(MR_AABBTreePoints_Point *_this, MR_VertId value)
struct MR_VertBitSet MR_VertBitSet
Definition MRAABBTree.h:22
struct MR_Mesh MR_Mesh
Definition MRCtm.h:16
struct MR_PointCloud MR_PointCloud
Definition MRCtm.h:19
Definition MRBox.h:110
Definition MRId.h:86
Generated from class MR::Vector3f.
Definition MRVector3.h:47
Definition MRId.h:55