MeshLib C Docs
Loading...
Searching...
No Matches
MRMeshIntersect.h File Reference
#include <MRCMisc/common.h>
#include <MRCMisc/exports.h>
#include <stdbool.h>
#include <stddef.h>

Go to the source code of this file.

Typedefs

typedef struct MR_AABBTree MR_AABBTree
 
typedef struct MR_BitSet MR_BitSet
 
typedef struct MR_FaceBitSet MR_FaceBitSet
 
typedef struct MR_IntersectionPrecomputes_double MR_IntersectionPrecomputes_double
 
typedef struct MR_IntersectionPrecomputes_float MR_IntersectionPrecomputes_float
 
typedef struct MR_Line3d MR_Line3d
 
typedef struct MR_Line3f MR_Line3f
 
typedef struct MR_Mesh MR_Mesh
 
typedef struct MR_MeshPart MR_MeshPart
 
typedef struct MR_MeshTriPoint MR_MeshTriPoint
 
typedef struct MR_Plane3f MR_Plane3f
 
typedef struct MR_PointOnFace MR_PointOnFace
 
typedef struct MR_UndirectedEdgeBitSet MR_UndirectedEdgeBitSet
 
typedef struct MR_VertBitSet MR_VertBitSet
 
typedef struct MR_std_function_bool_from_MR_FaceId MR_std_function_bool_from_MR_FaceId
 
typedef struct MR_std_function_bool_from_const_MR_MeshIntersectionResult_ref MR_std_function_bool_from_const_MR_MeshIntersectionResult_ref
 
typedef struct MR_std_vector_MR_FaceId MR_std_vector_MR_FaceId
 
typedef struct MR_std_vector_MR_Line3Mesh_double MR_std_vector_MR_Line3Mesh_double
 
typedef struct MR_std_vector_MR_Line3Mesh_float MR_std_vector_MR_Line3Mesh_float
 
typedef struct MR_std_vector_MR_TriPointf MR_std_vector_MR_TriPointf
 
typedef struct MR_std_vector_MR_Vector3f MR_std_vector_MR_Vector3f
 
typedef struct MR_std_vector_float MR_std_vector_float
 
typedef struct MR_MeshIntersectionResult MR_MeshIntersectionResult
 
typedef struct MR_MultiRayMeshIntersectResult MR_MultiRayMeshIntersectResult
 Generated from class MR::MultiRayMeshIntersectResult.
 
typedef struct MR_MultiMeshIntersectionResult MR_MultiMeshIntersectionResult
 
typedef struct MR_Line3Mesh_float MR_Line3Mesh_float
 Generated from class MR::Line3Mesh<float>.
 
typedef struct MR_Line3Mesh_double MR_Line3Mesh_double
 Generated from class MR::Line3Mesh<double>.
 

Functions

MRC_API const MR_PointOnFaceMR_MeshIntersectionResult_Get_proj (const MR_MeshIntersectionResult *_this)
 
MRC_API void MR_MeshIntersectionResult_Set_proj (MR_MeshIntersectionResult *_this, const MR_PointOnFace *value)
 
MRC_API MR_PointOnFaceMR_MeshIntersectionResult_GetMutable_proj (MR_MeshIntersectionResult *_this)
 
MRC_API const MR_MeshTriPointMR_MeshIntersectionResult_Get_mtp (const MR_MeshIntersectionResult *_this)
 
MRC_API void MR_MeshIntersectionResult_Set_mtp (MR_MeshIntersectionResult *_this, const MR_MeshTriPoint *value)
 
MRC_API MR_MeshTriPointMR_MeshIntersectionResult_GetMutable_mtp (MR_MeshIntersectionResult *_this)
 
MRC_API const float * MR_MeshIntersectionResult_Get_distanceAlongLine (const MR_MeshIntersectionResult *_this)
 
MRC_API void MR_MeshIntersectionResult_Set_distanceAlongLine (MR_MeshIntersectionResult *_this, float value)
 
MRC_API float * MR_MeshIntersectionResult_GetMutable_distanceAlongLine (MR_MeshIntersectionResult *_this)
 
MRC_API MR_MeshIntersectionResultMR_MeshIntersectionResult_DefaultConstruct (void)
 
MRC_API MR_MeshIntersectionResultMR_MeshIntersectionResult_DefaultConstructArray (size_t num_elems)
 
MRC_API MR_MeshIntersectionResultMR_MeshIntersectionResult_ConstructFrom (const MR_PointOnFace *proj, const MR_MeshTriPoint *mtp, float distanceAlongLine)
 
MRC_API const MR_MeshIntersectionResultMR_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 pointer points to an array element.
 
MRC_API MR_MeshIntersectionResultMR_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 pointer points to an array element.
 
MRC_API const MR_MultiMeshIntersectionResultMR_MeshIntersectionResult_StaticDowncastTo_MR_MultiMeshIntersectionResult (const MR_MeshIntersectionResult *object)
 
MRC_API MR_MultiMeshIntersectionResultMR_MeshIntersectionResult_MutableStaticDowncastTo_MR_MultiMeshIntersectionResult (MR_MeshIntersectionResult *object)
 
MRC_API MR_MeshIntersectionResultMR_MeshIntersectionResult_ConstructFromAnother (const MR_MeshIntersectionResult *_other)
 
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 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 bool MR_MeshIntersectionResult_ConvertTo_bool (const MR_MeshIntersectionResult *_this)
 
MRC_API MR_MeshIntersectionResultMR_MeshIntersectionResult_AssignFromAnother (MR_MeshIntersectionResult *_this, const MR_MeshIntersectionResult *_other)
 
MRC_API MR_MeshIntersectionResultMR_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 MR_MeshIntersectionResultMR_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 MR_BitSet *const * MR_MultiRayMeshIntersectResult_Get_intersectingRays (const MR_MultiRayMeshIntersectResult *_this)
 
MRC_API void MR_MultiRayMeshIntersectResult_Set_intersectingRays (MR_MultiRayMeshIntersectResult *_this, MR_BitSet *value)
 
MRC_API MR_BitSet ** MR_MultiRayMeshIntersectResult_GetMutable_intersectingRays (MR_MultiRayMeshIntersectResult *_this)
 
MRC_API MR_std_vector_float *const * MR_MultiRayMeshIntersectResult_Get_rayDistances (const MR_MultiRayMeshIntersectResult *_this)
 
MRC_API void MR_MultiRayMeshIntersectResult_Set_rayDistances (MR_MultiRayMeshIntersectResult *_this, MR_std_vector_float *value)
 
MRC_API MR_std_vector_float ** MR_MultiRayMeshIntersectResult_GetMutable_rayDistances (MR_MultiRayMeshIntersectResult *_this)
 
MRC_API MR_std_vector_MR_FaceId *const * MR_MultiRayMeshIntersectResult_Get_isectFaces (const MR_MultiRayMeshIntersectResult *_this)
 
MRC_API void MR_MultiRayMeshIntersectResult_Set_isectFaces (MR_MultiRayMeshIntersectResult *_this, MR_std_vector_MR_FaceId *value)
 
MRC_API MR_std_vector_MR_FaceId ** MR_MultiRayMeshIntersectResult_GetMutable_isectFaces (MR_MultiRayMeshIntersectResult *_this)
 
MRC_API MR_std_vector_MR_TriPointf *const * MR_MultiRayMeshIntersectResult_Get_isectBary (const MR_MultiRayMeshIntersectResult *_this)
 
MRC_API void MR_MultiRayMeshIntersectResult_Set_isectBary (MR_MultiRayMeshIntersectResult *_this, MR_std_vector_MR_TriPointf *value)
 
