MeshLib C Docs
Loading...
Searching...
No Matches
MRPrecisePredicates3.h File Reference
#include <MRCMesh/MRId.h>
#include <MRCMesh/MRVector3.h>
#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_Box3d MR_Box3d
 
typedef struct MR_std_array_MR_PreciseVertCoords_4 MR_std_array_MR_PreciseVertCoords_4
 
typedef struct MR_std_array_MR_PreciseVertCoords_5 MR_std_array_MR_PreciseVertCoords_5
 
typedef struct MR_std_array_MR_PreciseVertCoords_8 MR_std_array_MR_PreciseVertCoords_8
 
typedef struct MR_std_function_MR_Vector3f_from_const_MR_Vector3i_ref MR_std_function_MR_Vector3f_from_const_MR_Vector3i_ref
 
typedef struct MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref
 
typedef struct MR_std_optional_MR_Vector3i MR_std_optional_MR_Vector3i
 
typedef struct MR_PreciseVertCoords MR_PreciseVertCoords
 
typedef struct MR_TriangleSegmentIntersectResult MR_TriangleSegmentIntersectResult
 
typedef struct MR_CoordinateConverters MR_CoordinateConverters
 

Functions

MRC_API bool MR_orient3d_3 (const MR_Vector3i *a, const MR_Vector3i *b, const MR_Vector3i *c)
 
MRC_API bool MR_orient3d_4 (const MR_Vector3i *a, const MR_Vector3i *b, const MR_Vector3i *c, const MR_Vector3i *d)
 
MRC_API const MR_VertIdMR_PreciseVertCoords_Get_id (const MR_PreciseVertCoords *_this)
 
MRC_API void MR_PreciseVertCoords_Set_id (MR_PreciseVertCoords *_this, MR_VertId value)
 
MRC_API MR_VertIdMR_PreciseVertCoords_GetMutable_id (MR_PreciseVertCoords *_this)
 
MRC_API const MR_Vector3iMR_PreciseVertCoords_Get_pt (const MR_PreciseVertCoords *_this)
 
MRC_API void MR_PreciseVertCoords_Set_pt (MR_PreciseVertCoords *_this, MR_Vector3i value)
 
MRC_API MR_Vector3iMR_PreciseVertCoords_GetMutable_pt (MR_PreciseVertCoords *_this)
 
MRC_API MR_PreciseVertCoordsMR_PreciseVertCoords_DefaultConstruct (void)
 
MRC_API MR_PreciseVertCoordsMR_PreciseVertCoords_DefaultConstructArray (size_t num_elems)
 
MRC_API MR_PreciseVertCoordsMR_PreciseVertCoords_ConstructFrom (MR_VertId id, MR_Vector3i pt)
 
MRC_API const MR_PreciseVertCoordsMR_PreciseVertCoords_OffsetPtr (const MR_PreciseVertCoords *ptr, ptrdiff_t i)
 
MRC_API MR_PreciseVertCoordsMR_PreciseVertCoords_OffsetMutablePtr (MR_PreciseVertCoords *ptr, ptrdiff_t i)
 
MRC_API MR_PreciseVertCoordsMR_PreciseVertCoords_ConstructFromAnother (const MR_PreciseVertCoords *_other)
 
MRC_API void MR_PreciseVertCoords_Destroy (const MR_PreciseVertCoords *_this)
 Destroys a heap-allocated instance of MR_PreciseVertCoords. Does nothing if the pointer is null.
 
MRC_API void MR_PreciseVertCoords_DestroyArray (const MR_PreciseVertCoords *_this)
 Destroys a heap-allocated array of MR_PreciseVertCoords. Does nothing if the pointer is null.
 
MRC_API MR_PreciseVertCoordsMR_PreciseVertCoords_AssignFromAnother (MR_PreciseVertCoords *_this, const MR_PreciseVertCoords *_other)
 
MRC_API bool MR_orient3d_1_std_array_MR_PreciseVertCoords_4 (const MR_std_array_MR_PreciseVertCoords_4 *vs)
 
MRC_API bool MR_orient3d_1_const_MR_PreciseVertCoords_ptr (const MR_PreciseVertCoords *vs)
 Generated from function MR::orient3d.
 
