MeshLib C Docs
Loading...
Searching...
No Matches
MRPrecisePredicates2.h File Reference
#include <MRCMesh/MRId.h>
#include <MRCMesh/MRVector2.h>
#include <MRCMisc/common.h>
#include <MRCMisc/exports.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>

Go to the source code of this file.

Typedefs

typedef struct MR_std_array_MR_PreciseVertCoords2_3 MR_std_array_MR_PreciseVertCoords2_3
 
typedef struct MR_std_array_MR_PreciseVertCoords2_4 MR_std_array_MR_PreciseVertCoords2_4
 
typedef struct MR_std_array_MR_PreciseVertCoords2_6 MR_std_array_MR_PreciseVertCoords2_6
 
typedef struct MR_std_function_MR_Vector2f_from_const_MR_Vector2i_ref MR_std_function_MR_Vector2f_from_const_MR_Vector2i_ref
 
typedef struct MR_std_function_MR_Vector2i_from_const_MR_Vector2f_ref MR_std_function_MR_Vector2i_from_const_MR_Vector2f_ref
 
typedef struct MR_PreciseVertCoord MR_PreciseVertCoord
 Generated from class MR::PreciseVertCoord.
 
typedef struct MR_PreciseVertCoords2 MR_PreciseVertCoords2
 Generated from class MR::PreciseVertCoords2.
 
typedef struct MR_SegmentSegmentIntersectResult MR_SegmentSegmentIntersectResult
 Generated from class MR::SegmentSegmentIntersectResult.
 
typedef struct MR_CoordinateConverters2 MR_CoordinateConverters2
 

Functions

MRC_API const MR_VertIdMR_PreciseVertCoord_Get_id (const MR_PreciseVertCoord *_this)
 
MRC_API void MR_PreciseVertCoord_Set_id (MR_PreciseVertCoord *_this, MR_VertId value)
 
MRC_API MR_VertIdMR_PreciseVertCoord_GetMutable_id (MR_PreciseVertCoord *_this)
 
MRC_API const int32_t * MR_PreciseVertCoord_Get_pt (const MR_PreciseVertCoord *_this)
 
MRC_API void MR_PreciseVertCoord_Set_pt (MR_PreciseVertCoord *_this, int32_t value)
 
MRC_API int32_t * MR_PreciseVertCoord_GetMutable_pt (MR_PreciseVertCoord *_this)
 
MRC_API MR_PreciseVertCoordMR_PreciseVertCoord_DefaultConstruct (void)
 
MRC_API MR_PreciseVertCoordMR_PreciseVertCoord_DefaultConstructArray (size_t num_elems)
 
MRC_API MR_PreciseVertCoordMR_PreciseVertCoord_ConstructFrom (MR_VertId id, int32_t pt)
 