MRC_API MR_std_vector_MR_TriPointf ** MR_MultiRayMeshIntersectResult_GetMutable_isectBary (MR_MultiRayMeshIntersectResult *_this)
 
MRC_API MR_std_vector_MR_Vector3f *const * MR_MultiRayMeshIntersectResult_Get_isectPts (const MR_MultiRayMeshIntersectResult *_this)
 
MRC_API void MR_MultiRayMeshIntersectResult_Set_isectPts (MR_MultiRayMeshIntersectResult *_this, MR_std_vector_MR_Vector3f *value)
 
MRC_API MR_std_vector_MR_Vector3f ** MR_MultiRayMeshIntersectResult_GetMutable_isectPts (MR_MultiRayMeshIntersectResult *_this)
 
MRC_API MR_MultiRayMeshIntersectResultMR_MultiRayMeshIntersectResult_DefaultConstruct (void)
 
MRC_API MR_MultiRayMeshIntersectResultMR_MultiRayMeshIntersectResult_DefaultConstructArray (size_t num_elems)
 
MRC_API MR_MultiRayMeshIntersectResultMR_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_MultiRayMeshIntersectResultMR_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 pointer points to an array element.
 
MRC_API MR_MultiRayMeshIntersectResultMR_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 pointer points to an array element.
 
MRC_API MR_MultiRayMeshIntersectResultMR_MultiRayMeshIntersectResult_ConstructFromAnother (const MR_MultiRayMeshIntersectResult *_other)
 
MRC_API void MR_MultiRayMeshIntersectResult_Destroy (const MR_MultiRayMeshIntersectResult *_this)
 Destroys a heap-allocated instance of MR_MultiRayMeshIntersectResult. Does nothing if the pointer is null.
 
MRC_API void MR_MultiRayMeshIntersectResult_DestroyArray (const MR_MultiRayMeshIntersectResult *_this)
 Destroys a heap-allocated array of MR_MultiRayMeshIntersectResult. Does nothing if the pointer is null.
 
MRC_API MR_MultiRayMeshIntersectResultMR_MultiRayMeshIntersectResult_AssignFromAnother (MR_MultiRayMeshIntersectResult *_this, const MR_MultiRayMeshIntersectResult *_other)
 
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)
 
MRC_API const MR_Mesh *const * MR_MultiMeshIntersectionResult_Get_mesh (const MR_MultiMeshIntersectionResult *_this)
 
MRC_API void MR_MultiMeshIntersectionResult_Set_mesh (MR_MultiMeshIntersectionResult *_this, const MR_Mesh *value)
 
MRC_API const MR_Mesh ** MR_MultiMeshIntersectionResult_GetMutable_mesh (MR_MultiMeshIntersectionResult *_this)
 
MRC_API MR_MultiMeshIntersectionResultMR_MultiMeshIntersectionResult_DefaultConstruct (void)
 
MRC_API MR_MultiMeshIntersectionResultMR_MultiMeshIntersectionResult_DefaultConstructArray (size_t num_elems)
 
MRC_API const MR_MultiMeshIntersectionResultMR_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 pointer points to an array element.
 
MRC_API MR_MultiMeshIntersectionResultMR_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 pointer points to an array element.
 
MRC_API const MR_MeshIntersectionResultMR_MultiMeshIntersectionResult_UpcastTo_MR_MeshIntersectionResult (const MR_MultiMeshIntersectionResult *object)
 
MRC_API MR_MeshIntersectionResultMR_MultiMeshIntersectionResult_MutableUpcastTo_MR_MeshIntersectionResult (MR_MultiMeshIntersectionResult *object)
 Upcasts an instance of MR::MultiMeshIntersectionResult to its base class MR::MeshIntersectionResult.
 
MRC_API MR_MultiMeshIntersectionResultMR_MultiMeshIntersectionResult_ConstructFromAnother (const MR_MultiMeshIntersectionResult *_other)
 
MRC_API void MR_MultiMeshIntersectionResult_Destroy (const MR_MultiMeshIntersectionResult *_this)
 Destroys a heap-allocated instance of MR_MultiMeshIntersectionResult. Does nothing if the pointer is null.
 
MRC_API void MR_MultiMeshIntersectionResult_DestroyArray (const MR_MultiMeshIntersectionResult *_this)
 Destroys a heap-allocated array of MR_MultiMeshIntersectionResult. Does nothing if the pointer is null.
 
MRC_API MR_MultiMeshIntersectionResultMR_MultiMeshIntersectionResult_AssignFromAnother (MR_MultiMeshIntersectionResult *_this, const MR_MultiMeshIntersectionResult *_other)
 
MRC_API const MR_Line3fMR_Line3Mesh_float_Get_line (const MR_Line3Mesh_float *_this)
 
MRC_API void MR_Line3Mesh_float_Set_line (MR_Line3Mesh_float *_this, const MR_Line3f *value)
 
MRC_API MR_Line3fMR_Line3Mesh_float_GetMutable_line (MR_Line3Mesh_float *_this)
 
MRC_API MR_IntersectionPrecomputes_float *const * MR_Line3Mesh_float_Get_prec (const MR_Line3Mesh_float *_this)
 
MRC_API void MR_Line3Mesh_float_Set_prec (MR_Line3Mesh_float *_this, MR_IntersectionPrecomputes_float *value)
 
MRC_API MR_IntersectionPrecomputes_float ** MR_Line3Mesh_float_GetMutable_prec (MR_Line3Mesh_float *_this)
 
MRC_API const MR_Mesh *const * MR_Line3Mesh_float_Get_mesh (const MR_Line3Mesh_float *_this)
 
MRC_API void MR_Line3Mesh_float_Set_mesh (MR_Line3Mesh_float *_this, const MR_Mesh *value)
 
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_float_Set_tree (MR_Line3Mesh_float *_this, const MR_AABBTree *value)
 
MRC_API const MR_AABBTree ** MR_Line3Mesh_float_GetMutable_tree (MR_Line3Mesh_float *_this)
 
MRC_API const MR_FaceBitSet *const * MR_Line3Mesh_float_Get_region (const MR_Line3Mesh_float *_this)
 
MRC_API void MR_Line3Mesh_float_Set_region (MR_Line3Mesh_float *_this, const MR_FaceBitSet *value)
 
MRC_API const MR_FaceBitSet ** MR_Line3Mesh_float_GetMutable_region (MR_Line3Mesh_float *_this)
 
MRC_API MR_Line3Mesh_floatMR_Line3Mesh_float_DefaultConstruct (void)
 
MRC_API MR_Line3Mesh_floatMR_Line3Mesh_float_DefaultConstructArray (size_t num_elems)
 
MRC_API MR_Line3Mesh_floatMR_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 const MR_Line3Mesh_floatMR_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 pointer points to an array element.
 
MRC_API MR_Line3Mesh_floatMR_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 pointer points to an array element.
 
MRC_API MR_Line3Mesh_floatMR_Line3Mesh_float_ConstructFromAnother (const MR_Line3Mesh_float *_other)
 
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 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_Line3Mesh_floatMR_Line3Mesh_float_AssignFromAnother (MR_Line3Mesh_float *_this, const MR_Line3Mesh_float *_other)
 
MRC_API const MR_Line3dMR_Line3Mesh_double_Get_line (const MR_Line3Mesh_double *_this)
 
MRC_API void MR_Line3Mesh_double_Set_line (MR_Line3Mesh_double *_this, const MR_Line3d *value)
 
MRC_API MR_Line3dMR_Line3Mesh_double_GetMutable_line (MR_Line3Mesh_double *_this)
 