MRC_API const bool * MR_TriangleSegmentIntersectResult_Get_doIntersect (const MR_TriangleSegmentIntersectResult *_this)
 
MRC_API void MR_TriangleSegmentIntersectResult_Set_doIntersect (MR_TriangleSegmentIntersectResult *_this, bool value)
 
MRC_API bool * MR_TriangleSegmentIntersectResult_GetMutable_doIntersect (MR_TriangleSegmentIntersectResult *_this)
 
MRC_API const bool * MR_TriangleSegmentIntersectResult_Get_dIsLeftFromABC (const MR_TriangleSegmentIntersectResult *_this)
 
MRC_API void MR_TriangleSegmentIntersectResult_Set_dIsLeftFromABC (MR_TriangleSegmentIntersectResult *_this, bool value)
 
MRC_API bool * MR_TriangleSegmentIntersectResult_GetMutable_dIsLeftFromABC (MR_TriangleSegmentIntersectResult *_this)
 
MRC_API MR_TriangleSegmentIntersectResultMR_TriangleSegmentIntersectResult_DefaultConstruct (void)
 
MRC_API MR_TriangleSegmentIntersectResultMR_TriangleSegmentIntersectResult_DefaultConstructArray (size_t num_elems)
 
MRC_API MR_TriangleSegmentIntersectResultMR_TriangleSegmentIntersectResult_ConstructFrom (bool doIntersect, bool dIsLeftFromABC)
 
MRC_API const MR_TriangleSegmentIntersectResultMR_TriangleSegmentIntersectResult_OffsetPtr (const MR_TriangleSegmentIntersectResult *ptr, ptrdiff_t i)
 
MRC_API MR_TriangleSegmentIntersectResultMR_TriangleSegmentIntersectResult_OffsetMutablePtr (MR_TriangleSegmentIntersectResult *ptr, ptrdiff_t i)
 
MRC_API MR_TriangleSegmentIntersectResultMR_TriangleSegmentIntersectResult_ConstructFromAnother (const MR_TriangleSegmentIntersectResult *_other)
 
MRC_API void MR_TriangleSegmentIntersectResult_Destroy (const MR_TriangleSegmentIntersectResult *_this)
 Destroys a heap-allocated instance of MR_TriangleSegmentIntersectResult. Does nothing if the pointer is null.
 
MRC_API void MR_TriangleSegmentIntersectResult_DestroyArray (const MR_TriangleSegmentIntersectResult *_this)
 Destroys a heap-allocated array of MR_TriangleSegmentIntersectResult. Does nothing if the pointer is null.
 
MRC_API bool MR_TriangleSegmentIntersectResult_ConvertTo_bool (const MR_TriangleSegmentIntersectResult *_this)
 
MRC_API MR_TriangleSegmentIntersectResultMR_TriangleSegmentIntersectResult_AssignFromAnother (MR_TriangleSegmentIntersectResult *_this, const MR_TriangleSegmentIntersectResult *_other)
 
MRC_API MR_TriangleSegmentIntersectResultMR_doTriangleSegmentIntersect (const MR_std_array_MR_PreciseVertCoords_5 *vs)
 
MRC_API bool MR_segmentIntersectionOrder_std_array_MR_PreciseVertCoords_8 (const MR_std_array_MR_PreciseVertCoords_8 *vs)
 
MRC_API const MR_std_function_MR_Vector3i_from_const_MR_Vector3f_refMR_CoordinateConverters_Get_toInt (const MR_CoordinateConverters *_this)
 
MRC_API void MR_CoordinateConverters_Set_toInt (MR_CoordinateConverters *_this, MR_PassBy value_pass_by, MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref *value)
 
MRC_API MR_std_function_MR_Vector3i_from_const_MR_Vector3f_refMR_CoordinateConverters_GetMutable_toInt (MR_CoordinateConverters *_this)
 
MRC_API const MR_std_function_MR_Vector3f_from_const_MR_Vector3i_refMR_CoordinateConverters_Get_toFloat (const MR_CoordinateConverters *_this)
 
MRC_API void MR_CoordinateConverters_Set_toFloat (MR_CoordinateConverters *_this, MR_PassBy value_pass_by, MR_std_function_MR_Vector3f_from_const_MR_Vector3i_ref *value)
 
