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

Go to the source code of this file.

Typedefs

typedef struct MR_Box3f MR_Box3f
 
typedef struct MR_IntersectionPrecomputes_float MR_IntersectionPrecomputes_float
 
typedef struct MR_Line3f MR_Line3f
 
typedef struct MR_Vector3f MR_Vector3f
 
typedef struct MR_RayOrigin_float MR_RayOrigin_float
 

Functions

MRC_API MR_RayOrigin_floatMR_RayOrigin_float_ConstructFromAnother (const MR_RayOrigin_float *_other)
 
MRC_API const MR_RayOrigin_floatMR_RayOrigin_float_OffsetPtr (const MR_RayOrigin_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_RayOrigin_floatMR_RayOrigin_float_OffsetMutablePtr (MR_RayOrigin_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_RayOrigin_floatMR_RayOrigin_float_Construct (const MR_Vector3f *ro)
 
MRC_API void MR_RayOrigin_float_Destroy (const MR_RayOrigin_float *_this)
 Destroys a heap-allocated instance of MR_RayOrigin_float. Does nothing if the pointer is null.
 
MRC_API void MR_RayOrigin_float_DestroyArray (const MR_RayOrigin_float *_this)
 Destroys a heap-allocated array of MR_RayOrigin_float. Does nothing if the pointer is null.
 
MRC_API MR_RayOrigin_floatMR_RayOrigin_float_AssignFromAnother (MR_RayOrigin_float *_this, const MR_RayOrigin_float *_other)
 
MRC_API bool MR_rayBoxIntersect_5 (const MR_Box3f *box, const MR_RayOrigin_float *rayOrigin, float *t0, float *t1, const MR_IntersectionPrecomputes_float *prec)
 
MRC_API bool MR_rayBoxIntersect_4_MR_Box3f (const MR_Box3f *box, const MR_Line3f *line, float t0, float t1)
 

Typedef Documentation

◆ MR_Box3f

typedef struct MR_Box3f MR_Box3f

◆ MR_IntersectionPrecomputes_float

◆ MR_Line3f

typedef struct MR_Line3f MR_Line3f

◆ MR_RayOrigin_float

Generated from class MR::RayOrigin<float>. Supported MR_PassBy modes: MR_PassBy_Copy, MR_PassBy_Move (and MR_PassBy_DefaultArgument and MR_PassBy_NoObject if supported by the callee).

◆ MR_Vector3f

typedef struct MR_Vector3f MR_Vector3f

Function Documentation

◆ MR_rayBoxIntersect_4_MR_Box3f()

MRC_API bool MR_rayBoxIntersect_4_MR_Box3f ( const MR_Box3f * box,
const MR_Line3f * line,
float t0,
float t1 )

Generated from function MR::rayBoxIntersect<float>. Parameter box can not be null. It is a single object. Parameter line can not be null. It is a single object.

◆ MR_rayBoxIntersect_5()

MRC_API bool MR_rayBoxIntersect_5 ( const MR_Box3f * box,
const MR_RayOrigin_float * rayOrigin,
float * t0,
float * t1,
const MR_IntersectionPrecomputes_float * prec )

finds intersection between the Ray and the Box. Precomputed values could be useful for several calls with the same direction, see "An Efficient and Robust Ray-Box Intersection Algorithm" at https://people.csail.mit.edu/amy/papers/box-jgt.pdf Generated from function MR::rayBoxIntersect<float>. Parameter box can not be null. It is a single object. Parameter rayOrigin can not be null. It is a single object. Parameter t0 can not be null. It is a single object. Parameter t1 can not be null. It is a single object. Parameter prec can not be null. It is a single object.

◆ MR_RayOrigin_float_AssignFromAnother()

MRC_API MR_RayOrigin_float * MR_RayOrigin_float_AssignFromAnother ( MR_RayOrigin_float * _this,
const MR_RayOrigin_float * _other )

Generated from method MR::RayOrigin<float>::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_RayOrigin_float_Construct()

MRC_API MR_RayOrigin_float * MR_RayOrigin_float_Construct ( const MR_Vector3f * ro)

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

◆ MR_RayOrigin_float_ConstructFromAnother()

MRC_API MR_RayOrigin_float * MR_RayOrigin_float_ConstructFromAnother ( const MR_RayOrigin_float * _other)

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

◆ MR_RayOrigin_float_Destroy()

MRC_API void MR_RayOrigin_float_Destroy ( const MR_RayOrigin_float * _this)

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

◆ MR_RayOrigin_float_DestroyArray()

MRC_API void MR_RayOrigin_float_DestroyArray ( const MR_RayOrigin_float * _this)

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

◆ MR_RayOrigin_float_OffsetMutablePtr()

MRC_API MR_RayOrigin_float * MR_RayOrigin_float_OffsetMutablePtr ( MR_RayOrigin_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_RayOrigin_float_OffsetPtr()

MRC_API const MR_RayOrigin_float * MR_RayOrigin_float_OffsetPtr ( const MR_RayOrigin_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.