MRC_API MR_IntersectionPrecomputes_double *const * MR_Line3Mesh_double_Get_prec (const MR_Line3Mesh_double *_this)
 
MRC_API void MR_Line3Mesh_double_Set_prec (MR_Line3Mesh_double *_this, MR_IntersectionPrecomputes_double *value)
 
MRC_API MR_IntersectionPrecomputes_double ** MR_Line3Mesh_double_GetMutable_prec (MR_Line3Mesh_double *_this)
 
MRC_API const MR_Mesh *const * MR_Line3Mesh_double_Get_mesh (const MR_Line3Mesh_double *_this)
 
MRC_API void MR_Line3Mesh_double_Set_mesh (MR_Line3Mesh_double *_this, const MR_Mesh *value)
 
MRC_API const MR_Mesh ** MR_Line3Mesh_double_GetMutable_mesh (MR_Line3Mesh_double *_this)
 
MRC_API const MR_AABBTree *const * MR_Line3Mesh_double_Get_tree (const MR_Line3Mesh_double *_this)
 
MRC_API void MR_Line3Mesh_double_Set_tree (MR_Line3Mesh_double *_this, const MR_AABBTree *value)
 
MRC_API const MR_AABBTree ** MR_Line3Mesh_double_GetMutable_tree (MR_Line3Mesh_double *_this)
 
MRC_API const MR_FaceBitSet *const * MR_Line3Mesh_double_Get_region (const MR_Line3Mesh_double *_this)
 
MRC_API void MR_Line3Mesh_double_Set_region (MR_Line3Mesh_double *_this, const MR_FaceBitSet *value)
 
MRC_API const MR_FaceBitSet ** MR_Line3Mesh_double_GetMutable_region (MR_Line3Mesh_double *_this)
 
MRC_API MR_Line3Mesh_doubleMR_Line3Mesh_double_DefaultConstruct (void)
 
MRC_API MR_Line3Mesh_doubleMR_Line3Mesh_double_DefaultConstructArray (size_t num_elems)
 
MRC_API MR_Line3Mesh_doubleMR_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 const MR_Line3Mesh_doubleMR_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 pointer points to an array element.
 
MRC_API MR_Line3Mesh_doubleMR_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 pointer points to an array element.
 
MRC_API MR_Line3Mesh_doubleMR_Line3Mesh_double_ConstructFromAnother (const MR_Line3Mesh_double *_other)
 
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_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 MR_Line3Mesh_doubleMR_Line3Mesh_double_AssignFromAnother (MR_Line3Mesh_double *_this, const MR_Line3Mesh_double *_other)
 
MRC_API MR_MultiMeshIntersectionResultMR_rayMultiMeshAnyIntersect_std_vector_MR_Line3Mesh_float (const MR_std_vector_MR_Line3Mesh_float *lineMeshes, const float *rayStart, const float *rayEnd)
 
MRC_API MR_MultiMeshIntersectionResultMR_rayMultiMeshAnyIntersect_std_vector_MR_Line3Mesh_double (const MR_std_vector_MR_Line3Mesh_double *lineMeshes, const double *rayStart, const double *rayEnd)
 
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 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 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 void MR_xyPlaneMeshIntersect (const MR_MeshPart *meshPart, float zLevel, MR_FaceBitSet *fs, MR_UndirectedEdgeBitSet *ues, MR_VertBitSet *vs, MR_std_vector_MR_FaceId *fsVec)
 

Typedef Documentation

◆ MR_AABBTree

typedef struct MR_AABBTree MR_AABBTree

◆ MR_BitSet

typedef struct MR_BitSet MR_BitSet

◆ MR_FaceBitSet

typedef struct MR_FaceBitSet MR_FaceBitSet

◆ MR_IntersectionPrecomputes_double

◆ MR_IntersectionPrecomputes_float

◆ MR_Line3d

typedef struct MR_Line3d MR_Line3d

◆ MR_Line3f

typedef struct MR_Line3f MR_Line3f

◆ MR_Line3Mesh_double

Generated from class MR::Line3Mesh<double>.

◆ MR_Line3Mesh_float

Generated from class MR::Line3Mesh<float>.

◆ MR_Mesh

typedef struct MR_Mesh MR_Mesh

◆ MR_MeshIntersectionResult

Generated from class MR::MeshIntersectionResult. Derived classes: Direct: (non-virtual) MR::MultiMeshIntersectionResult

◆ MR_MeshPart

typedef struct MR_MeshPart MR_MeshPart

◆ MR_MeshTriPoint

◆ MR_MultiMeshIntersectionResult

Generated from class MR::MultiMeshIntersectionResult. Base classes: Direct: (non-virtual) MR::MeshIntersectionResult

◆ MR_MultiRayMeshIntersectResult

◆ MR_Plane3f

typedef struct MR_Plane3f MR_Plane3f

◆ MR_PointOnFace

◆ MR_std_function_bool_from_const_MR_MeshIntersectionResult_ref

◆ MR_std_function_bool_from_MR_FaceId

◆ MR_std_vector_float

◆ MR_std_vector_MR_FaceId

◆ MR_std_vector_MR_Line3Mesh_double

◆ MR_std_vector_MR_Line3Mesh_float

◆ MR_std_vector_MR_TriPointf

◆ MR_std_vector_MR_Vector3f

◆ MR_UndirectedEdgeBitSet

◆ MR_VertBitSet

typedef struct MR_VertBitSet MR_VertBitSet

Function Documentation

◆ MR_Line3Mesh_double_AssignFromAnother()

MRC_API MR_Line3Mesh_double * MR_Line3Mesh_double_AssignFromAnother ( MR_Line3Mesh_double * _this,
const MR_Line3Mesh_double * _other )

Generated from a method of class MR::Line3Mesh<double> named operator=. Parameter _this can not be null. It is a single object. Parameter _other can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_Line3Mesh_double_ConstructFrom()

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 )

Constructs MR::Line3Mesh<double> elementwise. Parameter line can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_Line3Mesh_double_Destroy() to free it when you're done using it.

◆ MR_Line3Mesh_double_ConstructFromAnother()

MRC_API MR_Line3Mesh_double * MR_Line3Mesh_double_ConstructFromAnother ( const MR_Line3Mesh_double * _other)

Generated from a constructor of class MR::Line3Mesh<double>. Parameter _other can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_Line3Mesh_double_Destroy() to free it when you're done using it.

◆ MR_Line3Mesh_double_DefaultConstruct()

MRC_API MR_Line3Mesh_double * MR_Line3Mesh_double_DefaultConstruct ( void )

Constructs an empty (default-constructed) instance. Never returns null. Returns an instance allocated on the heap! Must call MR_Line3Mesh_double_Destroy() to free it when you're done using it.

◆ MR_Line3Mesh_double_DefaultConstructArray()

MRC_API MR_Line3Mesh_double * MR_Line3Mesh_double_DefaultConstructArray ( size_t num_elems)

Constructs an array of empty (default-constructed) instances, of the specified size. Will never return null. The array must be destroyed using MR_Line3Mesh_double_DestroyArray(). Use MR_Line3Mesh_double_OffsetMutablePtr() and MR_Line3Mesh_double_OffsetPtr() to access the array elements.

◆ MR_Line3Mesh_double_Destroy()

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.

◆ MR_Line3Mesh_double_DestroyArray()

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.

◆ MR_Line3Mesh_double_Get_line()

MRC_API const MR_Line3d * MR_Line3Mesh_double_Get_line ( const MR_Line3Mesh_double * _this)

in the reference frame of mesh Modifies a member variable of class MR::Line3Mesh<double> named line. Parameter _this can not be null. It is a single object. Parameter value can not be null. It is a single object.