MRC_API MR_std_function_MR_Vector3f_from_const_MR_Vector3i_refMR_CoordinateConverters_GetMutable_toFloat (MR_CoordinateConverters *_this)
 
MRC_API MR_CoordinateConvertersMR_CoordinateConverters_DefaultConstruct (void)
 
MRC_API MR_CoordinateConvertersMR_CoordinateConverters_DefaultConstructArray (size_t num_elems)
 
MRC_API MR_CoordinateConvertersMR_CoordinateConverters_ConstructFrom (MR_PassBy toInt_pass_by, MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref *toInt, MR_PassBy toFloat_pass_by, MR_std_function_MR_Vector3f_from_const_MR_Vector3i_ref *toFloat)
 
MRC_API const MR_CoordinateConvertersMR_CoordinateConverters_OffsetPtr (const MR_CoordinateConverters *ptr, ptrdiff_t i)
 
MRC_API MR_CoordinateConvertersMR_CoordinateConverters_OffsetMutablePtr (MR_CoordinateConverters *ptr, ptrdiff_t i)
 
MRC_API MR_CoordinateConvertersMR_CoordinateConverters_ConstructFromAnother (MR_PassBy _other_pass_by, MR_CoordinateConverters *_other)
 
MRC_API void MR_CoordinateConverters_Destroy (const MR_CoordinateConverters *_this)
 Destroys a heap-allocated instance of MR_CoordinateConverters. Does nothing if the pointer is null.
 
MRC_API void MR_CoordinateConverters_DestroyArray (const MR_CoordinateConverters *_this)
 Destroys a heap-allocated array of MR_CoordinateConverters. Does nothing if the pointer is null.
 
MRC_API MR_CoordinateConvertersMR_CoordinateConverters_AssignFromAnother (MR_CoordinateConverters *_this, MR_PassBy _other_pass_by, MR_CoordinateConverters *_other)
 
MRC_API MR_std_function_MR_Vector3i_from_const_MR_Vector3f_refMR_getToIntConverter (const MR_Box3d *box)
 
MRC_API MR_std_function_MR_Vector3f_from_const_MR_Vector3i_refMR_getToFloatConverter (const MR_Box3d *box)
 
MRC_API MR_std_optional_MR_Vector3iMR_findTwoSegmentsIntersection (const MR_Vector3i *ai, const MR_Vector3i *bi, const MR_Vector3i *ci, const MR_Vector3i *di)
 
MRC_API MR_Vector3f MR_findTriangleSegmentIntersectionPrecise (const MR_Vector3f *a, const MR_Vector3f *b, const MR_Vector3f *c, const MR_Vector3f *d, const MR_Vector3f *e, MR_PassBy converters_pass_by, MR_CoordinateConverters *converters)
 

Typedef Documentation

◆ MR_Box3d

typedef struct MR_Box3d MR_Box3d

◆ MR_CoordinateConverters

this struct contains coordinate converters float-int-float Generated from class MR::CoordinateConverters. Supported MR_PassBy modes: MR_PassBy_DefaultConstruct, MR_PassBy_Copy, MR_PassBy_Move (and MR_PassBy_DefaultArgument and MR_PassBy_NoObject if supported by the callee).

◆ MR_PreciseVertCoords

Generated from class MR::PreciseVertCoords. Supported MR_PassBy modes: MR_PassBy_DefaultConstruct, MR_PassBy_Copy, MR_PassBy_Move (and MR_PassBy_DefaultArgument and MR_PassBy_NoObject if supported by the callee).

◆ MR_std_array_MR_PreciseVertCoords_4

◆ MR_std_array_MR_PreciseVertCoords_5

◆ MR_std_array_MR_PreciseVertCoords_8

◆ MR_std_function_MR_Vector3f_from_const_MR_Vector3i_ref

◆ MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref

◆ MR_std_optional_MR_Vector3i

◆ MR_TriangleSegmentIntersectResult

Generated from class MR::TriangleSegmentIntersectResult. Supported MR_PassBy modes: MR_PassBy_DefaultConstruct, MR_PassBy_Copy, MR_PassBy_Move (and MR_PassBy_DefaultArgument and MR_PassBy_NoObject if supported by the callee).

