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
26
29
33
40MRC_API bool MR_orient3d_3(const MR_Vector3i *a, const MR_Vector3i *b, const MR_Vector3i *c);
41
49MRC_API bool MR_orient3d_4(const MR_Vector3i *a, const MR_Vector3i *b, const MR_Vector3i *c, const MR_Vector3i *d);
50
56
61
67
73
78
84
88
93
97
100
103
108
111
114
120
125
128
134
139
145
151
156
162
166
171
175
178
181
186
189
192
196
202
209
217
222
226
231
236
240
245
249
254
258
261
264
268
271
274
279
285
291
301
311
312#ifdef __cplusplus
313} // extern "C"
314#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:19
MRC_API const MR_PreciseVertCoords * MR_PreciseVertCoords_OffsetPtr(const MR_PreciseVertCoords *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_CoordinateConverters * MR_CoordinateConverters_OffsetPtr(const MR_CoordinateConverters *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_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
Generated from class MR::TriangleSegmentIntersectResult.
Definition MRPrecisePredicates3.h:28
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API MR_CoordinateConverters * MR_CoordinateConverters_OffsetMutablePtr(MR_CoordinateConverters *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_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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
struct MR_PreciseVertCoords MR_PreciseVertCoords
Generated from class MR::PreciseVertCoords.
Definition MRPrecisePredicates3.h:25
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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:19
#define MRC_API
Definition exports.h:11
Definition MRBox.h:117
Definition MRVector3.h:51
Definition MRVector3.h:33
Definition MRId.h:56