◆ MR_Line3Mesh_double_Get_mesh()

MRC_API const MR_Mesh *const * MR_Line3Mesh_double_Get_mesh ( const MR_Line3Mesh_double * _this)

must be set a valid pointer before use Modifies a member variable of class MR::Line3Mesh<double> named mesh. Parameter _this can not be null. It is a single object.

◆ MR_Line3Mesh_double_Get_prec()

MRC_API MR_IntersectionPrecomputes_double *const * MR_Line3Mesh_double_Get_prec ( const MR_Line3Mesh_double * _this)

set it to a valid pointer for better performance Modifies a member variable of class MR::Line3Mesh<double> named prec. Parameter _this can not be null. It is a single object.

◆ MR_Line3Mesh_double_Get_region()

MRC_API const MR_FaceBitSet *const * MR_Line3Mesh_double_Get_region ( const MR_Line3Mesh_double * _this)

may remain nullptr, meaning all mesh Modifies a member variable of class MR::Line3Mesh<double> named region. Parameter _this can not be null. It is a single object.

◆ MR_Line3Mesh_double_Get_tree()

MRC_API const MR_AABBTree *const * MR_Line3Mesh_double_Get_tree ( const MR_Line3Mesh_double * _this)

must be set a valid pointer before use Modifies a member variable of class MR::Line3Mesh<double> named tree. Parameter _this can not be null. It is a single object.

◆ MR_Line3Mesh_double_GetMutable_line()

MRC_API MR_Line3d * MR_Line3Mesh_double_GetMutable_line ( MR_Line3Mesh_double * _this)

set it to a valid pointer for better performance Returns a pointer to a member variable of class MR::Line3Mesh<double> named prec. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_Line3Mesh_double_GetMutable_mesh()

MRC_API const MR_Mesh ** MR_Line3Mesh_double_GetMutable_mesh ( MR_Line3Mesh_double * _this)

must be set a valid pointer before use Returns a pointer to a member variable of class MR::Line3Mesh<double> named tree. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_Line3Mesh_double_GetMutable_prec()

MRC_API MR_IntersectionPrecomputes_double ** MR_Line3Mesh_double_GetMutable_prec ( MR_Line3Mesh_double * _this)

must be set a valid pointer before use Returns a pointer to a member variable of class MR::Line3Mesh<double> named mesh. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_Line3Mesh_double_GetMutable_region()

MRC_API const MR_FaceBitSet ** MR_Line3Mesh_double_GetMutable_region ( MR_Line3Mesh_double * _this)

◆ MR_Line3Mesh_double_GetMutable_tree()

MRC_API const MR_AABBTree ** MR_Line3Mesh_double_GetMutable_tree ( MR_Line3Mesh_double * _this)

may remain nullptr, meaning all mesh Returns a pointer to a member variable of class MR::Line3Mesh<double> named region. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_Line3Mesh_double_OffsetMutablePtr()

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 pointer points to an array element.

◆ MR_Line3Mesh_double_OffsetPtr()

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 pointer points to an array element.

◆ MR_Line3Mesh_double_Set_line()

MRC_API void MR_Line3Mesh_double_Set_line ( MR_Line3Mesh_double * _this,
const MR_Line3d * value )

in the reference frame of mesh Returns a mutable pointer to a member variable of class MR::Line3Mesh<double> named line. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_Line3Mesh_double_Set_mesh()

MRC_API void MR_Line3Mesh_double_Set_mesh ( MR_Line3Mesh_double * _this,
const MR_Mesh * value )

must be set a valid pointer before use Returns a mutable pointer to a member variable of class MR::Line3Mesh<double> named mesh. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_Line3Mesh_double_Set_prec()

MRC_API void MR_Line3Mesh_double_Set_prec ( MR_Line3Mesh_double * _this,
MR_IntersectionPrecomputes_double * value )

set it to a valid pointer for better performance Returns a mutable pointer to a member variable of class MR::Line3Mesh<double> named prec. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_Line3Mesh_double_Set_region()

MRC_API void MR_Line3Mesh_double_Set_region ( MR_Line3Mesh_double * _this,
const MR_FaceBitSet * value )

may remain nullptr, meaning all mesh Returns a mutable pointer to a member variable of class MR::Line3Mesh<double> named region. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_Line3Mesh_double_Set_tree()

MRC_API void MR_Line3Mesh_double_Set_tree ( MR_Line3Mesh_double * _this,
const MR_AABBTree * value )

must be set a valid pointer before use Returns a mutable pointer to a member variable of class MR::Line3Mesh<double> named tree. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_Line3Mesh_float_AssignFromAnother()

MRC_API MR_Line3Mesh_float * MR_Line3Mesh_float_AssignFromAnother ( MR_Line3Mesh_float * _this,
const MR_Line3Mesh_float * _other )

Generated from a method of class MR::Line3Mesh<float> named operator=. Parameter _this can not be null. It is a single object. Parameter _other can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it. in the reference frame of mesh Returns a pointer to a member variable of class MR::Line3Mesh<double> named line. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_Line3Mesh_float_ConstructFrom()

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 )

Constructs MR::Line3Mesh<float> elementwise. Parameter line can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_Line3Mesh_float_Destroy() to free it when you're done using it.

◆ MR_Line3Mesh_float_ConstructFromAnother()

MRC_API MR_Line3Mesh_float * MR_Line3Mesh_float_ConstructFromAnother ( const MR_Line3Mesh_float * _other)

Generated from a constructor of class MR::Line3Mesh<float>. Parameter _other can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_Line3Mesh_float_Destroy() to free it when you're done using it.

◆ MR_Line3Mesh_float_DefaultConstruct()

MRC_API MR_Line3Mesh_float * MR_Line3Mesh_float_DefaultConstruct ( void )

Constructs an empty (default-constructed) instance. Never returns null. Returns an instance allocated on the heap! Must call MR_Line3Mesh_float_Destroy() to free it when you're done using it.

◆ MR_Line3Mesh_float_DefaultConstructArray()

MRC_API MR_Line3Mesh_float * MR_Line3Mesh_float_DefaultConstructArray ( size_t num_elems)

Constructs an array of empty (default-constructed) instances, of the specified size. Will never return null. The array must be destroyed using MR_Line3Mesh_float_DestroyArray(). Use MR_Line3Mesh_float_OffsetMutablePtr() and MR_Line3Mesh_float_OffsetPtr() to access the array elements.

◆ MR_Line3Mesh_float_Destroy()

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.

◆ MR_Line3Mesh_float_DestroyArray()

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.

◆ MR_Line3Mesh_float_Get_line()

MRC_API const MR_Line3f * MR_Line3Mesh_float_Get_line ( const MR_Line3Mesh_float * _this)

in the reference frame of mesh Modifies a member variable of class MR::Line3Mesh<float> named line. Parameter _this can not be null. It is a single object. Parameter value can not be null. It is a single object.

◆ MR_Line3Mesh_float_Get_mesh()

MRC_API const MR_Mesh *const * MR_Line3Mesh_float_Get_mesh ( const MR_Line3Mesh_float * _this)

must be set a valid pointer before use Modifies a member variable of class MR::Line3Mesh<float> named mesh. Parameter _this can not be null. It is a single object.

◆ MR_Line3Mesh_float_Get_prec()

MRC_API MR_IntersectionPrecomputes_float *const * MR_Line3Mesh_float_Get_prec ( const MR_Line3Mesh_float * _this)

set it to a valid pointer for better performance Modifies a member variable of class MR::Line3Mesh<float> named prec. Parameter _this can not be null. It is a single object.

◆ MR_Line3Mesh_float_Get_region()