Function Documentation

◆ MR_CoordinateConverters_AssignFromAnother()

MRC_API MR_CoordinateConverters * MR_CoordinateConverters_AssignFromAnother ( MR_CoordinateConverters * _this,
MR_PassBy _other_pass_by,
MR_CoordinateConverters * _other )

Generated from method MR::CoordinateConverters::operator=. Parameter _this can not be null. It is a single object. The reference to things referred to by the parameter _other (if any) might be preserved in this object. The returned pointer will never be null. It is non-owning, do NOT destroy it. When this function is called, this object will drop any object references it had previously.

◆ MR_CoordinateConverters_ConstructFrom()

Constructs MR::CoordinateConverters elementwise. The reference to the parameter toInt might be preserved in the constructed object. The reference to the parameter toFloat might be preserved in the constructed object. Never returns null. Returns an instance allocated on the heap! Must call MR_CoordinateConverters_Destroy() to free it when you're done using it. When this function is called, this object will drop any object references it had previously.

◆ MR_CoordinateConverters_ConstructFromAnother()

MRC_API MR_CoordinateConverters * MR_CoordinateConverters_ConstructFromAnother ( MR_PassBy _other_pass_by,
MR_CoordinateConverters * _other )

Generated from constructor MR::CoordinateConverters::CoordinateConverters. The reference to things referred to by the parameter _other (if any) might be preserved in the constructed object. Never returns null. Returns an instance allocated on the heap! Must call MR_CoordinateConverters_Destroy() to free it when you're done using it.

◆ MR_CoordinateConverters_DefaultConstruct()

MRC_API MR_CoordinateConverters * MR_CoordinateConverters_DefaultConstruct ( void )

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

◆ MR_CoordinateConverters_DefaultConstructArray()

MRC_API MR_CoordinateConverters * MR_CoordinateConverters_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_CoordinateConverters_DestroyArray(). Use MR_CoordinateConverters_OffsetMutablePtr() and MR_CoordinateConverters_OffsetPtr() to access the array elements.

◆ MR_CoordinateConverters_Destroy()

MRC_API void MR_CoordinateConverters_Destroy ( const MR_CoordinateConverters * _this)

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

◆ MR_CoordinateConverters_DestroyArray()

MRC_API void MR_CoordinateConverters_DestroyArray ( const MR_CoordinateConverters * _this)

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

◆ MR_CoordinateConverters_Get_toFloat()

MRC_API const MR_std_function_MR_Vector3f_from_const_MR_Vector3i_ref * MR_CoordinateConverters_Get_toFloat ( const MR_CoordinateConverters * _this)

Returns a pointer to a member variable of class MR::CoordinateConverters named toFloat. 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_CoordinateConverters_Get_toInt()

MRC_API const MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref * MR_CoordinateConverters_Get_toInt ( const MR_CoordinateConverters * _this)

Returns a pointer to a member variable of class MR::CoordinateConverters named toInt. 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_CoordinateConverters_GetMutable_toFloat()

MRC_API MR_std_function_MR_Vector3f_from_const_MR_Vector3i_ref * MR_CoordinateConverters_GetMutable_toFloat ( MR_CoordinateConverters * _this)

Returns a mutable pointer to a member variable of class MR::CoordinateConverters named toFloat. 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_CoordinateConverters_GetMutable_toInt()

MRC_API MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref * MR_CoordinateConverters_GetMutable_toInt ( MR_CoordinateConverters * _this)

Returns a mutable pointer to a member variable of class MR::CoordinateConverters named toInt. 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_CoordinateConverters_OffsetMutablePtr()

