MeshLib C Docs
Loading...
Searching...
No Matches
MRInSphere.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMisc/exports.h>
4
5#include <stdbool.h>
6#include <stddef.h>
7#include <stdint.h>
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13typedef struct MR_PreciseVertCoords MR_PreciseVertCoords; // Defined in `#include <MRCMesh/MRPrecisePredicates3.h>`.
14typedef struct MR_Vector3d MR_Vector3d; // Defined in `#include <MRCMesh/MRVector3.h>`.
15typedef struct MR_Vector3f MR_Vector3f; // Defined in `#include <MRCMesh/MRVector3.h>`.
16typedef struct MR_Vector3i MR_Vector3i; // Defined in `#include <MRCMesh/MRVector3.h>`.
17typedef struct MR_std_array_MR_PreciseVertCoords_4 MR_std_array_MR_PreciseVertCoords_4; // Defined in `#include <MRCMisc/std_array_MR_PreciseVertCoords_4.h>`.
18
19
35
48
61
72
84
96
108MRC_API MR_InSphereResult MR_inSphere_5(const MR_Vector3i *a, const MR_Vector3i *b, const MR_Vector3i *c, const MR_Vector3i *d, int64_t rSq);
109
131
135
140
144
148
154
157
160
168
179MRC_API bool MR_InSphereTester_float_reset(MR_InSphereTester_float *_this, const MR_Vector3f *va, const MR_Vector3f *vb, const MR_Vector3f *vc, float sqRadius);
180
188
195
199
204
208
212
218
221
224
232
243MRC_API bool MR_InSphereTester_double_reset(MR_InSphereTester_double *_this, const MR_Vector3d *va, const MR_Vector3d *vb, const MR_Vector3d *vc, double sqRadius);
244
252
259
263
268
272
276
282
285
288
296
307MRC_API bool MR_InSphereTester_int_reset(MR_InSphereTester_int *_this, const MR_Vector3i *a, const MR_Vector3i *b, const MR_Vector3i *c, int64_t rSq);
308
316
323
327
332
336
340
345
349
355
360
366
369
372
380
395
402
412
419
423
428
432
436
441
445
451
456
461
465
471
476
482
485
488
496
506
512
520
532
539
549
559
560#ifdef __cplusplus
561} // extern "C"
562#endif
struct MR_PreciseVertCoords MR_PreciseVertCoords
Definition MRAlphaShape.h:18
MRC_API MR_InSphereResult MR_FastInSphereTesterSoS_call(const MR_FastInSphereTesterSoS *_this, const MR_PreciseVertCoords *d)
MRC_API void MR_InSphereTester_int_Destroy(const MR_InSphereTester_int *_this)
Destroys a heap-allocated instance of MR_InSphereTester_int. Does nothing if the pointer is null.
MRC_API MR_InSphereResult MR_inSphere_double(const MR_Vector3d *a, const MR_Vector3d *b, const MR_Vector3d *c, const MR_Vector3d *d, double rSq)
MRC_API bool MR_FastInSphereTesterSoS_degenerateTriangle(const MR_FastInSphereTesterSoS *_this)
MRC_API MR_FastInSphereTesterSoS * MR_FastInSphereTesterSoS_MutableStaticDowncastFrom_MR_InSphereTester_int(MR_InSphereTester_int *object)
MRC_API const MR_InSphereTester_float * MR_InSphereTester_float_OffsetPtr(const MR_InSphereTester_float *ptr, ptrdiff_t i)
MRC_API MR_InSphereTester_int * MR_InSphereTester_int_ConstructFromAnother(const MR_InSphereTester_int *_other)
MRC_API MR_InSphereTester_float * MR_InSphereTester_float_AssignFromAnother(MR_InSphereTester_float *_this, const MR_InSphereTester_float *_other)
MRC_API void MR_InSphereTesterSoS_flip(MR_InSphereTesterSoS *_this)
MRC_API const MR_FastInSphereTesterSoS * MR_FastInSphereTesterSoS_StaticDowncastFrom_MR_InSphereTesterSoS(const MR_InSphereTesterSoS *object)
MRC_API MR_InSphereTester_double * MR_InSphereTester_double_AssignFromAnother(MR_InSphereTester_double *_this, const MR_InSphereTester_double *_other)
MRC_API void MR_InSphereTester_double_Destroy(const MR_InSphereTester_double *_this)
Destroys a heap-allocated instance of MR_InSphereTester_double. Does nothing if the pointer is null.
MRC_API MR_FastInSphereTesterSoS * MR_FastInSphereTesterSoS_AssignFromAnother(MR_FastInSphereTesterSoS *_this, const MR_FastInSphereTesterSoS *_other)
MRC_API const MR_FastInSphereTesterSoS * MR_FastInSphereTesterSoS_OffsetPtr(const MR_FastInSphereTesterSoS *ptr, ptrdiff_t i)
MRC_API MR_InSphereTesterSoS * MR_InSphereTesterSoS_ConstructFromAnother(const MR_InSphereTesterSoS *_other)
MRC_API void MR_InSphereTesterSoS_Destroy(const MR_InSphereTesterSoS *_this)
Destroys a heap-allocated instance of MR_InSphereTesterSoS. Does nothing if the pointer is null.
MRC_API void MR_InSphereTester_double_flip(MR_InSphereTester_double *_this)
MRC_API MR_InSphereTester_int * MR_InSphereTester_int_DefaultConstructArray(size_t num_elems)
MRC_API MR_InSphereTester_double * MR_InSphereTester_double_DefaultConstructArray(size_t num_elems)
MRC_API MR_InSphereResult MR_InSphereTester_float_call(const MR_InSphereTester_float *_this, const MR_Vector3f *d)
struct MR_InSphereTester_int MR_InSphereTester_int
Definition MRInSphere.h:71
MRC_API void MR_FastInSphereTesterSoS_flip(MR_FastInSphereTesterSoS *_this)
MRC_API bool MR_FastInSphereTesterSoS_outsideBothSpheres(const MR_FastInSphereTesterSoS *_this, const MR_Vector3i *d)
MRC_API MR_InSphereTester_float * MR_InSphereTester_float_DefaultConstruct(void)
MRC_API MR_InSphereTester_int * MR_FastInSphereTesterSoS_MutableUpcastTo_MR_InSphereTester_int(MR_FastInSphereTesterSoS *object)
MRC_API void MR_InSphereTester_float_Destroy(const MR_InSphereTester_float *_this)
Destroys a heap-allocated instance of MR_InSphereTester_float. Does nothing if the pointer is null.
MRC_API bool MR_FastInSphereTesterSoS_reset(MR_FastInSphereTesterSoS *_this, const MR_PreciseVertCoords *a, const MR_PreciseVertCoords *b, const MR_PreciseVertCoords *c, int64_t rSq)
MRC_API MR_InSphereTester_int * MR_InSphereTester_int_OffsetMutablePtr(MR_InSphereTester_int *ptr, ptrdiff_t i)
MRC_API MR_InSphereTesterSoS * MR_InSphereTesterSoS_DefaultConstruct(void)
MRC_API const MR_InSphereTester_int * MR_InSphereTester_int_OffsetPtr(const MR_InSphereTester_int *ptr, ptrdiff_t i)
MRC_API MR_InSphereTester_double * MR_InSphereTester_double_DefaultConstruct(void)
MRC_API const MR_InSphereTester_int * MR_InSphereTesterSoS_UpcastTo_MR_InSphereTester_int(const MR_InSphereTesterSoS *object)
MRC_API MR_InSphereTesterSoS * MR_InSphereTesterSoS_DefaultConstructArray(size_t num_elems)
MRC_API MR_InSphereTesterSoS * MR_FastInSphereTesterSoS_MutableUpcastTo_MR_InSphereTesterSoS(MR_FastInSphereTesterSoS *object)
MRC_API void MR_FastInSphereTesterSoS_Destroy(const MR_FastInSphereTesterSoS *_this)
Destroys a heap-allocated instance of MR_FastInSphereTesterSoS. Does nothing if the pointer is null.
MRC_API const MR_InSphereTesterSoS * MR_InSphereTesterSoS_OffsetPtr(const MR_InSphereTesterSoS *ptr, ptrdiff_t i)
MRC_API MR_InSphereResult MR_inSphere_5(const MR_Vector3i *a, const MR_Vector3i *b, const MR_Vector3i *c, const MR_Vector3i *d, int64_t rSq)
MRC_API MR_InSphereTester_float * MR_InSphereTester_float_DefaultConstructArray(size_t num_elems)
MRC_API void MR_InSphereTesterSoS_DestroyArray(const MR_InSphereTesterSoS *_this)
Destroys a heap-allocated array of MR_InSphereTesterSoS. Does nothing if the pointer is null.
MRC_API void MR_InSphereTester_float_DestroyArray(const MR_InSphereTester_float *_this)
Destroys a heap-allocated array of MR_InSphereTester_float. Does nothing if the pointer is null.
MRC_API const MR_InSphereTester_double * MR_InSphereTester_double_OffsetPtr(const MR_InSphereTester_double *ptr, ptrdiff_t i)
MRC_API const MR_FastInSphereTesterSoS * MR_FastInSphereTesterSoS_StaticDowncastFrom_MR_InSphereTester_int(const MR_InSphereTester_int *object)
MRC_API MR_FastInSphereTesterSoS * MR_FastInSphereTesterSoS_DefaultConstruct(void)
MRC_API MR_InSphereResult MR_InSphereTester_double_call(const MR_InSphereTester_double *_this, const MR_Vector3d *d)
MRC_API MR_InSphereResult MR_InSphereTester_int_call(const MR_InSphereTester_int *_this, const MR_Vector3i *d)
MRC_API MR_InSphereTester_double * MR_InSphereTester_double_ConstructFromAnother(const MR_InSphereTester_double *_other)
MRC_API MR_InSphereTesterSoS * MR_InSphereTesterSoS_OffsetMutablePtr(MR_InSphereTesterSoS *ptr, ptrdiff_t i)
MRC_API MR_FastInSphereTesterSoS * MR_FastInSphereTesterSoS_OffsetMutablePtr(MR_FastInSphereTesterSoS *ptr, ptrdiff_t i)
MRC_API MR_FastInSphereTesterSoS * MR_FastInSphereTesterSoS_MutableStaticDowncastFrom_MR_InSphereTesterSoS(MR_InSphereTesterSoS *object)
MRC_API MR_InSphereResult MR_inSphere_float(const MR_Vector3f *a, const MR_Vector3f *b, const MR_Vector3f *c, const MR_Vector3f *d, float rSq)
MRC_API MR_InSphereResult MR_inSphere_2(const MR_std_array_MR_PreciseVertCoords_4 *vs, int64_t rSq)
MRC_API void MR_InSphereTester_float_flip(MR_InSphereTester_float *_this)
MRC_API void MR_InSphereTester_double_DestroyArray(const MR_InSphereTester_double *_this)
Destroys a heap-allocated array of MR_InSphereTester_double. Does nothing if the pointer is null.
MRC_API MR_FastInSphereTesterSoS * MR_FastInSphereTesterSoS_ConstructFromAnother(const MR_FastInSphereTesterSoS *_other)
MRC_API bool MR_InSphereTester_int_reset(MR_InSphereTester_int *_this, const MR_Vector3i *a, const MR_Vector3i *b, const MR_Vector3i *c, int64_t rSq)
MRC_API void MR_InSphereTester_int_flip(MR_InSphereTester_int *_this)
MRC_API MR_InSphereTester_int * MR_InSphereTesterSoS_MutableUpcastTo_MR_InSphereTester_int(MR_InSphereTesterSoS *object)
struct MR_FastInSphereTesterSoS MR_FastInSphereTesterSoS
Definition MRInSphere.h:95
MRC_API const MR_InSphereTesterSoS * MR_InSphereTesterSoS_StaticDowncastFrom_MR_InSphereTester_int(const MR_InSphereTester_int *object)
struct MR_InSphereTesterSoS MR_InSphereTesterSoS
Definition MRInSphere.h:83
MRC_API MR_InSphereTesterSoS * MR_InSphereTesterSoS_AssignFromAnother(MR_InSphereTesterSoS *_this, const MR_InSphereTesterSoS *_other)
struct MR_InSphereTester_float MR_InSphereTester_float
Definition MRInSphere.h:47
MRC_API const MR_InSphereTester_int * MR_FastInSphereTesterSoS_UpcastTo_MR_InSphereTester_int(const MR_FastInSphereTesterSoS *object)
MRC_API MR_InSphereTesterSoS * MR_InSphereTesterSoS_MutableStaticDowncastFrom_MR_InSphereTester_int(MR_InSphereTester_int *object)
MRC_API MR_InSphereResult MR_InSphereTesterSoS_call(const MR_InSphereTesterSoS *_this, const MR_PreciseVertCoords *d)
MRC_API MR_InSphereTester_int * MR_InSphereTester_int_DefaultConstruct(void)
MRC_API MR_InSphereTester_double * MR_InSphereTester_double_OffsetMutablePtr(MR_InSphereTester_double *ptr, ptrdiff_t i)
MRC_API bool MR_InSphereTester_float_reset(MR_InSphereTester_float *_this, const MR_Vector3f *va, const MR_Vector3f *vb, const MR_Vector3f *vc, float sqRadius)
MRC_API bool MR_InSphereTesterSoS_reset(MR_InSphereTesterSoS *_this, const MR_PreciseVertCoords *a, const MR_PreciseVertCoords *b, const MR_PreciseVertCoords *c, int64_t rSq)
MRC_API MR_InSphereTester_int * MR_InSphereTester_int_AssignFromAnother(MR_InSphereTester_int *_this, const MR_InSphereTester_int *_other)
MRC_API bool MR_InSphereTesterSoS_degenerateTriangle(const MR_InSphereTesterSoS *_this)
struct MR_InSphereTester_double MR_InSphereTester_double
Definition MRInSphere.h:60
MRC_API MR_InSphereTester_float * MR_InSphereTester_float_ConstructFromAnother(const MR_InSphereTester_float *_other)
MRC_API MR_InSphereTester_float * MR_InSphereTester_float_OffsetMutablePtr(MR_InSphereTester_float *ptr, ptrdiff_t i)
MRC_API void MR_InSphereTester_int_DestroyArray(const MR_InSphereTester_int *_this)
Destroys a heap-allocated array of MR_InSphereTester_int. Does nothing if the pointer is null.
MRC_API const MR_InSphereTesterSoS * MR_FastInSphereTesterSoS_UpcastTo_MR_InSphereTesterSoS(const MR_FastInSphereTesterSoS *object)
MRC_API void MR_FastInSphereTesterSoS_DestroyArray(const MR_FastInSphereTesterSoS *_this)
Destroys a heap-allocated array of MR_FastInSphereTesterSoS. Does nothing if the pointer is null.
MR_InSphereResult
the result of inSphere predicates
Definition MRInSphere.h:22
@ MR_InSphereResult_Inside
the sphere exists, and the point D is strictly inside
Definition MRInSphere.h:33
@ MR_InSphereResult_OnSphere
Definition MRInSphere.h:31
@ MR_InSphereResult_Outside
the sphere exists, and the point D is strictly outside
Definition MRInSphere.h:27
@ MR_InSphereResult_NoSphere
Definition MRInSphere.h:25
MRC_API bool MR_InSphereTester_double_reset(MR_InSphereTester_double *_this, const MR_Vector3d *va, const MR_Vector3d *vb, const MR_Vector3d *vc, double sqRadius)
struct MR_std_array_MR_PreciseVertCoords_4 MR_std_array_MR_PreciseVertCoords_4
Definition MRInSphere.h:17
MRC_API MR_FastInSphereTesterSoS * MR_FastInSphereTesterSoS_DefaultConstructArray(size_t num_elems)
#define MRC_API
Definition include/MRCMisc/exports.h:11
Generated from class MR::Vector3d.
Definition MRVector3.h:55
Generated from class MR::Vector3f.
Definition MRVector3.h:47
Generated from class MR::Vector3i.
Definition MRVector3.h:63