MRC_API const MR_FaceBitSet *const * MR_Line3Mesh_float_Get_region ( const MR_Line3Mesh_float * _this)

may remain nullptr, meaning all mesh Modifies a member variable of class MR::Line3Mesh<float> named region. Parameter _this can not be null. It is a single object.

◆ MR_Line3Mesh_float_Get_tree()

MRC_API const MR_AABBTree *const * MR_Line3Mesh_float_Get_tree ( const MR_Line3Mesh_float * _this)

must be set a valid pointer before use Modifies a member variable of class MR::Line3Mesh<float> named tree. Parameter _this can not be null. It is a single object.

◆ MR_Line3Mesh_float_GetMutable_line()

MRC_API MR_Line3f * MR_Line3Mesh_float_GetMutable_line ( MR_Line3Mesh_float * _this)

set it to a valid pointer for better performance Returns a pointer to a member variable of class MR::Line3Mesh<float> named prec. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_Line3Mesh_float_GetMutable_mesh()

MRC_API const MR_Mesh ** MR_Line3Mesh_float_GetMutable_mesh ( MR_Line3Mesh_float * _this)

must be set a valid pointer before use Returns a pointer to a member variable of class MR::Line3Mesh<float> named tree. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_Line3Mesh_float_GetMutable_prec()

MRC_API MR_IntersectionPrecomputes_float ** MR_Line3Mesh_float_GetMutable_prec ( MR_Line3Mesh_float * _this)

must be set a valid pointer before use Returns a pointer to a member variable of class MR::Line3Mesh<float> named mesh. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_Line3Mesh_float_GetMutable_region()

MRC_API const MR_FaceBitSet ** MR_Line3Mesh_float_GetMutable_region ( MR_Line3Mesh_float * _this)

◆ MR_Line3Mesh_float_GetMutable_tree()

MRC_API const MR_AABBTree ** MR_Line3Mesh_float_GetMutable_tree ( MR_Line3Mesh_float * _this)

may remain nullptr, meaning all mesh Returns a pointer to a member variable of class MR::Line3Mesh<float> named region. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_Line3Mesh_float_OffsetMutablePtr()

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 pointer points to an array element.

◆ MR_Line3Mesh_float_OffsetPtr()

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 pointer points to an array element.

◆ MR_Line3Mesh_float_Set_line()

MRC_API void MR_Line3Mesh_float_Set_line ( MR_Line3Mesh_float * _this,
const MR_Line3f * value )

in the reference frame of mesh Returns a mutable pointer to a member variable of class MR::Line3Mesh<float> named line. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_Line3Mesh_float_Set_mesh()

MRC_API void MR_Line3Mesh_float_Set_mesh ( MR_Line3Mesh_float * _this,
const MR_Mesh * value )

must be set a valid pointer before use Returns a mutable pointer to a member variable of class MR::Line3Mesh<float> named mesh. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_Line3Mesh_float_Set_prec()

MRC_API void MR_Line3Mesh_float_Set_prec ( MR_Line3Mesh_float * _this,
MR_IntersectionPrecomputes_float * value )

set it to a valid pointer for better performance Returns a mutable pointer to a member variable of class MR::Line3Mesh<float> named prec. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_Line3Mesh_float_Set_region()

MRC_API void MR_Line3Mesh_float_Set_region ( MR_Line3Mesh_float * _this,
const MR_FaceBitSet * value )

may remain nullptr, meaning all mesh Returns a mutable pointer to a member variable of class MR::Line3Mesh<float> named region. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_Line3Mesh_float_Set_tree()

MRC_API void MR_Line3Mesh_float_Set_tree ( MR_Line3Mesh_float * _this,
const MR_AABBTree * value )

must be set a valid pointer before use Returns a mutable pointer to a member variable of class MR::Line3Mesh<float> named tree. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_MeshIntersectionResult_AssignFromAnother()

MRC_API MR_MeshIntersectionResult * MR_MeshIntersectionResult_AssignFromAnother ( MR_MeshIntersectionResult * _this,
const MR_MeshIntersectionResult * _other )

Generated from a method of class MR::MeshIntersectionResult named operator=. Parameter _this can not be null. It is a single object. Parameter _other can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_MeshIntersectionResult_ConstructFrom()

MRC_API MR_MeshIntersectionResult * MR_MeshIntersectionResult_ConstructFrom ( const MR_PointOnFace * proj,
const MR_MeshTriPoint * mtp,
float distanceAlongLine )

Constructs MR::MeshIntersectionResult elementwise. Parameter proj can not be null. It is a single object. Parameter mtp can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_MeshIntersectionResult_Destroy() to free it when you're done using it.

◆ MR_MeshIntersectionResult_ConstructFromAnother()

MRC_API MR_MeshIntersectionResult * MR_MeshIntersectionResult_ConstructFromAnother ( const MR_MeshIntersectionResult * _other)

Generated from a constructor of class MR::MeshIntersectionResult. Parameter _other can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_MeshIntersectionResult_Destroy() to free it when you're done using it.

◆ MR_MeshIntersectionResult_ConvertTo_bool()

MRC_API bool MR_MeshIntersectionResult_ConvertTo_bool ( const MR_MeshIntersectionResult * _this)

check for validity Generated from a conversion operator of class MR::MeshIntersectionResult to type bool. Parameter _this can not be null. It is a single object.

◆ MR_MeshIntersectionResult_DefaultConstruct()

MRC_API MR_MeshIntersectionResult * MR_MeshIntersectionResult_DefaultConstruct ( void )

Constructs an empty (default-constructed) instance. Never returns null. Returns an instance allocated on the heap! Must call MR_MeshIntersectionResult_Destroy() to free it when you're done using it.

◆ MR_MeshIntersectionResult_DefaultConstructArray()

MRC_API MR_MeshIntersectionResult * MR_MeshIntersectionResult_DefaultConstructArray ( size_t num_elems)

Constructs an array of empty (default-constructed) instances, of the specified size. Will never return null. The array must be destroyed using MR_MeshIntersectionResult_DestroyArray(). Use MR_MeshIntersectionResult_OffsetMutablePtr() and MR_MeshIntersectionResult_OffsetPtr() to access the array elements.

◆ MR_MeshIntersectionResult_Destroy()

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.

◆ MR_MeshIntersectionResult_DestroyArray()

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.

◆ MR_MeshIntersectionResult_Get_distanceAlongLine()

MRC_API const float * MR_MeshIntersectionResult_Get_distanceAlongLine ( const MR_MeshIntersectionResult * _this)

stores the distance from ray origin to the intersection point in direction units Returns a pointer to a member variable of class MR::MeshIntersectionResult named distanceAlongLine. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_MeshIntersectionResult_Get_mtp()

MRC_API const MR_MeshTriPoint * MR_MeshIntersectionResult_Get_mtp ( const MR_MeshIntersectionResult * _this)

stores barycentric coordinates Returns a pointer to a member variable of class MR::MeshIntersectionResult named mtp. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_MeshIntersectionResult_Get_proj()

MRC_API const MR_PointOnFace * MR_MeshIntersectionResult_Get_proj ( const MR_MeshIntersectionResult * _this)

stores intersected face and global coordinates Returns a pointer to a member variable of class MR::MeshIntersectionResult named proj. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_MeshIntersectionResult_GetMutable_distanceAlongLine()

MRC_API float * MR_MeshIntersectionResult_GetMutable_distanceAlongLine ( MR_MeshIntersectionResult * _this)

stores the distance from ray origin to the intersection point in direction units Returns a mutable pointer to a member variable of class MR::MeshIntersectionResult named distanceAlongLine. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_MeshIntersectionResult_GetMutable_mtp()