MRC_API MR_CoordinateConverters * MR_CoordinateConverters_OffsetMutablePtr ( MR_CoordinateConverters * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.

◆ MR_CoordinateConverters_OffsetPtr()

MRC_API const MR_CoordinateConverters * MR_CoordinateConverters_OffsetPtr ( const MR_CoordinateConverters * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.

◆ MR_CoordinateConverters_Set_toFloat()

MRC_API void MR_CoordinateConverters_Set_toFloat ( MR_CoordinateConverters * _this,
MR_PassBy value_pass_by,
MR_std_function_MR_Vector3f_from_const_MR_Vector3i_ref * value )

Modifies a member variable of class MR::CoordinateConverters named toFloat. Parameter _this can not be null. It is a single object. The reference to the parameter value might be preserved in this object in element toFloat. When this function is called, this object will drop object references it had previously in toFloat.

◆ MR_CoordinateConverters_Set_toInt()

MRC_API void MR_CoordinateConverters_Set_toInt ( MR_CoordinateConverters * _this,
MR_PassBy value_pass_by,
MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref * value )

Modifies a member variable of class MR::CoordinateConverters named toInt. Parameter _this can not be null. It is a single object. The reference to the parameter value might be preserved in this object in element toInt. When this function is called, this object will drop object references it had previously in toInt.

◆ MR_doTriangleSegmentIntersect()

MRC_API MR_TriangleSegmentIntersectResult * MR_doTriangleSegmentIntersect ( const MR_std_array_MR_PreciseVertCoords_5 * vs)

checks whether triangle ABC (indices 012) and segment DE (indices 34) intersect uses simulation-of-simplicity to avoid edge-segment intersections and co-planarity Generated from function MR::doTriangleSegmentIntersect. Parameter vs can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_TriangleSegmentIntersectResult_Destroy() to free it when you're done using it.

◆ MR_findTriangleSegmentIntersectionPrecise()

MRC_API MR_Vector3f MR_findTriangleSegmentIntersectionPrecise ( const MR_Vector3f * a,
const MR_Vector3f * b,
const MR_Vector3f * c,
const MR_Vector3f * d,
const MR_Vector3f * e,
MR_PassBy converters_pass_by,
MR_CoordinateConverters * converters )

finds intersection precise, using high precision int inside this function input should have intersection Generated from function MR::findTriangleSegmentIntersectionPrecise. Parameter a can not be null. It is a single object. Parameter b can not be null. It is a single object. Parameter c can not be null. It is a single object. Parameter d can not be null. It is a single object. Parameter e can not be null. It is a single object.

◆ MR_findTwoSegmentsIntersection()

MRC_API MR_std_optional_MR_Vector3i * MR_findTwoSegmentsIntersection ( const MR_Vector3i * ai,
const MR_Vector3i * bi,
const MR_Vector3i * ci,
const MR_Vector3i * di )

given two line segments AB and CD located in one plane, finds whether they intersect and if yes, computes their common point using integer-only arithmetic Generated from function MR::findTwoSegmentsIntersection. Parameter ai can not be null. It is a single object. Parameter bi can not be null. It is a single object. Parameter ci can not be null. It is a single object. Parameter di can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_std_optional_MR_Vector3i_Destroy() to free it when you're done using it.

◆ MR_getToFloatConverter()

creates converter from Vector3i to Vector3f in Box range (int diapason is mapped to box range) Generated from function MR::getToFloatConverter. Parameter box can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_std_function_MR_Vector3f_from_const_MR_Vector3i_ref_Destroy() to free it when you're done using it.

◆ MR_getToIntConverter()

creates converter from Vector3f to Vector3i in Box range (int diapason is mapped to box range) Generated from function MR::getToIntConverter. Parameter box can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_std_function_MR_Vector3i_from_const_MR_Vector3f_ref_Destroy() to free it when you're done using it.

◆ MR_orient3d_1_const_MR_PreciseVertCoords_ptr()

MRC_API bool MR_orient3d_1_const_MR_PreciseVertCoords_ptr ( const MR_PreciseVertCoords * vs)

Generated from function MR::orient3d.

whether triangle and segment intersect Returns a pointer to a member variable of class MR::TriangleSegmentIntersectResult named doIntersect. 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_orient3d_1_std_array_MR_PreciseVertCoords_4()

MRC_API bool MR_orient3d_1_std_array_MR_PreciseVertCoords_4 ( const MR_std_array_MR_PreciseVertCoords_4 * vs)

first sorts the indices in ascending order, then calls the predicate for sorted points Generated from function MR::orient3d. Parameter vs can not be null. It is a single object.

◆ MR_orient3d_3()

MRC_API bool MR_orient3d_3 ( const MR_Vector3i * a,
const MR_Vector3i * b,
const MR_Vector3i * c )

returns true if the plane with orientated triangle ABC has 0 point at the left; uses simulation-of-simplicity to avoid "0 is exactly on plane" Generated from function MR::orient3d. Parameter a can not be null. It is a single object. Parameter b can not be null. It is a single object. Parameter c can not be null. It is a single object.

◆ MR_orient3d_4()

MRC_API bool MR_orient3d_4 ( const MR_Vector3i * a,
const MR_Vector3i * b,
const MR_Vector3i * c,
const MR_Vector3i * d )

returns true if the plane with orientated triangle ABC has D point at the left; uses simulation-of-simplicity to avoid "D is exactly on plane" Generated from function MR::orient3d. Parameter a can not be null. It is a single object. Parameter b can not be null. It is a single object. Parameter c can not be null. It is a single object. Parameter d can not be null. It is a single object. unique id of the vertex (in both meshes) Returns a pointer to a member variable of class MR::PreciseVertCoords named id. 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_PreciseVertCoords_AssignFromAnother()

MRC_API MR_PreciseVertCoords * MR_PreciseVertCoords_AssignFromAnother ( MR_PreciseVertCoords * _this,
const MR_PreciseVertCoords * _other )

Generated from method MR::PreciseVertCoords::operator=. Parameter _this can not be null. It is a single object. Parameter _other can not be null. It is a single object. The reference to things referred to by the parameter _other (if any) might be preserved in this object. The returned pointer will never be null. It is non-owning, do NOT destroy it. When this function is called, this object will drop any object references it had previously.

◆ MR_PreciseVertCoords_ConstructFrom()

MRC_API MR_PreciseVertCoords * MR_PreciseVertCoords_ConstructFrom ( MR_VertId id,
MR_Vector3i pt )

Constructs MR::PreciseVertCoords elementwise. The reference to the parameter id might be preserved in the constructed object. The reference to the parameter pt might be preserved in the constructed object. Never returns null. Returns an instance allocated on the heap! Must call MR_PreciseVertCoords_Destroy() to free it when you're done using it. When this function is called, this object will drop any object references it had previously.

◆ MR_PreciseVertCoords_ConstructFromAnother()

MRC_API MR_PreciseVertCoords * MR_PreciseVertCoords_ConstructFromAnother ( const MR_PreciseVertCoords * _other)

Generated from constructor MR::PreciseVertCoords::PreciseVertCoords. Parameter _other can not be null. It is a single object. The reference to things referred to by the parameter _other (if any) might be preserved in the constructed object. Never returns null. Returns an instance allocated on the heap! Must call MR_PreciseVertCoords_Destroy() to free it when you're done using it.

◆ MR_PreciseVertCoords_DefaultConstruct()

MRC_API MR_PreciseVertCoords * MR_PreciseVertCoords_DefaultConstruct ( void )

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

◆ MR_PreciseVertCoords_DefaultConstructArray()

MRC_API MR_PreciseVertCoords * MR_PreciseVertCoords_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_PreciseVertCoords_DestroyArray(). Use MR_PreciseVertCoords_OffsetMutablePtr() and MR_PreciseVertCoords_OffsetPtr() to access the array elements.

◆ MR_PreciseVertCoords_Destroy()

MRC_API void MR_PreciseVertCoords_Destroy ( const MR_PreciseVertCoords * _this)

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

◆ MR_PreciseVertCoords_DestroyArray()

MRC_API void MR_PreciseVertCoords_DestroyArray ( const MR_PreciseVertCoords * _this)

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

◆ MR_PreciseVertCoords_Get_id()

MRC_API const MR_VertId * MR_PreciseVertCoords_Get_id ( const MR_PreciseVertCoords * _this)

unique id of the vertex (in both meshes) Modifies a member variable of class MR::PreciseVertCoords named id. Parameter _this can not be null. It is a single object. The reference to the parameter value might be preserved in this object in element id. When this function is called, this object will drop object references it had previously in id.

◆ MR_PreciseVertCoords_Get_pt()

MRC_API const MR_Vector3i * MR_PreciseVertCoords_Get_pt ( const MR_PreciseVertCoords * _this)

integer coordinates of the vertex Modifies a member variable of class MR::PreciseVertCoords named pt. Parameter _this can not be null. It is a single object. The reference to the parameter value might be preserved in this object in element pt. When this function is called, this object will drop object references it had previously in pt.

◆ MR_PreciseVertCoords_GetMutable_id()

MRC_API MR_VertId * MR_PreciseVertCoords_GetMutable_id ( MR_PreciseVertCoords * _this)

integer coordinates of the vertex Returns a pointer to a member variable of class MR::PreciseVertCoords named pt. 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_PreciseVertCoords_GetMutable_pt()

MRC_API MR_Vector3i * MR_PreciseVertCoords_GetMutable_pt ( MR_PreciseVertCoords * _this)

◆ MR_PreciseVertCoords_OffsetMutablePtr()

MRC_API MR_PreciseVertCoords * MR_PreciseVertCoords_OffsetMutablePtr ( MR_PreciseVertCoords * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.

◆ MR_PreciseVertCoords_OffsetPtr()

MRC_API const MR_PreciseVertCoords * MR_PreciseVertCoords_OffsetPtr ( const MR_PreciseVertCoords * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.

◆ MR_PreciseVertCoords_Set_id()

MRC_API void MR_PreciseVertCoords_Set_id ( MR_PreciseVertCoords * _this,
MR_VertId value )

unique id of the vertex (in both meshes) Returns a mutable pointer to a member variable of class MR::PreciseVertCoords named id. 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_PreciseVertCoords_Set_pt()

MRC_API void MR_PreciseVertCoords_Set_pt ( MR_PreciseVertCoords * _this,
MR_Vector3i value )

integer coordinates of the vertex Returns a mutable pointer to a member variable of class MR::PreciseVertCoords named pt. 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_segmentIntersectionOrder_std_array_MR_PreciseVertCoords_8()

MRC_API bool MR_segmentIntersectionOrder_std_array_MR_PreciseVertCoords_8 ( const MR_std_array_MR_PreciseVertCoords_8 * vs)

given line segment s=01 and two triangles ta=234, tb=567 known to intersect it, finds the order of intersection using precise predicates: true: s[0], s ^ ta, s ^ tb, s[1] false: s[0], s ^ tb, s ^ ta, s[1] segments ta and tb can have at most two shared points, all other points must be unique Generated from function MR::segmentIntersectionOrder. Parameter vs can not be null. It is a single object.

◆ MR_TriangleSegmentIntersectResult_AssignFromAnother()

MRC_API MR_TriangleSegmentIntersectResult * MR_TriangleSegmentIntersectResult_AssignFromAnother ( MR_TriangleSegmentIntersectResult * _this,
const MR_TriangleSegmentIntersectResult * _other )

Generated from method MR::TriangleSegmentIntersectResult::operator=. Parameter _this can not be null. It is a single object. Parameter _other can not be null. It is a single object. The reference to things referred to by the parameter _other (if any) might be preserved in this object. The returned pointer will never be null. It is non-owning, do NOT destroy it. When this function is called, this object will drop any object references it had previously.

◆ MR_TriangleSegmentIntersectResult_ConstructFrom()

MRC_API MR_TriangleSegmentIntersectResult * MR_TriangleSegmentIntersectResult_ConstructFrom ( bool doIntersect,
bool dIsLeftFromABC )

Constructs MR::TriangleSegmentIntersectResult elementwise. Never returns null. Returns an instance allocated on the heap! Must call MR_TriangleSegmentIntersectResult_Destroy() to free it when you're done using it. When this function is called, this object will drop any object references it had previously.

◆ MR_TriangleSegmentIntersectResult_ConstructFromAnother()

MRC_API MR_TriangleSegmentIntersectResult * MR_TriangleSegmentIntersectResult_ConstructFromAnother ( const MR_TriangleSegmentIntersectResult * _other)

Generated from constructor MR::TriangleSegmentIntersectResult::TriangleSegmentIntersectResult. Parameter _other can not be null. It is a single object. The reference to things referred to by the parameter _other (if any) might be preserved in the constructed object. Never returns null. Returns an instance allocated on the heap! Must call MR_TriangleSegmentIntersectResult_Destroy() to free it when you're done using it.

◆ MR_TriangleSegmentIntersectResult_ConvertTo_bool()

MRC_API bool MR_TriangleSegmentIntersectResult_ConvertTo_bool ( const MR_TriangleSegmentIntersectResult * _this)

Generated from conversion operator MR::TriangleSegmentIntersectResult::operator bool. Parameter _this can not be null. It is a single object.

◆ MR_TriangleSegmentIntersectResult_DefaultConstruct()

MRC_API MR_TriangleSegmentIntersectResult * MR_TriangleSegmentIntersectResult_DefaultConstruct ( void )

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

◆ MR_TriangleSegmentIntersectResult_DefaultConstructArray()

MRC_API MR_TriangleSegmentIntersectResult * MR_TriangleSegmentIntersectResult_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_TriangleSegmentIntersectResult_DestroyArray(). Use MR_TriangleSegmentIntersectResult_OffsetMutablePtr() and MR_TriangleSegmentIntersectResult_OffsetPtr() to access the array elements.

◆ MR_TriangleSegmentIntersectResult_Destroy()

MRC_API void MR_TriangleSegmentIntersectResult_Destroy ( const MR_TriangleSegmentIntersectResult * _this)

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

◆ MR_TriangleSegmentIntersectResult_DestroyArray()

MRC_API void MR_TriangleSegmentIntersectResult_DestroyArray ( const MR_TriangleSegmentIntersectResult * _this)

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

◆ MR_TriangleSegmentIntersectResult_Get_dIsLeftFromABC()

MRC_API const bool * MR_TriangleSegmentIntersectResult_Get_dIsLeftFromABC ( const MR_TriangleSegmentIntersectResult * _this)

whether the plane with orientated triangle ABC has D point at the left Modifies a member variable of class MR::TriangleSegmentIntersectResult named dIsLeftFromABC. Parameter _this can not be null. It is a single object. When this function is called, this object will drop object references it had previously in dIsLeftFromABC.

◆ MR_TriangleSegmentIntersectResult_Get_doIntersect()

MRC_API const bool * MR_TriangleSegmentIntersectResult_Get_doIntersect ( const MR_TriangleSegmentIntersectResult * _this)

whether triangle and segment intersect Modifies a member variable of class MR::TriangleSegmentIntersectResult named doIntersect. Parameter _this can not be null. It is a single object. When this function is called, this object will drop object references it had previously in doIntersect.

◆ MR_TriangleSegmentIntersectResult_GetMutable_dIsLeftFromABC()

MRC_API bool * MR_TriangleSegmentIntersectResult_GetMutable_dIsLeftFromABC ( MR_TriangleSegmentIntersectResult * _this)

◆ MR_TriangleSegmentIntersectResult_GetMutable_doIntersect()

MRC_API bool * MR_TriangleSegmentIntersectResult_GetMutable_doIntersect ( MR_TriangleSegmentIntersectResult * _this)

whether the plane with orientated triangle ABC has D point at the left Returns a pointer to a member variable of class MR::TriangleSegmentIntersectResult named dIsLeftFromABC. 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_TriangleSegmentIntersectResult_OffsetMutablePtr()

MRC_API MR_TriangleSegmentIntersectResult * MR_TriangleSegmentIntersectResult_OffsetMutablePtr ( MR_TriangleSegmentIntersectResult * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.

◆ MR_TriangleSegmentIntersectResult_OffsetPtr()

MRC_API const MR_TriangleSegmentIntersectResult * MR_TriangleSegmentIntersectResult_OffsetPtr ( const MR_TriangleSegmentIntersectResult * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element. The reference to the parameter ptr might be preserved in the return value.

◆ MR_TriangleSegmentIntersectResult_Set_dIsLeftFromABC()

MRC_API void MR_TriangleSegmentIntersectResult_Set_dIsLeftFromABC ( MR_TriangleSegmentIntersectResult * _this,
bool value )

whether the plane with orientated triangle ABC has D point at the left Returns a mutable pointer to a member variable of class MR::TriangleSegmentIntersectResult named dIsLeftFromABC. 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_TriangleSegmentIntersectResult_Set_doIntersect()

MRC_API void MR_TriangleSegmentIntersectResult_Set_doIntersect ( MR_TriangleSegmentIntersectResult * _this,
bool value )

whether triangle and segment intersect Returns a mutable pointer to a member variable of class MR::TriangleSegmentIntersectResult named doIntersect. 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.