MeshLib C Docs
Loading...
Searching...
No Matches
MRMeshIntersect.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMisc/common.h>
4#include <MRCMisc/exports.h>
5
6#include <stdbool.h>
7#include <stddef.h>
8
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13typedef struct MR_AABBTree MR_AABBTree; // Defined in `#include <MRCMesh/MRAABBTree.h>`.
14typedef struct MR_BitSet MR_BitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
15typedef struct MR_FaceBitSet MR_FaceBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
16typedef struct MR_IntersectionPrecomputes_double MR_IntersectionPrecomputes_double; // Defined in `#include <MRCMesh/MRIntersectionPrecomputes.h>`.
17typedef struct MR_IntersectionPrecomputes_float MR_IntersectionPrecomputes_float; // Defined in `#include <MRCMesh/MRIntersectionPrecomputes.h>`.
18typedef struct MR_Line3d MR_Line3d; // Defined in `#include <MRCMesh/MRLine.h>`.
19typedef struct MR_Line3f MR_Line3f; // Defined in `#include <MRCMesh/MRLine.h>`.
20typedef struct MR_Mesh MR_Mesh; // Defined in `#include <MRCMesh/MRMesh.h>`.
21typedef struct MR_MeshPart MR_MeshPart; // Defined in `#include <MRCMesh/MRMeshPart.h>`.
22typedef struct MR_MeshTriPoint MR_MeshTriPoint; // Defined in `#include <MRCMesh/MRMeshTriPoint.h>`.
23typedef struct MR_Plane3f MR_Plane3f; // Defined in `#include <MRCMesh/MRPlane3.h>`.
24typedef struct MR_PointOnFace MR_PointOnFace; // Defined in `#include <MRCMesh/MRPointOnFace.h>`.
25typedef struct MR_UndirectedEdgeBitSet MR_UndirectedEdgeBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
26typedef struct MR_VertBitSet MR_VertBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
27typedef struct MR_std_function_bool_from_MR_FaceId MR_std_function_bool_from_MR_FaceId; // Defined in `#include <MRCMisc/std_function_bool_from_MR_FaceId.h>`.
28typedef struct MR_std_function_bool_from_const_MR_MeshIntersectionResult_ref MR_std_function_bool_from_const_MR_MeshIntersectionResult_ref; // Defined in `#include <MRCMisc/std_function_bool_from_const_MR_MeshIntersectionResult_ref.h>`.
29typedef struct MR_std_vector_MR_FaceId MR_std_vector_MR_FaceId; // Defined in `#include <MRCMisc/std_vector_MR_FaceId.h>`.
30typedef struct MR_std_vector_MR_Line3Mesh_double MR_std_vector_MR_Line3Mesh_double; // Defined in `#include <MRCMisc/std_vector_MR_Line3Mesh_double.h>`.
31typedef struct MR_std_vector_MR_Line3Mesh_float MR_std_vector_MR_Line3Mesh_float; // Defined in `#include <MRCMisc/std_vector_MR_Line3Mesh_float.h>`.
32typedef struct MR_std_vector_MR_TriPointf MR_std_vector_MR_TriPointf; // Defined in `#include <MRCMisc/std_vector_MR_TriPointf.h>`.
33typedef struct MR_std_vector_MR_Vector3f MR_std_vector_MR_Vector3f; // Defined in `#include <MRCMisc/std_vector_MR_Vector3f.h>`.
34typedef struct MR_std_vector_float MR_std_vector_float; // Defined in `#include <MRCMisc/std_vector_float.h>`.
35
36
42
45
51
54
57
63
69
75
81
87
93
99
104
110
114
119
125
128
131
136
140
145
148
151
156
162
178MRC_API MR_MeshIntersectionResult *MR_rayMeshIntersect_MR_Line3f(const MR_MeshPart *meshPart, const MR_Line3f *line, const float *rayStart, const float *rayEnd, const MR_IntersectionPrecomputes_float *prec, const bool *closestIntersect, const MR_std_function_bool_from_MR_FaceId *validFaces);
179
195MRC_API MR_MeshIntersectionResult *MR_rayMeshIntersect_MR_Line3d(const MR_MeshPart *meshPart, const MR_Line3d *line, const double *rayStart, const double *rayEnd, const MR_IntersectionPrecomputes_double *prec, const bool *closestIntersect, const MR_std_function_bool_from_MR_FaceId *validFaces);
196
202
207
213
219
224
230
236
241
247
253
258
264
270
275
281
285
290
294
297
300
305
308
311
317
331MRC_API void MR_multiRayMeshIntersect(const MR_MeshPart *meshPart, const MR_std_vector_MR_Vector3f *origins, const MR_std_vector_MR_Vector3f *dirs, const MR_MultiRayMeshIntersectResult *result, const float *rayStart, const float *rayEnd, const bool *closestIntersect, const MR_std_function_bool_from_MR_FaceId *validFaces);
332
338
343
349
353
358
361
364
368
371
376
379
382
388
394
400
406
412
417
423
429
434
440
446
451
457
463
468
474
478
483
488
491
494
499
502
505
511
517
523
529
535
540
546
552
557
563
569
574
580
586
591
597
601
606
611
614
617
622
625
628
634
643
651
660MRC_API void MR_rayMeshIntersectAll_MR_Line3f(const MR_MeshPart *meshPart, const MR_Line3f *line, MR_PassBy callback_pass_by, MR_std_function_bool_from_const_MR_MeshIntersectionResult_ref *callback, const float *rayStart, const float *rayEnd, const MR_IntersectionPrecomputes_float *prec);
661
669MRC_API void MR_rayMeshIntersectAll_MR_Line3d(const MR_MeshPart *meshPart, const MR_Line3d *line, MR_PassBy callback_pass_by, MR_std_function_bool_from_const_MR_MeshIntersectionResult_ref *callback, const double *rayStart, const double *rayEnd, const MR_IntersectionPrecomputes_double *prec);
670
681
691
692#ifdef __cplusplus
693} // extern "C"
694#endif
struct MR_FaceBitSet MR_FaceBitSet
Definition MRAABBTreeBase.h:25
struct MR_UndirectedEdgeBitSet MR_UndirectedEdgeBitSet
Definition MRAABBTreeBase.h:29
struct MR_VertBitSet MR_VertBitSet
Definition MRAABBTree.h:15
struct MR_AABBTree MR_AABBTree
Definition MRAABBTree.h:23
struct MR_MeshPart MR_MeshPart
Definition MRAABBTree.h:14
struct MR_MeshTriPoint MR_MeshTriPoint
Definition MRAggregateFlow.h:13
struct MR_Plane3f MR_Plane3f
Definition MRBestFit.h:23
struct MR_std_vector_float MR_std_vector_float
Definition MRBestFit.h:27
struct MR_Line3d MR_Line3d
Definition MRBestFit.h:17
struct MR_Line3f MR_Line3f
Definition MRBestFit.h:18
struct MR_std_vector_MR_Vector3f MR_std_vector_MR_Vector3f
Definition MRBestFit.h:26
struct MR_BitSet MR_BitSet
Definition MRBitSet.h:179
struct MR_Mesh MR_Mesh
Definition MRCtm.h:13
struct MR_std_function_bool_from_MR_FaceId MR_std_function_bool_from_MR_FaceId
Definition MREnumNeighbours.h:18
struct MR_PointOnFace MR_PointOnFace
Definition MREnumNeighbours.h:15
struct MR_std_vector_MR_FaceId MR_std_vector_MR_FaceId
Definition MRExtractIsolines.h:24
struct MR_IntersectionPrecomputes_float MR_IntersectionPrecomputes_float
Definition MRIntersectionPrecomputes.h:17
struct MR_IntersectionPrecomputes_double MR_IntersectionPrecomputes_double
Definition MRIntersectionPrecomputes.h:22
MRC_API void MR_Line3Mesh_double_Set_tree(MR_Line3Mesh_double *_this, const MR_AABBTree *value)
MRC_API const MR_MeshTriPoint * MR_MeshIntersectionResult_Get_mtp(const MR_MeshIntersectionResult *_this)
MRC_API float * MR_MeshIntersectionResult_GetMutable_distanceAlongLine(MR_MeshIntersectionResult *_this)
MRC_API const float * MR_MeshIntersectionResult_Get_distanceAlongLine(const MR_MeshIntersectionResult *_this)
MRC_API MR_MultiMeshIntersectionResult * MR_MultiMeshIntersectionResult_OffsetMutablePtr(MR_MultiMeshIntersectionResult *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_MeshIntersectionResult * MR_MeshIntersectionResult_ConstructFromAnother(const MR_MeshIntersectionResult *_other)
MRC_API void MR_MultiRayMeshIntersectResult_Set_isectPts(MR_MultiRayMeshIntersectResult *_this, MR_std_vector_MR_Vector3f *value)
MRC_API MR_MultiRayMeshIntersectResult * MR_MultiRayMeshIntersectResult_AssignFromAnother(MR_MultiRayMeshIntersectResult *_this, const MR_MultiRayMeshIntersectResult *_other)
MRC_API void MR_rayMeshIntersectAll_MR_Line3d(const MR_MeshPart *meshPart, const MR_Line3d *line, MR_PassBy callback_pass_by, MR_std_function_bool_from_const_MR_MeshIntersectionResult_ref *callback, const double *rayStart, const double *rayEnd, const MR_IntersectionPrecomputes_double *prec)
MRC_API MR_MultiRayMeshIntersectResult * MR_MultiRayMeshIntersectResult_OffsetMutablePtr(MR_MultiRayMeshIntersectResult *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 void MR_Line3Mesh_float_Set_prec(MR_Line3Mesh_float *_this, MR_IntersectionPrecomputes_float *value)
MRC_API MR_MeshIntersectionResult * MR_rayMeshIntersect_MR_Line3f(const MR_MeshPart *meshPart, const MR_Line3f *line, const float *rayStart, const float *rayEnd, const MR_IntersectionPrecomputes_float *prec, const bool *closestIntersect, const MR_std_function_bool_from_MR_FaceId *validFaces)
MRC_API void MR_Line3Mesh_float_DestroyArray(const MR_Line3Mesh_float *_this)
Destroys a heap-allocated array of MR_Line3Mesh_float. Does nothing if the pointer is null.
MRC_API MR_MultiRayMeshIntersectResult * MR_MultiRayMeshIntersectResult_DefaultConstruct(void)
MRC_API const MR_Mesh *const * MR_MultiMeshIntersectionResult_Get_mesh(const MR_MultiMeshIntersectionResult *_this)
MRC_API MR_MultiRayMeshIntersectResult * MR_MultiRayMeshIntersectResult_ConstructFrom(MR_BitSet *intersectingRays, MR_std_vector_float *rayDistances, MR_std_vector_MR_FaceId *isectFaces, MR_std_vector_MR_TriPointf *isectBary, MR_std_vector_MR_Vector3f *isectPts)
MRC_API const MR_MultiRayMeshIntersectResult * MR_MultiRayMeshIntersectResult_OffsetPtr(const MR_MultiRayMeshIntersectResult *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_vector_MR_FaceId ** MR_MultiRayMeshIntersectResult_GetMutable_isectFaces(MR_MultiRayMeshIntersectResult *_this)
MRC_API MR_std_vector_MR_Vector3f *const * MR_MultiRayMeshIntersectResult_Get_isectPts(const MR_MultiRayMeshIntersectResult *_this)
MRC_API void MR_Line3Mesh_float_Set_mesh(MR_Line3Mesh_float *_this, const MR_Mesh *value)
MRC_API const MR_AABBTree ** MR_Line3Mesh_float_GetMutable_tree(MR_Line3Mesh_float *_this)
MRC_API MR_MultiMeshIntersectionResult * MR_rayMultiMeshAnyIntersect_std_vector_MR_Line3Mesh_double(const MR_std_vector_MR_Line3Mesh_double *lineMeshes, const double *rayStart, const double *rayEnd)
MRC_API void MR_MeshIntersectionResult_Destroy(const MR_MeshIntersectionResult *_this)
Destroys a heap-allocated instance of MR_MeshIntersectionResult. Does nothing if the pointer is null.
MRC_API MR_Line3d * MR_Line3Mesh_double_GetMutable_line(MR_Line3Mesh_double *_this)
struct MR_std_function_bool_from_const_MR_MeshIntersectionResult_ref MR_std_function_bool_from_const_MR_MeshIntersectionResult_ref
Definition MRMeshIntersect.h:28
MRC_API const MR_MeshIntersectionResult * MR_MultiMeshIntersectionResult_UpcastTo_MR_MeshIntersectionResult(const MR_MultiMeshIntersectionResult *object)
MRC_API MR_Line3Mesh_double * MR_Line3Mesh_double_OffsetMutablePtr(MR_Line3Mesh_double *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_Mesh ** MR_MultiMeshIntersectionResult_GetMutable_mesh(MR_MultiMeshIntersectionResult *_this)
MRC_API const MR_Mesh ** MR_Line3Mesh_float_GetMutable_mesh(MR_Line3Mesh_float *_this)
MRC_API const MR_AABBTree *const * MR_Line3Mesh_float_Get_tree(const MR_Line3Mesh_float *_this)
MRC_API void MR_Line3Mesh_double_Set_mesh(MR_Line3Mesh_double *_this, const MR_Mesh *value)
MRC_API MR_Line3Mesh_float * MR_Line3Mesh_float_ConstructFromAnother(const MR_Line3Mesh_float *_other)
MRC_API MR_BitSet *const * MR_MultiRayMeshIntersectResult_Get_intersectingRays(const MR_MultiRayMeshIntersectResult *_this)
MRC_API void MR_multiRayMeshIntersect(const MR_MeshPart *meshPart, const MR_std_vector_MR_Vector3f *origins, const MR_std_vector_MR_Vector3f *dirs, const MR_MultiRayMeshIntersectResult *result, const float *rayStart, const float *rayEnd, const bool *closestIntersect, const MR_std_function_bool_from_MR_FaceId *validFaces)
struct MR_Line3Mesh_float MR_Line3Mesh_float
Generated from class MR::Line3Mesh<float>.
Definition MRMeshIntersect.h:53
struct MR_std_vector_MR_Line3Mesh_float MR_std_vector_MR_Line3Mesh_float
Definition MRMeshIntersect.h:31
MRC_API void MR_MultiMeshIntersectionResult_DestroyArray(const MR_MultiMeshIntersectionResult *_this)
Destroys a heap-allocated array of MR_MultiMeshIntersectionResult. Does nothing if the pointer is nul...
MRC_API const MR_Mesh *const * MR_Line3Mesh_float_Get_mesh(const MR_Line3Mesh_float *_this)
MRC_API void MR_Line3Mesh_float_Set_region(MR_Line3Mesh_float *_this, const MR_FaceBitSet *value)
MRC_API MR_MeshIntersectionResult * MR_rayMeshIntersect_MR_Line3d(const MR_MeshPart *meshPart, const MR_Line3d *line, const double *rayStart, const double *rayEnd, const MR_IntersectionPrecomputes_double *prec, const bool *closestIntersect, const MR_std_function_bool_from_MR_FaceId *validFaces)
MRC_API void MR_MeshIntersectionResult_DestroyArray(const MR_MeshIntersectionResult *_this)
Destroys a heap-allocated array of MR_MeshIntersectionResult. Does nothing if the pointer is null.
MRC_API MR_MeshIntersectionResult * MR_MultiMeshIntersectionResult_MutableUpcastTo_MR_MeshIntersectionResult(MR_MultiMeshIntersectionResult *object)
Upcasts an instance of MR::MultiMeshIntersectionResult to its base class MR::MeshIntersectionResult.
MRC_API MR_IntersectionPrecomputes_float *const * MR_Line3Mesh_float_Get_prec(const MR_Line3Mesh_float *_this)
MRC_API void MR_MeshIntersectionResult_Set_proj(MR_MeshIntersectionResult *_this, const MR_PointOnFace *value)
MRC_API const MR_Mesh *const * MR_Line3Mesh_double_Get_mesh(const MR_Line3Mesh_double *_this)
MRC_API const MR_Line3Mesh_double * MR_Line3Mesh_double_OffsetPtr(const MR_Line3Mesh_double *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_Line3Mesh_double MR_Line3Mesh_double
Generated from class MR::Line3Mesh<double>.
Definition MRMeshIntersect.h:56
MRC_API const MR_Line3d * MR_Line3Mesh_double_Get_line(const MR_Line3Mesh_double *_this)
MRC_API void MR_Line3Mesh_float_Set_line(MR_Line3Mesh_float *_this, const MR_Line3f *value)
MRC_API MR_MultiMeshIntersectionResult * MR_MultiMeshIntersectionResult_ConstructFromAnother(const MR_MultiMeshIntersectionResult *_other)
MRC_API MR_Line3Mesh_float * MR_Line3Mesh_float_OffsetMutablePtr(MR_Line3Mesh_float *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 void MR_Line3Mesh_float_Destroy(const MR_Line3Mesh_float *_this)
Destroys a heap-allocated instance of MR_Line3Mesh_float. Does nothing if the pointer is null.
MRC_API MR_IntersectionPrecomputes_double *const * MR_Line3Mesh_double_Get_prec(const MR_Line3Mesh_double *_this)
MRC_API void MR_MultiMeshIntersectionResult_Destroy(const MR_MultiMeshIntersectionResult *_this)
Destroys a heap-allocated instance of MR_MultiMeshIntersectionResult. Does nothing if the pointer is ...
MRC_API const MR_MeshIntersectionResult * MR_MeshIntersectionResult_OffsetPtr(const MR_MeshIntersectionResult *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 void MR_MultiRayMeshIntersectResult_DestroyArray(const MR_MultiRayMeshIntersectResult *_this)
Destroys a heap-allocated array of MR_MultiRayMeshIntersectResult. Does nothing if the pointer is nul...
MRC_API const MR_FaceBitSet ** MR_Line3Mesh_double_GetMutable_region(MR_Line3Mesh_double *_this)
MRC_API MR_IntersectionPrecomputes_double ** MR_Line3Mesh_double_GetMutable_prec(MR_Line3Mesh_double *_this)
struct MR_MultiRayMeshIntersectResult MR_MultiRayMeshIntersectResult
Generated from class MR::MultiRayMeshIntersectResult.
Definition MRMeshIntersect.h:44
MRC_API MR_MeshIntersectionResult * MR_MeshIntersectionResult_ConstructFrom(const MR_PointOnFace *proj, const MR_MeshTriPoint *mtp, float distanceAlongLine)
MRC_API const MR_AABBTree *const * MR_Line3Mesh_double_Get_tree(const MR_Line3Mesh_double *_this)
MRC_API void MR_Line3Mesh_double_DestroyArray(const MR_Line3Mesh_double *_this)
Destroys a heap-allocated array of MR_Line3Mesh_double. Does nothing if the pointer is null.
MRC_API void MR_Line3Mesh_double_Set_line(MR_Line3Mesh_double *_this, const MR_Line3d *value)
MRC_API MR_Line3Mesh_float * MR_Line3Mesh_float_ConstructFrom(const MR_Line3f *line, MR_IntersectionPrecomputes_float *prec, const MR_Mesh *mesh, const MR_AABBTree *tree, const MR_FaceBitSet *region)
MRC_API MR_BitSet ** MR_MultiRayMeshIntersectResult_GetMutable_intersectingRays(MR_MultiRayMeshIntersectResult *_this)
MRC_API MR_MeshTriPoint * MR_MeshIntersectionResult_GetMutable_mtp(MR_MeshIntersectionResult *_this)
MRC_API MR_Line3f * MR_Line3Mesh_float_GetMutable_line(MR_Line3Mesh_float *_this)
MRC_API MR_std_vector_MR_TriPointf ** MR_MultiRayMeshIntersectResult_GetMutable_isectBary(MR_MultiRayMeshIntersectResult *_this)
MRC_API const MR_Line3Mesh_float * MR_Line3Mesh_float_OffsetPtr(const MR_Line3Mesh_float *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_Line3Mesh_double * MR_Line3Mesh_double_ConstructFrom(const MR_Line3d *line, MR_IntersectionPrecomputes_double *prec, const MR_Mesh *mesh, const MR_AABBTree *tree, const MR_FaceBitSet *region)
MRC_API void MR_MultiMeshIntersectionResult_Set_mesh(MR_MultiMeshIntersectionResult *_this, const MR_Mesh *value)
MRC_API MR_std_vector_MR_FaceId *const * MR_MultiRayMeshIntersectResult_Get_isectFaces(const MR_MultiRayMeshIntersectResult *_this)
MRC_API const MR_AABBTree ** MR_Line3Mesh_double_GetMutable_tree(MR_Line3Mesh_double *_this)
MRC_API void MR_MultiRayMeshIntersectResult_Destroy(const MR_MultiRayMeshIntersectResult *_this)
Destroys a heap-allocated instance of MR_MultiRayMeshIntersectResult. Does nothing if the pointer is ...
struct MR_std_vector_MR_Line3Mesh_double MR_std_vector_MR_Line3Mesh_double
Definition MRMeshIntersect.h:30
MRC_API MR_MeshIntersectionResult * MR_MeshIntersectionResult_DefaultConstructArray(size_t num_elems)
MRC_API const MR_FaceBitSet ** MR_Line3Mesh_float_GetMutable_region(MR_Line3Mesh_float *_this)
MRC_API const MR_FaceBitSet *const * MR_Line3Mesh_double_Get_region(const MR_Line3Mesh_double *_this)
MRC_API const MR_FaceBitSet *const * MR_Line3Mesh_float_Get_region(const MR_Line3Mesh_float *_this)
MRC_API void MR_MultiRayMeshIntersectResult_Set_rayDistances(MR_MultiRayMeshIntersectResult *_this, MR_std_vector_float *value)
MRC_API MR_std_vector_float *const * MR_MultiRayMeshIntersectResult_Get_rayDistances(const MR_MultiRayMeshIntersectResult *_this)
MRC_API MR_std_vector_MR_TriPointf *const * MR_MultiRayMeshIntersectResult_Get_isectBary(const MR_MultiRayMeshIntersectResult *_this)
MRC_API const MR_MultiMeshIntersectionResult * MR_MultiMeshIntersectionResult_OffsetPtr(const MR_MultiMeshIntersectionResult *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_vector_MR_Vector3f ** MR_MultiRayMeshIntersectResult_GetMutable_isectPts(MR_MultiRayMeshIntersectResult *_this)
MRC_API MR_std_vector_float ** MR_MultiRayMeshIntersectResult_GetMutable_rayDistances(MR_MultiRayMeshIntersectResult *_this)
MRC_API void MR_Line3Mesh_double_Set_prec(MR_Line3Mesh_double *_this, MR_IntersectionPrecomputes_double *value)
struct MR_MultiMeshIntersectionResult MR_MultiMeshIntersectionResult
Definition MRMeshIntersect.h:50
MRC_API MR_Line3Mesh_float * MR_Line3Mesh_float_DefaultConstructArray(size_t num_elems)
struct MR_std_vector_MR_TriPointf MR_std_vector_MR_TriPointf
Definition MRMeshIntersect.h:32
MRC_API MR_Line3Mesh_float * MR_Line3Mesh_float_DefaultConstruct(void)
MRC_API bool MR_MeshIntersectionResult_ConvertTo_bool(const MR_MeshIntersectionResult *_this)
MRC_API MR_MultiMeshIntersectionResult * MR_rayMultiMeshAnyIntersect_std_vector_MR_Line3Mesh_float(const MR_std_vector_MR_Line3Mesh_float *lineMeshes, const float *rayStart, const float *rayEnd)
MRC_API MR_IntersectionPrecomputes_float ** MR_Line3Mesh_float_GetMutable_prec(MR_Line3Mesh_float *_this)
MRC_API MR_MeshIntersectionResult * MR_MeshIntersectionResult_DefaultConstruct(void)
MRC_API MR_MultiMeshIntersectionResult * MR_MultiMeshIntersectionResult_DefaultConstructArray(size_t num_elems)
MRC_API MR_Line3Mesh_double * MR_Line3Mesh_double_DefaultConstruct(void)
MRC_API MR_MultiMeshIntersectionResult * MR_MultiMeshIntersectionResult_AssignFromAnother(MR_MultiMeshIntersectionResult *_this, const MR_MultiMeshIntersectionResult *_other)
MRC_API void MR_planeMeshIntersect(const MR_MeshPart *meshPart, const MR_Plane3f *plane, MR_FaceBitSet *fs, MR_UndirectedEdgeBitSet *ues, MR_VertBitSet *vs, MR_std_vector_MR_FaceId *fsVec)
MRC_API const MR_PointOnFace * MR_MeshIntersectionResult_Get_proj(const MR_MeshIntersectionResult *_this)
MRC_API void MR_MeshIntersectionResult_Set_distanceAlongLine(MR_MeshIntersectionResult *_this, float value)
MRC_API MR_MeshIntersectionResult * MR_MeshIntersectionResult_OffsetMutablePtr(MR_MeshIntersectionResult *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_MeshIntersectionResult MR_MeshIntersectionResult
Definition MRMeshIntersect.h:41
MRC_API void MR_MultiRayMeshIntersectResult_Set_isectFaces(MR_MultiRayMeshIntersectResult *_this, MR_std_vector_MR_FaceId *value)
MRC_API void MR_Line3Mesh_float_Set_tree(MR_Line3Mesh_float *_this, const MR_AABBTree *value)
MRC_API MR_Line3Mesh_float * MR_Line3Mesh_float_AssignFromAnother(MR_Line3Mesh_float *_this, const MR_Line3Mesh_float *_other)
MRC_API MR_Line3Mesh_double * MR_Line3Mesh_double_AssignFromAnother(MR_Line3Mesh_double *_this, const MR_Line3Mesh_double *_other)
MRC_API void MR_xyPlaneMeshIntersect(const MR_MeshPart *meshPart, float zLevel, MR_FaceBitSet *fs, MR_UndirectedEdgeBitSet *ues, MR_VertBitSet *vs, MR_std_vector_MR_FaceId *fsVec)
MRC_API MR_MultiRayMeshIntersectResult * MR_MultiRayMeshIntersectResult_ConstructFromAnother(const MR_MultiRayMeshIntersectResult *_other)
MRC_API const MR_Mesh ** MR_Line3Mesh_double_GetMutable_mesh(MR_Line3Mesh_double *_this)
MRC_API void MR_Line3Mesh_double_Destroy(const MR_Line3Mesh_double *_this)
Destroys a heap-allocated instance of MR_Line3Mesh_double. Does nothing if the pointer is null.
MRC_API void MR_MeshIntersectionResult_Set_mtp(MR_MeshIntersectionResult *_this, const MR_MeshTriPoint *value)
MRC_API MR_MeshIntersectionResult * MR_MeshIntersectionResult_AssignFromAnother(MR_MeshIntersectionResult *_this, const MR_MeshIntersectionResult *_other)
MRC_API void MR_Line3Mesh_double_Set_region(MR_Line3Mesh_double *_this, const MR_FaceBitSet *value)
MRC_API MR_MultiRayMeshIntersectResult * MR_MultiRayMeshIntersectResult_DefaultConstructArray(size_t num_elems)
MRC_API const MR_Line3f * MR_Line3Mesh_float_Get_line(const MR_Line3Mesh_float *_this)
MRC_API MR_MultiMeshIntersectionResult * MR_MultiMeshIntersectionResult_DefaultConstruct(void)
MRC_API MR_MultiMeshIntersectionResult * MR_MeshIntersectionResult_MutableStaticDowncastTo_MR_MultiMeshIntersectionResult(MR_MeshIntersectionResult *object)
MRC_API void MR_rayMeshIntersectAll_MR_Line3f(const MR_MeshPart *meshPart, const MR_Line3f *line, MR_PassBy callback_pass_by, MR_std_function_bool_from_const_MR_MeshIntersectionResult_ref *callback, const float *rayStart, const float *rayEnd, const MR_IntersectionPrecomputes_float *prec)
MRC_API MR_Line3Mesh_double * MR_Line3Mesh_double_ConstructFromAnother(const MR_Line3Mesh_double *_other)
MRC_API MR_Line3Mesh_double * MR_Line3Mesh_double_DefaultConstructArray(size_t num_elems)
MRC_API void MR_MultiRayMeshIntersectResult_Set_intersectingRays(MR_MultiRayMeshIntersectResult *_this, MR_BitSet *value)
MRC_API const MR_MultiMeshIntersectionResult * MR_MeshIntersectionResult_StaticDowncastTo_MR_MultiMeshIntersectionResult(const MR_MeshIntersectionResult *object)
MRC_API MR_PointOnFace * MR_MeshIntersectionResult_GetMutable_proj(MR_MeshIntersectionResult *_this)
MRC_API void MR_MultiRayMeshIntersectResult_Set_isectBary(MR_MultiRayMeshIntersectResult *_this, MR_std_vector_MR_TriPointf *value)
MR_PassBy
Definition common.h:19
#define MRC_API
Definition exports.h:11