MRC_API MR_MeshTriPoint * MR_MeshIntersectionResult_GetMutable_mtp ( MR_MeshIntersectionResult * _this)

stores barycentric coordinates Returns a mutable pointer to a member variable of class MR::MeshIntersectionResult named mtp. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_MeshIntersectionResult_GetMutable_proj()

MRC_API MR_PointOnFace * MR_MeshIntersectionResult_GetMutable_proj ( MR_MeshIntersectionResult * _this)

stores intersected face and global coordinates Returns a mutable pointer to a member variable of class MR::MeshIntersectionResult named proj. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_MeshIntersectionResult_MutableStaticDowncastTo_MR_MultiMeshIntersectionResult()

MRC_API MR_MultiMeshIntersectionResult * MR_MeshIntersectionResult_MutableStaticDowncastTo_MR_MultiMeshIntersectionResult ( MR_MeshIntersectionResult * object)

Downcasts an instance of MR::MeshIntersectionResult to a derived class MR::MultiMeshIntersectionResult. This is a static downcast, it trusts the programmer that the target type is correct. Results in UB and returns an invalid pointer otherwise.

◆ MR_MeshIntersectionResult_OffsetMutablePtr()

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 pointer points to an array element.

◆ MR_MeshIntersectionResult_OffsetPtr()

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 pointer points to an array element.

◆ MR_MeshIntersectionResult_Set_distanceAlongLine()

MRC_API void MR_MeshIntersectionResult_Set_distanceAlongLine ( MR_MeshIntersectionResult * _this,
float value )

stores the distance from ray origin to the intersection point in direction units Modifies a member variable of class MR::MeshIntersectionResult named distanceAlongLine. Parameter _this can not be null. It is a single object.

◆ MR_MeshIntersectionResult_Set_mtp()

MRC_API void MR_MeshIntersectionResult_Set_mtp ( MR_MeshIntersectionResult * _this,
const MR_MeshTriPoint * value )

stores barycentric coordinates Modifies a member variable of class MR::MeshIntersectionResult named mtp. Parameter _this can not be null. It is a single object. Parameter value can not be null. It is a single object.

◆ MR_MeshIntersectionResult_Set_proj()

MRC_API void MR_MeshIntersectionResult_Set_proj ( MR_MeshIntersectionResult * _this,
const MR_PointOnFace * value )

stores intersected face and global coordinates Modifies a member variable of class MR::MeshIntersectionResult named proj. Parameter _this can not be null. It is a single object. Parameter value can not be null. It is a single object.

◆ MR_MeshIntersectionResult_StaticDowncastTo_MR_MultiMeshIntersectionResult()

MRC_API const MR_MultiMeshIntersectionResult * MR_MeshIntersectionResult_StaticDowncastTo_MR_MultiMeshIntersectionResult ( const MR_MeshIntersectionResult * object)

Downcasts an instance of MR::MeshIntersectionResult to a derived class MR::MultiMeshIntersectionResult. This is a static downcast, it trusts the programmer that the target type is correct. Results in UB and returns an invalid pointer otherwise. This version is acting on mutable pointers.

◆ MR_MultiMeshIntersectionResult_AssignFromAnother()

MRC_API MR_MultiMeshIntersectionResult * MR_MultiMeshIntersectionResult_AssignFromAnother ( MR_MultiMeshIntersectionResult * _this,
const MR_MultiMeshIntersectionResult * _other )

Generated from a method of class MR::MultiMeshIntersectionResult named operator=. Parameter _this can not be null. It is a single object. Parameter _other can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it. in the reference frame of mesh Returns a pointer to a member variable of class MR::Line3Mesh<float> named line. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_MultiMeshIntersectionResult_ConstructFromAnother()

MRC_API MR_MultiMeshIntersectionResult * MR_MultiMeshIntersectionResult_ConstructFromAnother ( const MR_MultiMeshIntersectionResult * _other)

Generated from a constructor of class MR::MultiMeshIntersectionResult. Parameter _other can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_MultiMeshIntersectionResult_Destroy() to free it when you're done using it.

◆ MR_MultiMeshIntersectionResult_DefaultConstruct()

MRC_API MR_MultiMeshIntersectionResult * MR_MultiMeshIntersectionResult_DefaultConstruct ( void )

Constructs an empty (default-constructed) instance. Never returns null. Returns an instance allocated on the heap! Must call MR_MultiMeshIntersectionResult_Destroy() to free it when you're done using it.

◆ MR_MultiMeshIntersectionResult_DefaultConstructArray()

MRC_API MR_MultiMeshIntersectionResult * MR_MultiMeshIntersectionResult_DefaultConstructArray ( size_t num_elems)

Constructs an array of empty (default-constructed) instances, of the specified size. Will never return null. The array must be destroyed using MR_MultiMeshIntersectionResult_DestroyArray(). Use MR_MultiMeshIntersectionResult_OffsetMutablePtr() and MR_MultiMeshIntersectionResult_OffsetPtr() to access the array elements.

◆ MR_MultiMeshIntersectionResult_Destroy()

MRC_API void MR_MultiMeshIntersectionResult_Destroy ( const MR_MultiMeshIntersectionResult * _this)

Destroys a heap-allocated instance of MR_MultiMeshIntersectionResult. Does nothing if the pointer is null.

◆ MR_MultiMeshIntersectionResult_DestroyArray()

MRC_API void MR_MultiMeshIntersectionResult_DestroyArray ( const MR_MultiMeshIntersectionResult * _this)

Destroys a heap-allocated array of MR_MultiMeshIntersectionResult. Does nothing if the pointer is null.

◆ MR_MultiMeshIntersectionResult_Get_mesh()

MRC_API const MR_Mesh *const * MR_MultiMeshIntersectionResult_Get_mesh ( const MR_MultiMeshIntersectionResult * _this)

the intersection found in this mesh Returns a pointer to a member variable of class MR::MultiMeshIntersectionResult named mesh. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_MultiMeshIntersectionResult_GetMutable_mesh()

MRC_API const MR_Mesh ** MR_MultiMeshIntersectionResult_GetMutable_mesh ( MR_MultiMeshIntersectionResult * _this)

the intersection found in this mesh Returns a mutable pointer to a member variable of class MR::MultiMeshIntersectionResult named mesh. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_MultiMeshIntersectionResult_MutableUpcastTo_MR_MeshIntersectionResult()

MRC_API MR_MeshIntersectionResult * MR_MultiMeshIntersectionResult_MutableUpcastTo_MR_MeshIntersectionResult ( MR_MultiMeshIntersectionResult * object)

Upcasts an instance of MR::MultiMeshIntersectionResult to its base class MR::MeshIntersectionResult.

◆ MR_MultiMeshIntersectionResult_OffsetMutablePtr()

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 pointer points to an array element.

◆ MR_MultiMeshIntersectionResult_OffsetPtr()

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 pointer points to an array element.

◆ MR_MultiMeshIntersectionResult_Set_mesh()

MRC_API void MR_MultiMeshIntersectionResult_Set_mesh ( MR_MultiMeshIntersectionResult * _this,
const MR_Mesh * value )

the intersection found in this mesh Modifies a member variable of class MR::MultiMeshIntersectionResult named mesh. Parameter _this can not be null. It is a single object.

◆ MR_MultiMeshIntersectionResult_UpcastTo_MR_MeshIntersectionResult()

MRC_API const MR_MeshIntersectionResult * MR_MultiMeshIntersectionResult_UpcastTo_MR_MeshIntersectionResult ( const MR_MultiMeshIntersectionResult * object)

