MeshLib C Docs
Loading...
Searching...
No Matches
MRTriDist.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMesh/MRVector3.h>
4#include <MRCMisc/common.h>
5#include <MRCMisc/exports.h>
6
7#include <stdbool.h>
8#include <stddef.h>
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14typedef struct MR_std_array_MR_Vector3d_3 MR_std_array_MR_Vector3d_3; // Defined in `#include <MRCMisc/std_array_MR_Vector3d_3.h>`.
15typedef struct MR_std_array_MR_Vector3f_3 MR_std_array_MR_Vector3f_3; // Defined in `#include <MRCMisc/std_array_MR_Vector3f_3.h>`.
16
17
21
25
26typedef bool MR_UpLimitCheck;
27enum // MR_UpLimitCheck
28{
33};
34
38
42
53
64
75
86
97
108
117
125
134
142
149
157
161
166
173
177
181
187
190
193
201
212
223
234
245
256
267
276
284
293
301
308
316
320
325
332
336
340
346
349
352
360
369
377
386
392
398
404
408
413
419
423
427
433
436
439
447
451
455
464
472
481
487
493
499
503
508
514
518
522
528
531
534
542
546
550
559
567
573MRC_DEPRECATED_REASON("Use findDistance() instead")
575
584MRC_DEPRECATED_REASON("Use findTwoLineSegmClosestPoints() instead")
585MRC_API void MR_segPoints(MR_Vector3f *VEC, MR_Vector3f *X, MR_Vector3f *Y, const MR_Vector3f *P, const MR_Vector3f *A, const MR_Vector3f *Q, const MR_Vector3f *B);
586
587#ifdef __cplusplus
588} // extern "C"
589#endif
MRC_API MR_TriTriDistanceParams_double * MR_TriTriDistanceParams_double_DefaultConstruct(void)
MRC_API MR_TriTriDistanceResult_double * MR_TriTriDistanceResult_double_ConstructFrom(MR_Vector3d a, MR_Vector3d b, double distSq, bool overlap)
struct MR_TriTriDistanceParams_double MR_TriTriDistanceParams_double
Definition MRTriDist.h:41
MRC_API bool MR_TriTriDistanceParams_double_canExitEarlier_0(const MR_TriTriDistanceParams_double *_this)
MRC_API void MR_TriTriDistanceParams_double_Destroy(const MR_TriTriDistanceParams_double *_this)
Destroys a heap-allocated instance of MR_TriTriDistanceParams_double. Does nothing if the pointer is ...
MRC_API MR_TriTriDistanceParams_float * MR_TriTriDistanceParams_float_OffsetMutablePtr(MR_TriTriDistanceParams_float *ptr, ptrdiff_t i)
MRC_API MR_TriTriDistanceParams_float * MR_TriTriDistanceParams_float_ConstructFrom(float upDistLimitSq, MR_UpLimitCheck upLimitCheck)
MRC_API void MR_TriTriDistanceParams_float_Destroy(const MR_TriTriDistanceParams_float *_this)
Destroys a heap-allocated instance of MR_TriTriDistanceParams_float. Does nothing if the pointer is n...
MRC_API void MR_TriTriDistanceResult_double_Set_a(MR_TriTriDistanceResult_double *_this, MR_Vector3d value)
MRC_API double * MR_TriTriDistanceParams_double_GetMutable_upDistLimitSq(MR_TriTriDistanceParams_double *_this)
MRC_API void MR_TriTriDistanceResult_double_Set_overlap(MR_TriTriDistanceResult_double *_this, bool value)
MRC_API void MR_TriTriDistanceParams_double_Set_upLimitCheck(MR_TriTriDistanceParams_double *_this, MR_UpLimitCheck value)
MRC_API void MR_TriTriDistanceParams_float_DestroyArray(const MR_TriTriDistanceParams_float *_this)
Destroys a heap-allocated array of MR_TriTriDistanceParams_float. Does nothing if the pointer is null...
MRC_API void MR_TriTriDistanceParams_float_Set_upDistLimitSq(MR_TriTriDistanceParams_float *_this, float value)
MRC_API bool MR_TriTriDistanceParams_float_canExitEarlier_1(const MR_TriTriDistanceParams_float *_this, float distSqLowerBound)
MRC_API void MR_TriTriDistanceResult_double_Destroy(const MR_TriTriDistanceResult_double *_this)
Destroys a heap-allocated instance of MR_TriTriDistanceResult_double. Does nothing if the pointer is ...
MRC_API MR_TriTriDistanceParams_double * MR_TriTriDistanceParams_double_AssignFromAnother(MR_TriTriDistanceParams_double *_this, const MR_TriTriDistanceParams_double *_other)
MRC_API const MR_TriTriDistanceResult_float * MR_TriTriDistanceResult_float_OffsetPtr(const MR_TriTriDistanceResult_float *ptr, ptrdiff_t i)
MRC_API MR_UpLimitCheck * MR_TriTriDistanceParams_double_GetMutable_upLimitCheck(MR_TriTriDistanceParams_double *_this)
MRC_API MR_TriTriDistanceParams_float * MR_TriTriDistanceParams_float_ConstructFromAnother(const MR_TriTriDistanceParams_float *_other)
MRC_API MR_TriTriDistanceResult_double * MR_TriTriDistanceResult_double_DefaultConstructArray(size_t num_elems)
MRC_API const MR_UpLimitCheck * MR_TriTriDistanceParams_float_Get_upLimitCheck(const MR_TriTriDistanceParams_float *_this)
MRC_API void MR_TriTriDistanceResult_float_Set_a(MR_TriTriDistanceResult_float *_this, MR_Vector3f value)
MRC_API MR_TriTriDistanceParams_double * MR_TriTriDistanceParams_double_ConstructFromAnother(const MR_TriTriDistanceParams_double *_other)
MRC_API MR_TriTriDistanceParams_float * MR_TriTriDistanceParams_float_AssignFromAnother(MR_TriTriDistanceParams_float *_this, const MR_TriTriDistanceParams_float *_other)
MRC_API const MR_Vector3f * MR_TriTriDistanceResult_float_Get_a(const MR_TriTriDistanceResult_float *_this)
MRC_API MR_TriTriDistanceParams_float * MR_TriTriDistanceParams_float_DefaultConstructArray(size_t num_elems)
MRC_API void MR_TriTriDistanceParams_double_DestroyArray(const MR_TriTriDistanceParams_double *_this)
Destroys a heap-allocated array of MR_TriTriDistanceParams_double. Does nothing if the pointer is nul...
MRC_API float * MR_TriTriDistanceResult_float_GetMutable_distSq(MR_TriTriDistanceResult_float *_this)
MRC_API void MR_TriTriDistanceResult_float_Set_distSq(MR_TriTriDistanceResult_float *_this, float value)
bool MR_UpLimitCheck
Definition MRTriDist.h:26
MRC_API float MR_triDist(MR_Vector3f *p, MR_Vector3f *q, const MR_std_array_MR_Vector3f_3 *s, const MR_std_array_MR_Vector3f_3 *t)
MRC_API MR_UpLimitCheck * MR_TriTriDistanceParams_float_GetMutable_upLimitCheck(MR_TriTriDistanceParams_float *_this)
MRC_API MR_Vector3d * MR_TriTriDistanceResult_double_GetMutable_b(MR_TriTriDistanceResult_double *_this)
MRC_API void MR_TriTriDistanceResult_double_Set_b(MR_TriTriDistanceResult_double *_this, MR_Vector3d value)
MRC_API const MR_UpLimitCheck * MR_TriTriDistanceParams_double_Get_upLimitCheck(const MR_TriTriDistanceParams_double *_this)
MRC_API MR_TriTriDistanceResult_float * MR_TriTriDistanceResult_float_ConstructFrom(MR_Vector3f a, MR_Vector3f b, float distSq, bool overlap)
MRC_API MR_TriTriDistanceParams_double * MR_TriTriDistanceParams_double_OffsetMutablePtr(MR_TriTriDistanceParams_double *ptr, ptrdiff_t i)
MRC_API bool * MR_TriTriDistanceResult_float_GetMutable_overlap(MR_TriTriDistanceResult_float *_this)
MRC_API void MR_TriTriDistanceResult_double_Set_distSq(MR_TriTriDistanceResult_double *_this, double value)
MRC_API void MR_TriTriDistanceParams_double_Set_upDistLimitSq(MR_TriTriDistanceParams_double *_this, double value)
MRC_API const MR_TriTriDistanceResult_double * MR_TriTriDistanceResult_double_OffsetPtr(const MR_TriTriDistanceResult_double *ptr, ptrdiff_t i)
MRC_API const float * MR_TriTriDistanceResult_float_Get_distSq(const MR_TriTriDistanceResult_float *_this)
MRC_API MR_TriTriDistanceResult_double * MR_TriTriDistanceResult_double_DefaultConstruct(void)
MRC_API void MR_TriTriDistanceResult_float_Set_b(MR_TriTriDistanceResult_float *_this, MR_Vector3f value)
MRC_API const MR_Vector3d * MR_TriTriDistanceResult_double_Get_a(const MR_TriTriDistanceResult_double *_this)
MRC_API MR_TriTriDistanceResult_double * MR_TriTriDistanceResult_double_AssignFromAnother(MR_TriTriDistanceResult_double *_this, const MR_TriTriDistanceResult_double *_other)
MRC_API const MR_Vector3d * MR_TriTriDistanceResult_double_Get_b(const MR_TriTriDistanceResult_double *_this)
MRC_API void MR_TriTriDistanceResult_double_DestroyArray(const MR_TriTriDistanceResult_double *_this)
Destroys a heap-allocated array of MR_TriTriDistanceResult_double. Does nothing if the pointer is nul...
MRC_API MR_TriTriDistanceResult_float * MR_findTriTriDistance_std_array_MR_Vector3f_3(const MR_std_array_MR_Vector3f_3 *a, const MR_std_array_MR_Vector3f_3 *b, const MR_TriTriDistanceParams_float *params)
MRC_API MR_Vector3f * MR_TriTriDistanceResult_float_GetMutable_b(MR_TriTriDistanceResult_float *_this)
MRC_API const bool * MR_TriTriDistanceResult_double_Get_overlap(const MR_TriTriDistanceResult_double *_this)
MRC_API MR_Vector3d * MR_TriTriDistanceResult_double_GetMutable_a(MR_TriTriDistanceResult_double *_this)
MRC_API MR_TriTriDistanceResult_double * MR_TriTriDistanceResult_double_ConstructFromAnother(const MR_TriTriDistanceResult_double *_other)
MRC_API const float * MR_TriTriDistanceParams_float_Get_upDistLimitSq(const MR_TriTriDistanceParams_float *_this)
MRC_API void MR_TriTriDistanceResult_float_DestroyArray(const MR_TriTriDistanceResult_float *_this)
Destroys a heap-allocated array of MR_TriTriDistanceResult_float. Does nothing if the pointer is null...
MRC_API MR_TriTriDistanceResult_float * MR_TriTriDistanceResult_float_DefaultConstruct(void)
MRC_API MR_TriTriDistanceParams_double * MR_TriTriDistanceParams_double_ConstructFrom(double upDistLimitSq, MR_UpLimitCheck upLimitCheck)
MRC_API const MR_TriTriDistanceParams_double * MR_TriTriDistanceParams_double_OffsetPtr(const MR_TriTriDistanceParams_double *ptr, ptrdiff_t i)
MRC_API const double * MR_TriTriDistanceResult_double_Get_distSq(const MR_TriTriDistanceResult_double *_this)
MRC_API MR_TriTriDistanceResult_float * MR_TriTriDistanceResult_float_DefaultConstructArray(size_t num_elems)
MRC_API MR_TriTriDistanceResult_double * MR_findTriTriDistance_std_array_MR_Vector3d_3(const MR_std_array_MR_Vector3d_3 *a, const MR_std_array_MR_Vector3d_3 *b, const MR_TriTriDistanceParams_double *params)
MRC_API MR_TriTriDistanceResult_float * MR_TriTriDistanceResult_float_ConstructFromAnother(const MR_TriTriDistanceResult_float *_other)
MRC_API const MR_TriTriDistanceParams_float * MR_TriTriDistanceParams_float_OffsetPtr(const MR_TriTriDistanceParams_float *ptr, ptrdiff_t i)
MRC_API void MR_TriTriDistanceParams_float_Set_upLimitCheck(MR_TriTriDistanceParams_float *_this, MR_UpLimitCheck value)
struct MR_TriTriDistanceResult_double MR_TriTriDistanceResult_double
Definition MRTriDist.h:24
@ MR_UpLimitCheck_Greater
Definition MRTriDist.h:32
@ MR_UpLimitCheck_GreaterOrEqual
findTriTriDistance exits earlier if (distSqLowerBound >= upDistLimitSq)
Definition MRTriDist.h:30
MRC_API void MR_TriTriDistanceResult_float_Destroy(const MR_TriTriDistanceResult_float *_this)
Destroys a heap-allocated instance of MR_TriTriDistanceResult_float. Does nothing if the pointer is n...
MRC_API MR_TriTriDistanceResult_float * MR_TriTriDistanceResult_float_OffsetMutablePtr(MR_TriTriDistanceResult_float *ptr, ptrdiff_t i)
MRC_API bool * MR_TriTriDistanceResult_double_GetMutable_overlap(MR_TriTriDistanceResult_double *_this)
MRC_API void MR_TriTriDistanceResult_float_Set_overlap(MR_TriTriDistanceResult_float *_this, bool value)
MRC_API double * MR_TriTriDistanceResult_double_GetMutable_distSq(MR_TriTriDistanceResult_double *_this)
struct MR_TriTriDistanceParams_float MR_TriTriDistanceParams_float
Definition MRTriDist.h:37
MRC_API float * MR_TriTriDistanceParams_float_GetMutable_upDistLimitSq(MR_TriTriDistanceParams_float *_this)
MRC_API MR_TriTriDistanceResult_double * MR_TriTriDistanceResult_double_OffsetMutablePtr(MR_TriTriDistanceResult_double *ptr, ptrdiff_t i)
MRC_API bool MR_TriTriDistanceParams_double_canExitEarlier_1(const MR_TriTriDistanceParams_double *_this, double distSqLowerBound)
struct MR_TriTriDistanceResult_float MR_TriTriDistanceResult_float
Definition MRTriDist.h:20
MRC_API void MR_segPoints(MR_Vector3f *VEC, MR_Vector3f *X, MR_Vector3f *Y, const MR_Vector3f *P, const MR_Vector3f *A, const MR_Vector3f *Q, const MR_Vector3f *B)
MRC_API const MR_Vector3f * MR_TriTriDistanceResult_float_Get_b(const MR_TriTriDistanceResult_float *_this)
MRC_API const double * MR_TriTriDistanceParams_double_Get_upDistLimitSq(const MR_TriTriDistanceParams_double *_this)
MRC_API MR_TriTriDistanceParams_double * MR_TriTriDistanceParams_double_DefaultConstructArray(size_t num_elems)
MRC_API const bool * MR_TriTriDistanceResult_float_Get_overlap(const MR_TriTriDistanceResult_float *_this)
MRC_API MR_TriTriDistanceParams_float * MR_TriTriDistanceParams_float_DefaultConstruct(void)
MRC_API MR_TriTriDistanceResult_float * MR_TriTriDistanceResult_float_AssignFromAnother(MR_TriTriDistanceResult_float *_this, const MR_TriTriDistanceResult_float *_other)
MRC_API MR_Vector3f * MR_TriTriDistanceResult_float_GetMutable_a(MR_TriTriDistanceResult_float *_this)
MRC_API bool MR_TriTriDistanceParams_float_canExitEarlier_0(const MR_TriTriDistanceParams_float *_this)
#define MRC_DEPRECATED_REASON(str)
Definition common.h:84
#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
A fixed-size array of MR::Vector3d of size 3.
Definition std_array_MR_Vector3d_3.h:12
A fixed-size array of MR::Vector3f of size 3.
Definition std_array_MR_Vector3f_3.h:12