MRC_API const MR_PreciseVertCoordMR_PreciseVertCoord_OffsetPtr (const MR_PreciseVertCoord *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_PreciseVertCoordMR_PreciseVertCoord_OffsetMutablePtr (MR_PreciseVertCoord *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_PreciseVertCoordMR_PreciseVertCoord_ConstructFromAnother (const MR_PreciseVertCoord *_other)
 
MRC_API void MR_PreciseVertCoord_Destroy (const MR_PreciseVertCoord *_this)
 Destroys a heap-allocated instance of MR_PreciseVertCoord. Does nothing if the pointer is null.
 
MRC_API void MR_PreciseVertCoord_DestroyArray (const MR_PreciseVertCoord *_this)
 Destroys a heap-allocated array of MR_PreciseVertCoord. Does nothing if the pointer is null.
 
MRC_API MR_PreciseVertCoordMR_PreciseVertCoord_AssignFromAnother (MR_PreciseVertCoord *_this, const MR_PreciseVertCoord *_other)
 
MRC_API bool MR_smaller (const MR_PreciseVertCoord *l, const MR_PreciseVertCoord *r)
 
MRC_API bool MR_ccw_2 (const MR_Vector2i *a, const MR_Vector2i *b)
 
MRC_API bool MR_ccw_3 (const MR_Vector2i *a, const MR_Vector2i *b, const MR_Vector2i *c)
 
MRC_API const MR_VertIdMR_PreciseVertCoords2_Get_id (const MR_PreciseVertCoords2 *_this)
 
MRC_API void MR_PreciseVertCoords2_Set_id (MR_PreciseVertCoords2 *_this, MR_VertId value)
 
MRC_API MR_VertIdMR_PreciseVertCoords2_GetMutable_id (MR_PreciseVertCoords2 *_this)
 
MRC_API const MR_Vector2iMR_PreciseVertCoords2_Get_pt (const MR_PreciseVertCoords2 *_this)
 
MRC_API void MR_PreciseVertCoords2_Set_pt (MR_PreciseVertCoords2 *_this, MR_Vector2i value)
 
MRC_API MR_Vector2iMR_PreciseVertCoords2_GetMutable_pt (MR_PreciseVertCoords2 *_this)
 
MRC_API MR_PreciseVertCoords2MR_PreciseVertCoords2_DefaultConstruct (void)
 
MRC_API MR_PreciseVertCoords2MR_PreciseVertCoords2_DefaultConstructArray (size_t num_elems)
 
MRC_API MR_PreciseVertCoords2MR_PreciseVertCoords2_ConstructFrom (MR_VertId id, MR_Vector2i pt)
 
MRC_API const MR_PreciseVertCoords2MR_PreciseVertCoords2_OffsetPtr (const MR_PreciseVertCoords2 *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_PreciseVertCoords2MR_PreciseVertCoords2_OffsetMutablePtr (MR_PreciseVertCoords2 *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_PreciseVertCoords2MR_PreciseVertCoords2_ConstructFromAnother (const MR_PreciseVertCoords2 *_other)
 
MRC_API void MR_PreciseVertCoords2_Destroy (const MR_PreciseVertCoords2 *_this)
 Destroys a heap-allocated instance of MR_PreciseVertCoords2. Does nothing if the pointer is null.
 
MRC_API void MR_PreciseVertCoords2_DestroyArray (const MR_PreciseVertCoords2 *_this)
 Destroys a heap-allocated array of MR_PreciseVertCoords2. Does nothing if the pointer is null.
 
MRC_API MR_PreciseVertCoords2MR_PreciseVertCoords2_AssignFromAnother (MR_PreciseVertCoords2 *_this, const MR_PreciseVertCoords2 *_other)
 
MRC_API bool MR_ccw_1_std_array_MR_PreciseVertCoords2_3 (const MR_std_array_MR_PreciseVertCoords2_3 *vs)
 
MRC_API bool MR_ccw_1_const_MR_PreciseVertCoords2_ptr (const MR_PreciseVertCoords2 *vs)
 Generated from function MR::ccw.
 
MRC_API bool MR_smaller2 (const MR_std_array_MR_PreciseVertCoords2_4 *vs)
 
MRC_API bool MR_orientParaboloid3d_3 (const MR_Vector2i *a, const MR_Vector2i *b, const MR_Vector2i *c)
 
MRC_API bool MR_orientParaboloid3d_4 (const MR_Vector2i *a, const MR_Vector2i *b, const MR_Vector2i *c, const MR_Vector2i *d)
 
MRC_API bool MR_inCircle_std_array_MR_PreciseVertCoords2_4 (const MR_std_array_MR_PreciseVertCoords2_4 *vs)
 
MRC_API bool MR_inCircle_const_MR_PreciseVertCoords2_ptr (const MR_PreciseVertCoords2 *vs)
 Generated from function MR::inCircle.
 
MRC_API const bool * MR_SegmentSegmentIntersectResult_Get_doIntersect (const MR_SegmentSegmentIntersectResult *_this)
 
MRC_API void MR_SegmentSegmentIntersectResult_Set_doIntersect (MR_SegmentSegmentIntersectResult *_this, bool value)
 
MRC_API bool * MR_SegmentSegmentIntersectResult_GetMutable_doIntersect (MR_SegmentSegmentIntersectResult *_this)
 
MRC_API const bool * MR_SegmentSegmentIntersectResult_Get_cIsLeftFromAB (const MR_SegmentSegmentIntersectResult *_this)
 
MRC_API void MR_SegmentSegmentIntersectResult_Set_cIsLeftFromAB (MR_SegmentSegmentIntersectResult *_this, bool value)
 
MRC_API bool * MR_SegmentSegmentIntersectResult_GetMutable_cIsLeftFromAB (MR_SegmentSegmentIntersectResult *_this)
 
MRC_API MR_SegmentSegmentIntersectResultMR_SegmentSegmentIntersectResult_DefaultConstruct (void)
 
MRC_API MR_SegmentSegmentIntersectResultMR_SegmentSegmentIntersectResult_DefaultConstructArray (size_t num_elems)
 
MRC_API MR_SegmentSegmentIntersectResultMR_SegmentSegmentIntersectResult_ConstructFrom (bool doIntersect, bool cIsLeftFromAB)
 
MRC_API const MR_SegmentSegmentIntersectResultMR_SegmentSegmentIntersectResult_OffsetPtr (const MR_SegmentSegmentIntersectResult *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_SegmentSegmentIntersectResultMR_SegmentSegmentIntersectResult_OffsetMutablePtr (MR_SegmentSegmentIntersectResult *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_SegmentSegmentIntersectResultMR_SegmentSegmentIntersectResult_ConstructFromAnother (const MR_SegmentSegmentIntersectResult *_other)
 
MRC_API void MR_SegmentSegmentIntersectResult_Destroy (const MR_SegmentSegmentIntersectResult *_this)
 Destroys a heap-allocated instance of MR_SegmentSegmentIntersectResult. Does nothing if the pointer is null.
 
MRC_API void MR_SegmentSegmentIntersectResult_DestroyArray (const MR_SegmentSegmentIntersectResult *_this)
 Destroys a heap-allocated array of MR_SegmentSegmentIntersectResult. Does nothing if the pointer is null.
 
MRC_API bool MR_SegmentSegmentIntersectResult_ConvertTo_bool (const MR_SegmentSegmentIntersectResult *_this)
 
MRC_API MR_SegmentSegmentIntersectResultMR_SegmentSegmentIntersectResult_AssignFromAnother (MR_SegmentSegmentIntersectResult *_this, const MR_SegmentSegmentIntersectResult *_other)
 
MRC_API MR_SegmentSegmentIntersectResultMR_doSegmentSegmentIntersect (const MR_std_array_MR_PreciseVertCoords2_4 *vs)
 
MRC_API const MR_std_function_MR_Vector2i_from_const_MR_Vector2f_refMR_CoordinateConverters2_Get_toInt (const MR_CoordinateConverters2 *_this)
 
MRC_API void MR_CoordinateConverters2_Set_toInt (MR_CoordinateConverters2 *_this, MR_PassBy value_pass_by, MR_std_function_MR_Vector2i_from_const_MR_Vector2f_ref *value)
 
MRC_API MR_std_function_MR_Vector2i_from_const_MR_Vector2f_refMR_CoordinateConverters2_GetMutable_toInt (MR_CoordinateConverters2 *_this)
 
MRC_API const MR_std_function_MR_Vector2f_from_const_MR_Vector2i_refMR_CoordinateConverters2_Get_toFloat (const MR_CoordinateConverters2 *_this)
 
MRC_API void MR_CoordinateConverters2_Set_toFloat (MR_CoordinateConverters2 *_this, MR_PassBy value_pass_by, MR_std_function_MR_Vector2f_from_const_MR_Vector2i_ref *value)
 
MRC_API MR_std_function_MR_Vector2f_from_const_MR_Vector2i_refMR_CoordinateConverters2_GetMutable_toFloat (MR_CoordinateConverters2 *_this)
 
MRC_API MR_CoordinateConverters2MR_CoordinateConverters2_DefaultConstruct (void)
 
MRC_API MR_CoordinateConverters2MR_CoordinateConverters2_DefaultConstructArray (size_t num_elems)
 
MRC_API MR_CoordinateConverters2MR_CoordinateConverters2_ConstructFrom (MR_PassBy toInt_pass_by, MR_std_function_MR_Vector2i_from_const_MR_Vector2f_ref *toInt, MR_PassBy toFloat_pass_by, MR_std_function_MR_Vector2f_from_const_MR_Vector2i_ref *toFloat)
 
MRC_API const MR_CoordinateConverters2MR_CoordinateConverters2_OffsetPtr (const MR_CoordinateConverters2 *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_CoordinateConverters2MR_CoordinateConverters2_OffsetMutablePtr (MR_CoordinateConverters2 *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_CoordinateConverters2MR_CoordinateConverters2_ConstructFromAnother (MR_PassBy _other_pass_by, MR_CoordinateConverters2 *_other)
 
MRC_API void MR_CoordinateConverters2_Destroy (const MR_CoordinateConverters2 *_this)
 Destroys a heap-allocated instance of MR_CoordinateConverters2. Does nothing if the pointer is null.
 
MRC_API void MR_CoordinateConverters2_DestroyArray (const MR_CoordinateConverters2 *_this)
 Destroys a heap-allocated array of MR_CoordinateConverters2. Does nothing if the pointer is null.
 
MRC_API MR_CoordinateConverters2MR_CoordinateConverters2_AssignFromAnother (MR_CoordinateConverters2 *_this, MR_PassBy _other_pass_by, MR_CoordinateConverters2 *_other)
 
MRC_API bool MR_segmentIntersectionOrder_std_array_MR_PreciseVertCoords2_6 (const MR_std_array_MR_PreciseVertCoords2_6 *vs)
 
MRC_API MR_Vector2i MR_findSegmentSegmentIntersectionPrecise_4 (const MR_Vector2i *a, const MR_Vector2i *b, const MR_Vector2i *c, const MR_Vector2i *d)
 
MRC_API MR_Vector2f MR_findSegmentSegmentIntersectionPrecise_5 (const MR_Vector2f *a, const MR_Vector2f *b, const MR_Vector2f *c, const MR_Vector2f *d, MR_PassBy converters_pass_by, MR_CoordinateConverters2 *converters)
 

Typedef Documentation

◆ MR_CoordinateConverters2

this struct contains coordinate converters float-int-float Generated from class MR::CoordinateConverters2. unique id of the vertex (in both contours) Returns a pointer to a member variable of class MR::PreciseVertCoord 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_PreciseVertCoord

Generated from class MR::PreciseVertCoord.

◆ MR_PreciseVertCoords2

◆ MR_SegmentSegmentIntersectResult

◆ MR_std_array_MR_PreciseVertCoords2_3

◆ MR_std_array_MR_PreciseVertCoords2_4

◆ MR_std_array_MR_PreciseVertCoords2_6

◆ MR_std_function_MR_Vector2f_from_const_MR_Vector2i_ref

◆ MR_std_function_MR_Vector2i_from_const_MR_Vector2f_ref

Function Documentation

◆ MR_ccw_1_const_MR_PreciseVertCoords2_ptr()

MRC_API bool MR_ccw_1_const_MR_PreciseVertCoords2_ptr ( const MR_PreciseVertCoords2 * vs)

Generated from function MR::ccw.

◆ MR_ccw_1_std_array_MR_PreciseVertCoords2_3()

MRC_API bool MR_ccw_1_std_array_MR_PreciseVertCoords2_3 ( const MR_std_array_MR_PreciseVertCoords2_3 * vs)

return true if the smallest rotation from vector (vs[0]-vs[2]) to vector (vs[1]-vs[2]) is in counter-clock-wise direction; uses simulation-of-simplicity (assuming larger perturbations of points with smaller id) to avoid "vectors are collinear" Generated from function MR::ccw. Parameter vs can not be null. It is a single object.

◆ MR_ccw_2()

MRC_API bool MR_ccw_2 ( const MR_Vector2i * a,
const MR_Vector2i * b )

return true if the smallest rotation from vector (a) to vector (b) is in counter-clock-wise direction; uses simulation-of-simplicity (assuming perturbations a >> b) to avoid "vectors are collinear" Generated from function MR::ccw. Parameter a can not be null. It is a single object. Parameter b can not be null. It is a single object.

◆ MR_ccw_3()

MRC_API bool MR_ccw_3 ( const MR_Vector2i * a,
const MR_Vector2i * b,
const MR_Vector2i * c )

return true if the smallest rotation from vector (a-c) to vector (b-c) is in counter-clock-wise direction; uses simulation-of-simplicity (assuming perturbations a >> b >> c) to avoid "vectors are collinear" Generated from function MR::ccw. 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. unique id of the vertex (in both contours) Returns a pointer to a member variable of class MR::PreciseVertCoords2 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_CoordinateConverters2_AssignFromAnother()

MRC_API MR_CoordinateConverters2 * MR_CoordinateConverters2_AssignFromAnother ( MR_CoordinateConverters2 * _this,
MR_PassBy _other_pass_by,
MR_CoordinateConverters2 * _other )

Generated from a method of class MR::CoordinateConverters2 named operator=. 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_CoordinateConverters2_ConstructFrom()

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

◆ MR_CoordinateConverters2_ConstructFromAnother()

MRC_API MR_CoordinateConverters2 * MR_CoordinateConverters2_ConstructFromAnother ( MR_PassBy _other_pass_by,
MR_CoordinateConverters2 * _other )

Generated from a constructor of class MR::CoordinateConverters2. Never returns null. Returns an instance allocated on the heap! Must call MR_CoordinateConverters2_Destroy() to free it when you're done using it.

◆ MR_CoordinateConverters2_DefaultConstruct()

MRC_API MR_CoordinateConverters2 * MR_CoordinateConverters2_DefaultConstruct ( void )

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

◆ MR_CoordinateConverters2_DefaultConstructArray()

MRC_API MR_CoordinateConverters2 * MR_CoordinateConverters2_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_CoordinateConverters2_DestroyArray(). Use MR_CoordinateConverters2_OffsetMutablePtr() and MR_CoordinateConverters2_OffsetPtr() to access the array elements.

◆ MR_CoordinateConverters2_Destroy()

MRC_API void MR_CoordinateConverters2_Destroy ( const MR_CoordinateConverters2 * _this)

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

◆ MR_CoordinateConverters2_DestroyArray()

MRC_API void MR_CoordinateConverters2_DestroyArray ( const MR_CoordinateConverters2 * _this)

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

◆ MR_CoordinateConverters2_Get_toFloat()

MRC_API const MR_std_function_MR_Vector2f_from_const_MR_Vector2i_ref * MR_CoordinateConverters2_Get_toFloat ( const MR_CoordinateConverters2 * _this)

Returns a pointer to a member variable of class MR::CoordinateConverters2 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_CoordinateConverters2_Get_toInt()

MRC_API const MR_std_function_MR_Vector2i_from_const_MR_Vector2f_ref * MR_CoordinateConverters2_Get_toInt ( const MR_CoordinateConverters2 * _this)

Returns a pointer to a member variable of class MR::CoordinateConverters2 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_CoordinateConverters2_GetMutable_toFloat()

MRC_API MR_std_function_MR_Vector2f_from_const_MR_Vector2i_ref * MR_CoordinateConverters2_GetMutable_toFloat ( MR_CoordinateConverters2 * _this)

Returns a mutable pointer to a member variable of class MR::CoordinateConverters2 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_CoordinateConverters2_GetMutable_toInt()

MRC_API MR_std_function_MR_Vector2i_from_const_MR_Vector2f_ref * MR_CoordinateConverters2_GetMutable_toInt ( MR_CoordinateConverters2 * _this)

Returns a mutable pointer to a member variable of class MR::CoordinateConverters2 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_CoordinateConverters2_OffsetMutablePtr()

MRC_API MR_CoordinateConverters2 * MR_CoordinateConverters2_OffsetMutablePtr ( MR_CoordinateConverters2 * 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_CoordinateConverters2_OffsetPtr()

MRC_API const MR_CoordinateConverters2 * MR_CoordinateConverters2_OffsetPtr ( const MR_CoordinateConverters2 * 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_CoordinateConverters2_Set_toFloat()

MRC_API void MR_CoordinateConverters2_Set_toFloat ( MR_CoordinateConverters2 * _this,
MR_PassBy value_pass_by,
MR_std_function_MR_Vector2f_from_const_MR_Vector2i_ref * value )

Modifies a member variable of class MR::CoordinateConverters2 named toFloat. Parameter _this can not be null. It is a single object.

◆ MR_CoordinateConverters2_Set_toInt()

MRC_API void MR_CoordinateConverters2_Set_toInt ( MR_CoordinateConverters2 * _this,
MR_PassBy value_pass_by,
MR_std_function_MR_Vector2i_from_const_MR_Vector2f_ref * value )

Modifies a member variable of class MR::CoordinateConverters2 named toInt. Parameter _this can not be null. It is a single object.

◆ MR_doSegmentSegmentIntersect()

checks whether the segments AB (indices 01) and segments CD (indices 23) intersect; uses simulation-of-simplicity to avoid edge-segment intersections and co-planarity Generated from function MR::doSegmentSegmentIntersect. Parameter vs can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_SegmentSegmentIntersectResult_Destroy() to free it when you're done using it.

◆ MR_findSegmentSegmentIntersectionPrecise_4()

MRC_API MR_Vector2i MR_findSegmentSegmentIntersectionPrecise_4 ( const MR_Vector2i * a,
const MR_Vector2i * b,
const MR_Vector2i * c,
const MR_Vector2i * d )

finds intersection precise, using high precision int inside this function input should have intersection Generated from function MR::findSegmentSegmentIntersectionPrecise. 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.

◆ MR_findSegmentSegmentIntersectionPrecise_5()

MRC_API MR_Vector2f MR_findSegmentSegmentIntersectionPrecise_5 ( const MR_Vector2f * a,
const MR_Vector2f * b,
const MR_Vector2f * c,
const MR_Vector2f * d,
MR_PassBy converters_pass_by,
MR_CoordinateConverters2 * converters )

finds intersection precise, using high precision int inside this function input should have intersection Generated from function MR::findSegmentSegmentIntersectionPrecise. 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.

◆ MR_inCircle_const_MR_PreciseVertCoords2_ptr()

MRC_API bool MR_inCircle_const_MR_PreciseVertCoords2_ptr ( const MR_PreciseVertCoords2 * vs)

Generated from function MR::inCircle.

whether the segments intersect Returns a pointer to a member variable of class MR::SegmentSegmentIntersectResult 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_inCircle_std_array_MR_PreciseVertCoords2_4()

MRC_API bool MR_inCircle_std_array_MR_PreciseVertCoords2_4 ( const MR_std_array_MR_PreciseVertCoords2_4 * vs)

return true if 4th point in array lays inside circumcircle of first 3 points based triangle Generated from function MR::inCircle. Parameter vs can not be null. It is a single object.

◆ MR_orientParaboloid3d_3()

MRC_API bool MR_orientParaboloid3d_3 ( const MR_Vector2i * a,
const MR_Vector2i * b,
const MR_Vector2i * c )

considers 3D points obtained from 2D inputs by moving each point on paraboloid: z = x*x+y*y; 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::orientParaboloid3d. 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_orientParaboloid3d_4()

MRC_API bool MR_orientParaboloid3d_4 ( const MR_Vector2i * a,
const MR_Vector2i * b,
const MR_Vector2i * c,
const MR_Vector2i * d )

Generated from function MR::orientParaboloid3d. 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.

◆ MR_PreciseVertCoord_AssignFromAnother()

MRC_API MR_PreciseVertCoord * MR_PreciseVertCoord_AssignFromAnother ( MR_PreciseVertCoord * _this,
const MR_PreciseVertCoord * _other )

Generated from a method of class MR::PreciseVertCoord 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_PreciseVertCoord_ConstructFrom()

MRC_API MR_PreciseVertCoord * MR_PreciseVertCoord_ConstructFrom ( MR_VertId id,
int32_t pt )

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

◆ MR_PreciseVertCoord_ConstructFromAnother()

MRC_API MR_PreciseVertCoord * MR_PreciseVertCoord_ConstructFromAnother ( const MR_PreciseVertCoord * _other)

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

◆ MR_PreciseVertCoord_DefaultConstruct()

MRC_API MR_PreciseVertCoord * MR_PreciseVertCoord_DefaultConstruct ( void )

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

◆ MR_PreciseVertCoord_DefaultConstructArray()

MRC_API MR_PreciseVertCoord * MR_PreciseVertCoord_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_PreciseVertCoord_DestroyArray(). Use MR_PreciseVertCoord_OffsetMutablePtr() and MR_PreciseVertCoord_OffsetPtr() to access the array elements.

◆ MR_PreciseVertCoord_Destroy()

MRC_API void MR_PreciseVertCoord_Destroy ( const MR_PreciseVertCoord * _this)

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

◆ MR_PreciseVertCoord_DestroyArray()

MRC_API void MR_PreciseVertCoord_DestroyArray ( const MR_PreciseVertCoord * _this)

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

◆ MR_PreciseVertCoord_Get_id()

MRC_API const MR_VertId * MR_PreciseVertCoord_Get_id ( const MR_PreciseVertCoord * _this)

unique id of the vertex (in both contours) Modifies a member variable of class MR::PreciseVertCoord named id. Parameter _this can not be null. It is a single object.

◆ MR_PreciseVertCoord_Get_pt()

MRC_API const int32_t * MR_PreciseVertCoord_Get_pt ( const MR_PreciseVertCoord * _this)

coordinate Modifies a member variable of class MR::PreciseVertCoord named pt. Parameter _this can not be null. It is a single object.

◆ MR_PreciseVertCoord_GetMutable_id()

MRC_API MR_VertId * MR_PreciseVertCoord_GetMutable_id ( MR_PreciseVertCoord * _this)

coordinate Returns a pointer to a member variable of class MR::PreciseVertCoord 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_PreciseVertCoord_GetMutable_pt()

MRC_API int32_t * MR_PreciseVertCoord_GetMutable_pt ( MR_PreciseVertCoord * _this)

◆ MR_PreciseVertCoord_OffsetMutablePtr()

MRC_API MR_PreciseVertCoord * MR_PreciseVertCoord_OffsetMutablePtr ( MR_PreciseVertCoord * 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_PreciseVertCoord_OffsetPtr()

MRC_API const MR_PreciseVertCoord * MR_PreciseVertCoord_OffsetPtr ( const MR_PreciseVertCoord * 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_PreciseVertCoord_Set_id()

MRC_API void MR_PreciseVertCoord_Set_id ( MR_PreciseVertCoord * _this,
MR_VertId value )

unique id of the vertex (in both contours) Returns a mutable pointer to a member variable of class MR::PreciseVertCoord 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_PreciseVertCoord_Set_pt()

MRC_API void MR_PreciseVertCoord_Set_pt ( MR_PreciseVertCoord * _this,
int32_t value )

coordinate Returns a mutable pointer to a member variable of class MR::PreciseVertCoord 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_PreciseVertCoords2_AssignFromAnother()

MRC_API MR_PreciseVertCoords2 * MR_PreciseVertCoords2_AssignFromAnother ( MR_PreciseVertCoords2 * _this,
const MR_PreciseVertCoords2 * _other )

Generated from a method of class MR::PreciseVertCoords2 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_PreciseVertCoords2_ConstructFrom()

MRC_API MR_PreciseVertCoords2 * MR_PreciseVertCoords2_ConstructFrom ( MR_VertId id,
MR_Vector2i pt )

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

◆ MR_PreciseVertCoords2_ConstructFromAnother()

MRC_API MR_PreciseVertCoords2 * MR_PreciseVertCoords2_ConstructFromAnother ( const MR_PreciseVertCoords2 * _other)

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

◆ MR_PreciseVertCoords2_DefaultConstruct()

MRC_API MR_PreciseVertCoords2 * MR_PreciseVertCoords2_DefaultConstruct ( void )

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

◆ MR_PreciseVertCoords2_DefaultConstructArray()

MRC_API MR_PreciseVertCoords2 * MR_PreciseVertCoords2_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_PreciseVertCoords2_DestroyArray(). Use MR_PreciseVertCoords2_OffsetMutablePtr() and MR_PreciseVertCoords2_OffsetPtr() to access the array elements.

◆ MR_PreciseVertCoords2_Destroy()

MRC_API void MR_PreciseVertCoords2_Destroy ( const MR_PreciseVertCoords2 * _this)

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

◆ MR_PreciseVertCoords2_DestroyArray()

MRC_API void MR_PreciseVertCoords2_DestroyArray ( const MR_PreciseVertCoords2 * _this)

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

◆ MR_PreciseVertCoords2_Get_id()

MRC_API const MR_VertId * MR_PreciseVertCoords2_Get_id ( const MR_PreciseVertCoords2 * _this)

unique id of the vertex (in both contours) Modifies a member variable of class MR::PreciseVertCoords2 named id. Parameter _this can not be null. It is a single object.

◆ MR_PreciseVertCoords2_Get_pt()

MRC_API const MR_Vector2i * MR_PreciseVertCoords2_Get_pt ( const MR_PreciseVertCoords2 * _this)

integer coordinates of the vertex Modifies a member variable of class MR::PreciseVertCoords2 named pt. Parameter _this can not be null. It is a single object.

◆ MR_PreciseVertCoords2_GetMutable_id()

MRC_API MR_VertId * MR_PreciseVertCoords2_GetMutable_id ( MR_PreciseVertCoords2 * _this)

integer coordinates of the vertex Returns a pointer to a member variable of class MR::PreciseVertCoords2 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_PreciseVertCoords2_GetMutable_pt()

MRC_API MR_Vector2i * MR_PreciseVertCoords2_GetMutable_pt ( MR_PreciseVertCoords2 * _this)

◆ MR_PreciseVertCoords2_OffsetMutablePtr()

MRC_API MR_PreciseVertCoords2 * MR_PreciseVertCoords2_OffsetMutablePtr ( MR_PreciseVertCoords2 * 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_PreciseVertCoords2_OffsetPtr()

MRC_API const MR_PreciseVertCoords2 * MR_PreciseVertCoords2_OffsetPtr ( const MR_PreciseVertCoords2 * 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_PreciseVertCoords2_Set_id()

MRC_API void MR_PreciseVertCoords2_Set_id ( MR_PreciseVertCoords2 * _this,
MR_VertId value )

unique id of the vertex (in both contours) Returns a mutable pointer to a member variable of class MR::PreciseVertCoords2 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_PreciseVertCoords2_Set_pt()

MRC_API void MR_PreciseVertCoords2_Set_pt ( MR_PreciseVertCoords2 * _this,
MR_Vector2i value )

integer coordinates of the vertex Returns a mutable pointer to a member variable of class MR::PreciseVertCoords2 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_PreciseVertCoords2_6()

MRC_API bool MR_segmentIntersectionOrder_std_array_MR_PreciseVertCoords2_6 ( const MR_std_array_MR_PreciseVertCoords2_6 * vs)

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

◆ MR_SegmentSegmentIntersectResult_AssignFromAnother()

MRC_API MR_SegmentSegmentIntersectResult * MR_SegmentSegmentIntersectResult_AssignFromAnother ( MR_SegmentSegmentIntersectResult * _this,
const MR_SegmentSegmentIntersectResult * _other )

Generated from a method of class MR::SegmentSegmentIntersectResult 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_SegmentSegmentIntersectResult_ConstructFrom()

MRC_API MR_SegmentSegmentIntersectResult * MR_SegmentSegmentIntersectResult_ConstructFrom ( bool doIntersect,
bool cIsLeftFromAB )

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

◆ MR_SegmentSegmentIntersectResult_ConstructFromAnother()

MRC_API MR_SegmentSegmentIntersectResult * MR_SegmentSegmentIntersectResult_ConstructFromAnother ( const MR_SegmentSegmentIntersectResult * _other)

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

◆ MR_SegmentSegmentIntersectResult_ConvertTo_bool()

MRC_API bool MR_SegmentSegmentIntersectResult_ConvertTo_bool ( const MR_SegmentSegmentIntersectResult * _this)

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

◆ MR_SegmentSegmentIntersectResult_DefaultConstruct()

MRC_API MR_SegmentSegmentIntersectResult * MR_SegmentSegmentIntersectResult_DefaultConstruct ( void )

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

◆ MR_SegmentSegmentIntersectResult_DefaultConstructArray()

MRC_API MR_SegmentSegmentIntersectResult * MR_SegmentSegmentIntersectResult_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_SegmentSegmentIntersectResult_DestroyArray(). Use MR_SegmentSegmentIntersectResult_OffsetMutablePtr() and MR_SegmentSegmentIntersectResult_OffsetPtr() to access the array elements.

◆ MR_SegmentSegmentIntersectResult_Destroy()

MRC_API void MR_SegmentSegmentIntersectResult_Destroy ( const MR_SegmentSegmentIntersectResult * _this)

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

◆ MR_SegmentSegmentIntersectResult_DestroyArray()

MRC_API void MR_SegmentSegmentIntersectResult_DestroyArray ( const MR_SegmentSegmentIntersectResult * _this)

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

◆ MR_SegmentSegmentIntersectResult_Get_cIsLeftFromAB()

MRC_API const bool * MR_SegmentSegmentIntersectResult_Get_cIsLeftFromAB ( const MR_SegmentSegmentIntersectResult * _this)

whether the directed line AB has C point at the left Modifies a member variable of class MR::SegmentSegmentIntersectResult named cIsLeftFromAB. Parameter _this can not be null. It is a single object.

◆ MR_SegmentSegmentIntersectResult_Get_doIntersect()

MRC_API const bool * MR_SegmentSegmentIntersectResult_Get_doIntersect ( const MR_SegmentSegmentIntersectResult * _this)

whether the segments intersect Modifies a member variable of class MR::SegmentSegmentIntersectResult named doIntersect. Parameter _this can not be null. It is a single object.

◆ MR_SegmentSegmentIntersectResult_GetMutable_cIsLeftFromAB()

MRC_API bool * MR_SegmentSegmentIntersectResult_GetMutable_cIsLeftFromAB ( MR_SegmentSegmentIntersectResult * _this)

◆ MR_SegmentSegmentIntersectResult_GetMutable_doIntersect()

MRC_API bool * MR_SegmentSegmentIntersectResult_GetMutable_doIntersect ( MR_SegmentSegmentIntersectResult * _this)

whether the directed line AB has C point at the left Returns a pointer to a member variable of class MR::SegmentSegmentIntersectResult named cIsLeftFromAB. 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_SegmentSegmentIntersectResult_OffsetMutablePtr()

MRC_API MR_SegmentSegmentIntersectResult * MR_SegmentSegmentIntersectResult_OffsetMutablePtr ( MR_SegmentSegmentIntersectResult * 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_SegmentSegmentIntersectResult_OffsetPtr()

MRC_API const MR_SegmentSegmentIntersectResult * MR_SegmentSegmentIntersectResult_OffsetPtr ( const MR_SegmentSegmentIntersectResult * 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_SegmentSegmentIntersectResult_Set_cIsLeftFromAB()

MRC_API void MR_SegmentSegmentIntersectResult_Set_cIsLeftFromAB ( MR_SegmentSegmentIntersectResult * _this,
bool value )

whether the directed line AB has C point at the left Returns a mutable pointer to a member variable of class MR::SegmentSegmentIntersectResult named cIsLeftFromAB. 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_SegmentSegmentIntersectResult_Set_doIntersect()

MRC_API void MR_SegmentSegmentIntersectResult_Set_doIntersect ( MR_SegmentSegmentIntersectResult * _this,
bool value )

whether the segments intersect Returns a mutable pointer to a member variable of class MR::SegmentSegmentIntersectResult 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_smaller()

MRC_API bool MR_smaller ( const MR_PreciseVertCoord * l,
const MR_PreciseVertCoord * r )

return true if l is smaller than r, uses simulation-of-simplicity (assuming larger perturbations of points with smaller id) to avoid "coordinates are the same" Generated from function MR::smaller. Parameter l can not be null. It is a single object. Parameter r can not be null. It is a single object.

◆ MR_smaller2()

MRC_API bool MR_smaller2 ( const MR_std_array_MR_PreciseVertCoords2_4 * vs)

given the line passing via points vs[0] and vs[1], which defines linear signed scalar distance field: zero on the line, positive for x where ccw(vs[0], vs[1], x) == true, and negative for x where ccw(vs[0], vs[1], x) == false finds whether sdistance(vs[2]) < sdistance(vs[3]); avoids equality of signed distances using simulation-of-simplicity approach (assuming larger perturbations of points with smaller id) Generated from function MR::smaller2. Parameter vs can not be null. It is a single object.