MeshLib C Docs
Loading...
Searching...
No Matches
MRPrecisePredicates3.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
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15typedef struct MR_Box3d MR_Box3d; // Defined in `#include <MRCMesh/MRBox.h>`.
16typedef struct MR_std_array_MR_PreciseVertCoords_4 MR_std_array_MR_PreciseVertCoords_4; // Defined in `#include <MRCMisc/std_array_MR_PreciseVertCoords_4.h>`.
17typedef struct MR_std_array_MR_PreciseVertCoords_5 MR_std_array_MR_PreciseVertCoords_5; // Defined in `#include <MRCMisc/std_array_MR_PreciseVertCoords_5.h>`.
18typedef struct MR_std_array_MR_PreciseVertCoords_8 MR_std_array_MR_PreciseVertCoords_8; // Defined in `#include <MRCMisc/std_array_MR_PreciseVertCoords_8.h>`.
19typedef struct MR_std_function_MR_Vector3f_from_const_MR_Vector3i_ref MR_std_function_MR_Vector3f_from_const_MR_Vector3i_ref; // Defined in `#include <MRCMisc/std_function_MR_Vector3f_from_const_MR_Vector3i_ref.h>`.
20typedef struct MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref; // Defined in `#include <MRCMisc/std_function_MR_Vector3i_from_const_MR_Vector3f_ref.h>`.
21typedef struct MR_std_optional_MR_Vector3i MR_std_optional_MR_Vector3i; // Defined in `#include <MRCMisc/std_optional_MR_Vector3i.h>`.
22
23
27
31
36
43MRC_API bool MR_orient3d_3(const MR_Vector3i *a, const MR_Vector3i *b, const MR_Vector3i *c);
44
52MRC_API bool MR_orient3d_4(const MR_Vector3i *a, const MR_Vector3i *b, const MR_Vector3i *c, const MR_Vector3i *d);
53
59
66
72
78
85
91
95
100
107
111
115
121
124
127
135
140
143
149
155
161
167
173
179
183
188
193
197
201
207
210
213
217
225
232
240
245
251
256
261
267
272
276
281
288
292
296
301
304
307
314
320
326
336
346
347#ifdef __cplusplus
348} // extern "C"
349#endif
struct MR_CoordinateConverters MR_CoordinateConverters
Definition MRMeshBoolean.h:16
struct MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref
Definition MRMeshCollidePrecise.h:18
MRC_API const MR_PreciseVertCoords * MR_PreciseVertCoords_OffsetPtr(const MR_PreciseVertCoords *ptr, ptrdiff_t i)
MRC_API const MR_CoordinateConverters * MR_CoordinateConverters_OffsetPtr(const MR_CoordinateConverters *ptr, ptrdiff_t i)
MRC_API const MR_Vector3i * MR_PreciseVertCoords_Get_pt(const MR_PreciseVertCoords *_this)
MRC_API MR_Vector3f MR_findTriangleSegmentIntersectionPrecise(const MR_Vector3f *a, const MR_Vector3f *b, const MR_Vector3f *c, const MR_Vector3f *d, const MR_Vector3f *e, MR_PassBy converters_pass_by, MR_CoordinateConverters *converters)
MRC_API MR_PreciseVertCoords * MR_PreciseVertCoords_ConstructFromAnother(const MR_PreciseVertCoords *_other)
MRC_API bool * MR_TriangleSegmentIntersectResult_GetMutable_doIntersect(MR_TriangleSegmentIntersectResult *_this)
struct MR_std_array_MR_PreciseVertCoords_5 MR_std_array_MR_PreciseVertCoords_5
Definition MRPrecisePredicates3.h:17
MRC_API bool * MR_TriangleSegmentIntersectResult_GetMutable_dIsLeftFromABC(MR_TriangleSegmentIntersectResult *_this)
MRC_API bool MR_orient3d_1_const_MR_PreciseVertCoords_ptr(const MR_PreciseVertCoords *vs)
Generated from function MR::orient3d.
MRC_API MR_PreciseVertCoords * MR_PreciseVertCoords_ConstructFrom(MR_VertId id, MR_Vector3i pt)
MRC_API const MR_std_function_MR_Vector3f_from_const_MR_Vector3i_ref * MR_CoordinateConverters_Get_toFloat(const MR_CoordinateConverters *_this)
MRC_API void MR_PreciseVertCoords_DestroyArray(const MR_PreciseVertCoords *_this)
Destroys a heap-allocated array of MR_PreciseVertCoords. Does nothing if the pointer is null.
struct MR_TriangleSegmentIntersectResult MR_TriangleSegmentIntersectResult
Definition MRPrecisePredicates3.h:30
MRC_API void MR_PreciseVertCoords_Destroy(const MR_PreciseVertCoords *_this)
Destroys a heap-allocated instance of MR_PreciseVertCoords. Does nothing if the pointer is null.
MRC_API void MR_CoordinateConverters_DestroyArray(const MR_CoordinateConverters *_this)
Destroys a heap-allocated array of MR_CoordinateConverters. Does nothing if the pointer is null.
MRC_API MR_CoordinateConverters * MR_CoordinateConverters_AssignFromAnother(MR_CoordinateConverters *_this, MR_PassBy _other_pass_by, MR_CoordinateConverters *_other)
MRC_API MR_TriangleSegmentIntersectResult * MR_doTriangleSegmentIntersect(const MR_std_array_MR_PreciseVertCoords_5 *vs)
MRC_API MR_VertId * MR_PreciseVertCoords_GetMutable_id(MR_PreciseVertCoords *_this)
MRC_API MR_TriangleSegmentIntersectResult * MR_TriangleSegmentIntersectResult_ConstructFromAnother(const MR_TriangleSegmentIntersectResult *_other)
MRC_API MR_TriangleSegmentIntersectResult * MR_TriangleSegmentIntersectResult_ConstructFrom(bool doIntersect, bool dIsLeftFromABC)
MRC_API bool MR_orient3d_1_std_array_MR_PreciseVertCoords_4(const MR_std_array_MR_PreciseVertCoords_4 *vs)
MRC_API void MR_TriangleSegmentIntersectResult_DestroyArray(const MR_TriangleSegmentIntersectResult *_this)
Destroys a heap-allocated array of MR_TriangleSegmentIntersectResult. Does nothing if the pointer is ...
struct MR_std_optional_MR_Vector3i MR_std_optional_MR_Vector3i
Definition MRPrecisePredicates3.h:21
MRC_API void MR_TriangleSegmentIntersectResult_Destroy(const MR_TriangleSegmentIntersectResult *_this)
Destroys a heap-allocated instance of MR_TriangleSegmentIntersectResult. Does nothing if the pointer ...
MRC_API const MR_TriangleSegmentIntersectResult * MR_TriangleSegmentIntersectResult_OffsetPtr(const MR_TriangleSegmentIntersectResult *ptr, ptrdiff_t i)
MRC_API MR_CoordinateConverters * MR_CoordinateConverters_OffsetMutablePtr(MR_CoordinateConverters *ptr, ptrdiff_t i)
MRC_API MR_CoordinateConverters * MR_CoordinateConverters_ConstructFrom(MR_PassBy toInt_pass_by, MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref *toInt, MR_PassBy toFloat_pass_by, MR_std_function_MR_Vector3f_from_const_MR_Vector3i_ref *toFloat)
MRC_API void MR_CoordinateConverters_Destroy(const MR_CoordinateConverters *_this)
Destroys a heap-allocated instance of MR_CoordinateConverters. Does nothing if the pointer is null.
MRC_API MR_PreciseVertCoords * MR_PreciseVertCoords_AssignFromAnother(MR_PreciseVertCoords *_this, const MR_PreciseVertCoords *_other)
MRC_API bool MR_orient3d_4(const MR_Vector3i *a, const MR_Vector3i *b, const MR_Vector3i *c, const MR_Vector3i *d)
MRC_API MR_TriangleSegmentIntersectResult * MR_TriangleSegmentIntersectResult_AssignFromAnother(MR_TriangleSegmentIntersectResult *_this, const MR_TriangleSegmentIntersectResult *_other)
struct MR_std_array_MR_PreciseVertCoords_8 MR_std_array_MR_PreciseVertCoords_8
Definition MRPrecisePredicates3.h:18
MRC_API MR_Vector3i * MR_PreciseVertCoords_GetMutable_pt(MR_PreciseVertCoords *_this)
MRC_API void MR_TriangleSegmentIntersectResult_Set_doIntersect(MR_TriangleSegmentIntersectResult *_this, bool value)
MRC_API void MR_CoordinateConverters_Set_toInt(MR_CoordinateConverters *_this, MR_PassBy value_pass_by, MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref *value)
MRC_API void MR_CoordinateConverters_Set_toFloat(MR_CoordinateConverters *_this, MR_PassBy value_pass_by, MR_std_function_MR_Vector3f_from_const_MR_Vector3i_ref *value)
MRC_API const MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref * MR_CoordinateConverters_Get_toInt(const MR_CoordinateConverters *_this)
MRC_API const bool * MR_TriangleSegmentIntersectResult_Get_doIntersect(const MR_TriangleSegmentIntersectResult *_this)
MRC_API bool MR_TriangleSegmentIntersectResult_ConvertTo_bool(const MR_TriangleSegmentIntersectResult *_this)
MRC_API void MR_PreciseVertCoords_Set_pt(MR_PreciseVertCoords *_this, MR_Vector3i value)
MRC_API const bool * MR_TriangleSegmentIntersectResult_Get_dIsLeftFromABC(const MR_TriangleSegmentIntersectResult *_this)
MRC_API MR_CoordinateConverters * MR_CoordinateConverters_ConstructFromAnother(MR_PassBy _other_pass_by, MR_CoordinateConverters *_other)
MRC_API bool MR_orient3d_3(const MR_Vector3i *a, const MR_Vector3i *b, const MR_Vector3i *c)
MRC_API MR_CoordinateConverters * MR_CoordinateConverters_DefaultConstructArray(size_t num_elems)
MRC_API MR_std_function_MR_Vector3f_from_const_MR_Vector3i_ref * MR_getToFloatConverter(const MR_Box3d *box)
MRC_API void MR_TriangleSegmentIntersectResult_Set_dIsLeftFromABC(MR_TriangleSegmentIntersectResult *_this, bool value)
MRC_API MR_PreciseVertCoords * MR_PreciseVertCoords_OffsetMutablePtr(MR_PreciseVertCoords *ptr, ptrdiff_t i)
struct MR_PreciseVertCoords MR_PreciseVertCoords
Definition MRPrecisePredicates3.h:26
MRC_API MR_TriangleSegmentIntersectResult * MR_TriangleSegmentIntersectResult_DefaultConstructArray(size_t num_elems)
MRC_API const MR_VertId * MR_PreciseVertCoords_Get_id(const MR_PreciseVertCoords *_this)
MRC_API MR_CoordinateConverters * MR_CoordinateConverters_DefaultConstruct(void)
MRC_API MR_TriangleSegmentIntersectResult * MR_TriangleSegmentIntersectResult_OffsetMutablePtr(MR_TriangleSegmentIntersectResult *ptr, ptrdiff_t i)
MRC_API MR_std_function_MR_Vector3f_from_const_MR_Vector3i_ref * MR_CoordinateConverters_GetMutable_toFloat(MR_CoordinateConverters *_this)
MRC_API MR_PreciseVertCoords * MR_PreciseVertCoords_DefaultConstruct(void)
MRC_API void MR_PreciseVertCoords_Set_id(MR_PreciseVertCoords *_this, MR_VertId value)
MRC_API MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref * MR_getToIntConverter(const MR_Box3d *box)
MRC_API MR_PreciseVertCoords * MR_PreciseVertCoords_DefaultConstructArray(size_t num_elems)
MRC_API bool MR_segmentIntersectionOrder_std_array_MR_PreciseVertCoords_8(const MR_std_array_MR_PreciseVertCoords_8 *vs)
MRC_API MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref * MR_CoordinateConverters_GetMutable_toInt(MR_CoordinateConverters *_this)
MRC_API MR_TriangleSegmentIntersectResult * MR_TriangleSegmentIntersectResult_DefaultConstruct(void)
struct MR_std_function_MR_Vector3f_from_const_MR_Vector3i_ref MR_std_function_MR_Vector3f_from_const_MR_Vector3i_ref
Definition MRPrecisePredicates3.h:19
struct MR_std_array_MR_PreciseVertCoords_4 MR_std_array_MR_PreciseVertCoords_4
Definition MRPrecisePredicates3.h:16
MRC_API MR_std_optional_MR_Vector3i * MR_findTwoSegmentsIntersection(const MR_Vector3i *ai, const MR_Vector3i *bi, const MR_Vector3i *ci, const MR_Vector3i *di)
MR_PassBy
Definition common.h:23
#define MRC_API
Definition exports.h:11
Definition MRBox.h:118
Definition MRVector3.h:52
Definition MRVector3.h:34
Definition MRId.h:55