Upcasts an instance of MR::MultiMeshIntersectionResult to its base class MR::MeshIntersectionResult. This version is acting on mutable pointers.

◆ MR_multiRayMeshIntersect()

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 )

Finds intersections between a mesh and multiple rays in parallel (in float-precision). rayStart and rayEnd define the interval on all rays to detect an intersection. vadidFaces if given then all faces for which false is returned will be skipped Generated from function MR::multiRayMeshIntersect. Parameter meshPart can not be null. It is a single object. Parameter origins can not be null. It is a single object. Parameter dirs can not be null. It is a single object. Parameter result can not be null. It is a single object. Parameter rayStart has a default argument: 0.F, pass a null pointer to use it. Parameter rayEnd has a default argument: 3.40282347E+38F, pass a null pointer to use it. Parameter closestIntersect has a default argument: true, pass a null pointer to use it. Parameter validFaces is a single object. Parameter validFaces has a default argument: {}, pass a null pointer to use it.

◆ MR_MultiRayMeshIntersectResult_AssignFromAnother()

MRC_API MR_MultiRayMeshIntersectResult * MR_MultiRayMeshIntersectResult_AssignFromAnother ( MR_MultiRayMeshIntersectResult * _this,
const MR_MultiRayMeshIntersectResult * _other )

Generated from a method of class MR::MultiRayMeshIntersectResult named operator=. Parameter _this can not be null. It is a single object. Parameter _other can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_MultiRayMeshIntersectResult_ConstructFrom()

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 )

Constructs MR::MultiRayMeshIntersectResult elementwise. Never returns null. Returns an instance allocated on the heap! Must call MR_MultiRayMeshIntersectResult_Destroy() to free it when you're done using it.

◆ MR_MultiRayMeshIntersectResult_ConstructFromAnother()

MRC_API MR_MultiRayMeshIntersectResult * MR_MultiRayMeshIntersectResult_ConstructFromAnother ( const MR_MultiRayMeshIntersectResult * _other)

Generated from a constructor of class MR::MultiRayMeshIntersectResult. Parameter _other can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_MultiRayMeshIntersectResult_Destroy() to free it when you're done using it.

◆ MR_MultiRayMeshIntersectResult_DefaultConstruct()

MRC_API MR_MultiRayMeshIntersectResult * MR_MultiRayMeshIntersectResult_DefaultConstruct ( void )

Constructs an empty (default-constructed) instance. Never returns null. Returns an instance allocated on the heap! Must call MR_MultiRayMeshIntersectResult_Destroy() to free it when you're done using it.

◆ MR_MultiRayMeshIntersectResult_DefaultConstructArray()

MRC_API MR_MultiRayMeshIntersectResult * MR_MultiRayMeshIntersectResult_DefaultConstructArray ( size_t num_elems)

Constructs an array of empty (default-constructed) instances, of the specified size. Will never return null. The array must be destroyed using MR_MultiRayMeshIntersectResult_DestroyArray(). Use MR_MultiRayMeshIntersectResult_OffsetMutablePtr() and MR_MultiRayMeshIntersectResult_OffsetPtr() to access the array elements.

◆ MR_MultiRayMeshIntersectResult_Destroy()

MRC_API void MR_MultiRayMeshIntersectResult_Destroy ( const MR_MultiRayMeshIntersectResult * _this)

Destroys a heap-allocated instance of MR_MultiRayMeshIntersectResult. Does nothing if the pointer is null.

◆ MR_MultiRayMeshIntersectResult_DestroyArray()

MRC_API void MR_MultiRayMeshIntersectResult_DestroyArray ( const MR_MultiRayMeshIntersectResult * _this)

Destroys a heap-allocated array of MR_MultiRayMeshIntersectResult. Does nothing if the pointer is null.

◆ MR_MultiRayMeshIntersectResult_Get_intersectingRays()

MRC_API MR_BitSet *const * MR_MultiRayMeshIntersectResult_Get_intersectingRays ( const MR_MultiRayMeshIntersectResult * _this)

true if the ray has intersection with mesh part, false otherwise Modifies a member variable of class MR::MultiRayMeshIntersectResult named intersectingRays. Parameter _this can not be null. It is a single object.

◆ MR_MultiRayMeshIntersectResult_Get_isectBary()

MRC_API MR_std_vector_MR_TriPointf *const * MR_MultiRayMeshIntersectResult_Get_isectBary ( const MR_MultiRayMeshIntersectResult * _this)

barycentric coordinates of the intersection point within intersected triangle or NaNs if no intersection Modifies a member variable of class MR::MultiRayMeshIntersectResult named isectBary. Parameter _this can not be null. It is a single object.

◆ MR_MultiRayMeshIntersectResult_Get_isectFaces()

MRC_API MR_std_vector_MR_FaceId *const * MR_MultiRayMeshIntersectResult_Get_isectFaces ( const MR_MultiRayMeshIntersectResult * _this)

intersected triangles from mesh Modifies a member variable of class MR::MultiRayMeshIntersectResult named isectFaces. Parameter _this can not be null. It is a single object.

◆ MR_MultiRayMeshIntersectResult_Get_isectPts()

MRC_API MR_std_vector_MR_Vector3f *const * MR_MultiRayMeshIntersectResult_Get_isectPts ( const MR_MultiRayMeshIntersectResult * _this)

intersection points or NaNs if no intersection Modifies a member variable of class MR::MultiRayMeshIntersectResult named isectPts. Parameter _this can not be null. It is a single object.

◆ MR_MultiRayMeshIntersectResult_Get_rayDistances()

MRC_API MR_std_vector_float *const * MR_MultiRayMeshIntersectResult_Get_rayDistances ( const MR_MultiRayMeshIntersectResult * _this)

distance along each ray till the intersection point or NaN if no intersection Modifies a member variable of class MR::MultiRayMeshIntersectResult named rayDistances. Parameter _this can not be null. It is a single object.

◆ MR_MultiRayMeshIntersectResult_GetMutable_intersectingRays()

MRC_API MR_BitSet ** MR_MultiRayMeshIntersectResult_GetMutable_intersectingRays ( MR_MultiRayMeshIntersectResult * _this)

distance along each ray till the intersection point or NaN if no intersection Returns a pointer to a member variable of class MR::MultiRayMeshIntersectResult named rayDistances. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_MultiRayMeshIntersectResult_GetMutable_isectBary()

MRC_API MR_std_vector_MR_TriPointf ** MR_MultiRayMeshIntersectResult_GetMutable_isectBary ( MR_MultiRayMeshIntersectResult * _this)

intersection points or NaNs if no intersection Returns a pointer to a member variable of class MR::MultiRayMeshIntersectResult named isectPts. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_MultiRayMeshIntersectResult_GetMutable_isectFaces()

MRC_API MR_std_vector_MR_FaceId ** MR_MultiRayMeshIntersectResult_GetMutable_isectFaces ( MR_MultiRayMeshIntersectResult * _this)

barycentric coordinates of the intersection point within intersected triangle or NaNs if no intersection Returns a pointer to a member variable of class MR::MultiRayMeshIntersectResult named isectBary. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_MultiRayMeshIntersectResult_GetMutable_isectPts()

MRC_API MR_std_vector_MR_Vector3f ** MR_MultiRayMeshIntersectResult_GetMutable_isectPts ( MR_MultiRayMeshIntersectResult * _this)

◆ MR_MultiRayMeshIntersectResult_GetMutable_rayDistances()

MRC_API MR_std_vector_float ** MR_MultiRayMeshIntersectResult_GetMutable_rayDistances ( MR_MultiRayMeshIntersectResult * _this)

