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
43
47
54
58
62
68
74
80
86
92
98
104
109
115
119
124
130
133
136
141
145
150
153
156
161
167
184MRC_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);
185
202MRC_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);
203
209
214
220
226
231
237
243
248
254
260
265
271
277
282
288
292
297
301
304
307
312
315
318
324
338MRC_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);
339
345
350
356
362
368
374
380
386
392
398
403
409
413
418
421
424
428
431
436
439
442
447
453
459
465
471
477
482
488
494
499
505
511
516
522
528
533
539
543
548
553
556
559
564
567
570
576
582
588
594
600
605
611
617
622
628
634
639
645
651
656
662
666
671
676
679
682
687
690
693
699
708
716
725MRC_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);
726
734MRC_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);
735
746
756
757#ifdef __cplusplus
758} // extern "C"
759#endif
struct MR_UndirectedEdgeBitSet MR_UndirectedEdgeBitSet
Definition MRAABBTreeBase.h:28
struct MR_VertBitSet MR_VertBitSet
Definition MRAABBTree.h:22
struct MR_AABBTree MR_AABBTree
Definition MRAABBTree.h:32
struct MR_FaceBitSet MR_FaceBitSet
Definition MRAABBTree.h:17
struct MR_MeshPart MR_MeshPart
Definition MRAABBTree.h:19
struct MR_MeshTriPoint MR_MeshTriPoint
Definition MRAggregateFlow.h:13
struct MR_Plane3f MR_Plane3f
Definition MRBestFit.h:22
struct MR_Line3d MR_Line3d
Definition MRBestFit.h:16
struct MR_Line3f MR_Line3f
Definition MRBestFit.h:17
struct MR_std_vector_MR_Vector3f MR_std_vector_MR_Vector3f
Definition MRBestFit.h:25
struct MR_BitSet MR_BitSet
Definition MRBitSet.h:195
struct MR_Mesh MR_Mesh
Definition MRCtm.h:16
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:23
MRC_API bool MR_MultiMeshIntersectionResult_ConvertTo_bool(const MR_MultiMeshIntersectionResult *_this)
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 MR_PointOnFace * MR_MultiMeshIntersectionResult_Get_proj(const MR_MultiMeshIntersectionResult *_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_MultiMeshIntersectionResult_Set_proj(MR_MultiMeshIntersectionResult *_this, const MR_PointOnFace *value)
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 MR_PointOnFace * MR_MultiMeshIntersectionResult_GetMutable_proj(MR_MultiMeshIntersectionResult *_this)
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
Definition MRMeshIntersect.h:57
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
Definition MRMeshIntersect.h:61
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
Definition MRMeshIntersect.h:46
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:53
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 void MR_MultiMeshIntersectionResult_Set_mtp(MR_MultiMeshIntersectionResult *_this, const MR_MeshTriPoint *value)
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...
MRC_API void MR_MultiMeshIntersectionResult_Set_distanceAlongLine(MR_MultiMeshIntersectionResult *_this, float value)
struct MR_MeshIntersectionResult MR_MeshIntersectionResult
Definition MRMeshIntersect.h:42
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 float * MR_MultiMeshIntersectionResult_GetMutable_distanceAlongLine(MR_MultiMeshIntersectionResult *_this)
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 const MR_MeshTriPoint * MR_MultiMeshIntersectionResult_Get_mtp(const MR_MultiMeshIntersectionResult *_this)
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 const float * MR_MultiMeshIntersectionResult_Get_distanceAlongLine(const MR_MultiMeshIntersectionResult *_this)
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 MR_MeshTriPoint * MR_MultiMeshIntersectionResult_GetMutable_mtp(MR_MultiMeshIntersectionResult *_this)
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)
struct MR_std_vector_float MR_std_vector_float
Definition MRPdf.h:27
MR_PassBy
Definition common.h:23
#define MRC_API
Definition exports.h:11