intersected triangles from mesh Returns a pointer to a member variable of class MR::MultiRayMeshIntersectResult named isectFaces. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_MultiRayMeshIntersectResult_OffsetMutablePtr()

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 pointer points to an array element.

◆ MR_MultiRayMeshIntersectResult_OffsetPtr()

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 pointer points to an array element.

◆ MR_MultiRayMeshIntersectResult_Set_intersectingRays()

MRC_API void MR_MultiRayMeshIntersectResult_Set_intersectingRays ( MR_MultiRayMeshIntersectResult * _this,
MR_BitSet * value )

true if the ray has intersection with mesh part, false otherwise Returns a mutable pointer to a member variable of class MR::MultiRayMeshIntersectResult named intersectingRays. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_MultiRayMeshIntersectResult_Set_isectBary()

MRC_API void MR_MultiRayMeshIntersectResult_Set_isectBary ( MR_MultiRayMeshIntersectResult * _this,
MR_std_vector_MR_TriPointf * value )

barycentric coordinates of the intersection point within intersected triangle or NaNs if no intersection Returns a mutable pointer to a member variable of class MR::MultiRayMeshIntersectResult named isectBary. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_MultiRayMeshIntersectResult_Set_isectFaces()

MRC_API void MR_MultiRayMeshIntersectResult_Set_isectFaces ( MR_MultiRayMeshIntersectResult * _this,
MR_std_vector_MR_FaceId * value )

intersected triangles from mesh Returns a mutable pointer to a member variable of class MR::MultiRayMeshIntersectResult named isectFaces. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_MultiRayMeshIntersectResult_Set_isectPts()

MRC_API void MR_MultiRayMeshIntersectResult_Set_isectPts ( MR_MultiRayMeshIntersectResult * _this,
MR_std_vector_MR_Vector3f * value )

intersection points or NaNs if no intersection Returns a mutable pointer to a member variable of class MR::MultiRayMeshIntersectResult named isectPts. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_MultiRayMeshIntersectResult_Set_rayDistances()

MRC_API void MR_MultiRayMeshIntersectResult_Set_rayDistances ( MR_MultiRayMeshIntersectResult * _this,
MR_std_vector_float * value )

distance along each ray till the intersection point or NaN if no intersection Returns a mutable pointer to a member variable of class MR::MultiRayMeshIntersectResult named rayDistances. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_planeMeshIntersect()

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 )

given mesh part and arbitrary plane, outputs

Parameters
fstriangles from boxes crossed or touched by the plane
uesedges of these triangles
vsvertices of these triangles
fsVectriangles from boxes crossed or touched by the plane in unspecified order Generated from function MR::planeMeshIntersect. Parameter meshPart can not be null. It is a single object. Parameter plane can not be null. It is a single object. Parameter fsVec defaults to a null pointer in C++.

◆ MR_rayMeshIntersect_MR_Line3d()

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 )

Finds ray and mesh intersection in double-precision. rayStart and rayEnd define the interval on the ray to detect an intersection. prec can be specified to reuse some precomputations (e.g. for checking many parallel rays). vadidFaces if given then all faces for which false is returned will be skipped Finds the closest to ray origin intersection (or any intersection for better performance if !closestIntersect). Generated from function MR::rayMeshIntersect. Parameter meshPart can not be null. It is a single object. Parameter line can not be null. It is a single object. Parameter rayStart has a default argument: 0., pass a null pointer to use it. Parameter rayEnd has a default argument: 1.7976931348623157E+308, pass a null pointer to use it. Parameter prec defaults to a null pointer in C++. Parameter closestIntersect has a default argument: true, pass a null pointer to use it. Parameter validFaces is a single object. Parameter validFaces has a default argument: {}, pass a null pointer to use it. Never returns null. Returns an instance allocated on the heap! Must call MR_MeshIntersectionResult_Destroy() to free it when you're done using it. true if the ray has intersection with mesh part, false otherwise Returns a pointer to a member variable of class MR::MultiRayMeshIntersectResult named intersectingRays. Parameter _this can not be null. It is a single object. The returned pointer will never be null. It is non-owning, do NOT destroy it.

◆ MR_rayMeshIntersect_MR_Line3f()

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 )

Finds ray and mesh intersection in float-precision. rayStart and rayEnd define the interval on the ray to detect an intersection. prec can be specified to reuse some precomputations (e.g. for checking many parallel rays). vadidFaces if given then all faces for which false is returned will be skipped Finds the closest to ray origin intersection (or any intersection for better performance if !closestIntersect). Generated from function MR::rayMeshIntersect. Parameter meshPart can not be null. It is a single object. Parameter line can not be null. It is a single object. Parameter rayStart has a default argument: 0.F, pass a null pointer to use it. Parameter rayEnd has a default argument: 3.40282347E+38F, pass a null pointer to use it. Parameter prec defaults to a null pointer in C++. Parameter closestIntersect has a default argument: true, pass a null pointer to use it. Parameter validFaces is a single object. Parameter validFaces has a default argument: {}, pass a null pointer to use it. Never returns null. Returns an instance allocated on the heap! Must call MR_MeshIntersectionResult_Destroy() to free it when you're done using it.

◆ MR_rayMeshIntersectAll_MR_Line3d()

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 )

Same as rayMeshIntersectAllF, but use double precision Generated from function MR::rayMeshIntersectAll. Parameter meshPart can not be null. It is a single object. Parameter line can not be null. It is a single object. Parameter rayStart has a default argument: 0., pass a null pointer to use it. Parameter rayEnd has a default argument: 1.7976931348623157E+308, pass a null pointer to use it. Parameter prec defaults to a null pointer in C++.

◆ MR_rayMeshIntersectAll_MR_Line3f()

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 )

Intersects ray with mesh. Finds all intersections Generated from function MR::rayMeshIntersectAll. Parameter meshPart can not be null. It is a single object. Parameter line can not be null. It is a single object. Parameter rayStart has a default argument: 0.F, pass a null pointer to use it. Parameter rayEnd has a default argument: 3.40282347E+38F, pass a null pointer to use it. Parameter prec defaults to a null pointer in C++.

◆ MR_rayMultiMeshAnyIntersect_std_vector_MR_Line3Mesh_double()

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 )

Same as rayMultiMeshAnyIntersectF, but use double precision Generated from function MR::rayMultiMeshAnyIntersect. Parameter lineMeshes can not be null. It is a single object. Parameter rayStart has a default argument: 0., pass a null pointer to use it. Parameter rayEnd has a default argument: 1.7976931348623157E+308, pass a null pointer to use it. Never returns null. Returns an instance allocated on the heap! Must call MR_MultiMeshIntersectionResult_Destroy() to free it when you're done using it.

◆ MR_rayMultiMeshAnyIntersect_std_vector_MR_Line3Mesh_float()

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 )

Intersects ray with many meshes. Finds any intersection (not the closest) Generated from function MR::rayMultiMeshAnyIntersect. Parameter lineMeshes can not be null. It is a single object. Parameter rayStart has a default argument: 0.F, pass a null pointer to use it. Parameter rayEnd has a default argument: 3.40282347E+38F, pass a null pointer to use it. Never returns null. Returns an instance allocated on the heap! Must call MR_MultiMeshIntersectionResult_Destroy() to free it when you're done using it.

◆ MR_xyPlaneMeshIntersect()

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 )

given mesh part and plane z=zLevel, outputs

Parameters
fstriangles crossed or touched by the plane
uesedges of these triangles
vsvertices of these triangles
fsVectriangles crossed or touched by the plane in unspecified order Generated from function MR::xyPlaneMeshIntersect. Parameter meshPart can not be null. It is a single object. Parameter fsVec defaults to a null pointer in C++.