MeshLib C Docs
Loading...
Searching...
No Matches
MRTriPoint.h File Reference
#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_NoInit MR_NoInit
 
typedef struct MR_Vector3d MR_Vector3d
 
typedef struct MR_Vector3f MR_Vector3f
 
typedef struct MR_TriPointf MR_TriPointf
 encodes a point inside a triangle using barycentric coordinates
 
typedef struct MR_TriPointd MR_TriPointd
 encodes a point inside a triangle using barycentric coordinates
 

Functions

MRC_API const float * MR_TriPointf_Get_eps (void)
 
MRC_API const float * MR_TriPointf_Get_a (const MR_TriPointf *_this)
 
MRC_API void MR_TriPointf_Set_a (MR_TriPointf *_this, float value)
 
MRC_API float * MR_TriPointf_GetMutable_a (MR_TriPointf *_this)
 
MRC_API const float * MR_TriPointf_Get_b (const MR_TriPointf *_this)
 
MRC_API void MR_TriPointf_Set_b (MR_TriPointf *_this, float value)
 
MRC_API float * MR_TriPointf_GetMutable_b (MR_TriPointf *_this)
 
MRC_API MR_TriPointfMR_TriPointf_DefaultConstruct (void)
 
MRC_API MR_TriPointfMR_TriPointf_DefaultConstructArray (size_t num_elems)
 
MRC_API const MR_TriPointfMR_TriPointf_OffsetPtr (const MR_TriPointf *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_TriPointfMR_TriPointf_OffsetMutablePtr (MR_TriPointf *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_TriPointfMR_TriPointf_ConstructFromAnother (const MR_TriPointf *_other)
 
MRC_API MR_TriPointfMR_TriPointf_Construct_1 (const MR_NoInit *_1)
 
MRC_API MR_TriPointfMR_TriPointf_Construct_2 (float a, float b)
 
MRC_API MR_TriPointfMR_TriPointf_Construct_float (const MR_TriPointf *s)
 
MRC_API MR_TriPointfMR_TriPointf_Construct_4 (const MR_Vector3f *p, const MR_Vector3f *v0, const MR_Vector3f *v1, const MR_Vector3f *v2)
 
MRC_API MR_TriPointfMR_TriPointf_Construct_3 (const MR_Vector3f *p, const MR_Vector3f *v1, const MR_Vector3f *v2)
 
MRC_API void MR_TriPointf_Destroy (const MR_TriPointf *_this)
 Destroys a heap-allocated instance of MR_TriPointf. Does nothing if the pointer is null.
 
MRC_API void MR_TriPointf_DestroyArray (const MR_TriPointf *_this)
 Destroys a heap-allocated array of MR_TriPointf. Does nothing if the pointer is null.
 
MRC_API MR_TriPointfMR_TriPointf_AssignFromAnother (MR_TriPointf *_this, const MR_TriPointf *_other)
 
MRC_API MR_TriPointfMR_TriPointf_lnext (const MR_TriPointf *_this)
 
MRC_API int32_t MR_TriPointf_inVertex (const MR_TriPointf *_this)
 
MRC_API int32_t MR_TriPointf_onEdge (const MR_TriPointf *_this)
 
MRC_API bool MR_equal_MR_TriPointf (const MR_TriPointf *_this, const MR_TriPointf *rhs)
 
MRC_API const double * MR_TriPointd_Get_eps (void)
 
MRC_API const double * MR_TriPointd_Get_a (const MR_TriPointd *_this)
 
MRC_API void MR_TriPointd_Set_a (MR_TriPointd *_this, double value)
 
MRC_API double * MR_TriPointd_GetMutable_a (MR_TriPointd *_this)
 
MRC_API const double * MR_TriPointd_Get_b (const MR_TriPointd *_this)
 
MRC_API void MR_TriPointd_Set_b (MR_TriPointd *_this, double value)
 
MRC_API double * MR_TriPointd_GetMutable_b (MR_TriPointd *_this)
 
MRC_API MR_TriPointdMR_TriPointd_DefaultConstruct (void)
 
MRC_API MR_TriPointdMR_TriPointd_DefaultConstructArray (size_t num_elems)
 
MRC_API const MR_TriPointdMR_TriPointd_OffsetPtr (const MR_TriPointd *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_TriPointdMR_TriPointd_OffsetMutablePtr (MR_TriPointd *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_TriPointdMR_TriPointd_ConstructFromAnother (const MR_TriPointd *_other)
 
MRC_API MR_TriPointdMR_TriPointd_Construct_1 (const MR_NoInit *_1)
 
MRC_API MR_TriPointdMR_TriPointd_Construct_2 (double a, double b)
 
MRC_API MR_TriPointdMR_TriPointd_Construct_4 (const MR_Vector3d *p, const MR_Vector3d *v0, const MR_Vector3d *v1, const MR_Vector3d *v2)
 
MRC_API MR_TriPointdMR_TriPointd_Construct_3 (const MR_Vector3d *p, const MR_Vector3d *v1, const MR_Vector3d *v2)
 
MRC_API void MR_TriPointd_Destroy (const MR_TriPointd *_this)
 Destroys a heap-allocated instance of MR_TriPointd. Does nothing if the pointer is null.
 
MRC_API void MR_TriPointd_DestroyArray (const MR_TriPointd *_this)
 Destroys a heap-allocated array of MR_TriPointd. Does nothing if the pointer is null.
 
MRC_API MR_TriPointdMR_TriPointd_AssignFromAnother (MR_TriPointd *_this, const MR_TriPointd *_other)
 
MRC_API MR_TriPointdMR_TriPointd_lnext (const MR_TriPointd *_this)
 
MRC_API int32_t MR_TriPointd_inVertex (const MR_TriPointd *_this)
 
MRC_API int32_t MR_TriPointd_onEdge (const MR_TriPointd *_this)
 
MRC_API bool MR_equal_MR_TriPointd (const MR_TriPointd *_this, const MR_TriPointd *rhs)
 

Typedef Documentation

◆ MR_NoInit

typedef struct MR_NoInit MR_NoInit

◆ MR_TriPointd

typedef struct MR_TriPointd MR_TriPointd

encodes a point inside a triangle using barycentric coordinates

Notations used below: v0, v1, v2 - points of the triangle Generated from class MR::TriPointd.

◆ MR_TriPointf

typedef struct MR_TriPointf MR_TriPointf

encodes a point inside a triangle using barycentric coordinates

Notations used below: v0, v1, v2 - points of the triangle Generated from class MR::TriPointf.

◆ MR_Vector3d

typedef struct MR_Vector3d MR_Vector3d

◆ MR_Vector3f

typedef struct MR_Vector3f MR_Vector3f

Function Documentation

◆ MR_equal_MR_TriPointd()

MRC_API bool MR_equal_MR_TriPointd ( const MR_TriPointd * _this,
const MR_TriPointd * rhs )

returns true if two points have equal (a,b) representation Generated from a method of class MR::TriPointd named operator==. Parameter _this can not be null. It is a single object. Parameter rhs can not be null. It is a single object.

◆ MR_equal_MR_TriPointf()

MRC_API bool MR_equal_MR_TriPointf ( const MR_TriPointf * _this,
const MR_TriPointf * rhs )

returns true if two points have equal (a,b) representation Generated from a method of class MR::TriPointf named operator==. Parameter _this can not be null. It is a single object. Parameter rhs can not be null. It is a single object.

◆ MR_TriPointd_AssignFromAnother()

MRC_API MR_TriPointd * MR_TriPointd_AssignFromAnother ( MR_TriPointd * _this,
const MR_TriPointd * _other )

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

MRC_API MR_TriPointd * MR_TriPointd_Construct_1 ( const MR_NoInit * _1)

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

◆ MR_TriPointd_Construct_2()

MRC_API MR_TriPointd * MR_TriPointd_Construct_2 ( double a,
double b )

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

◆ MR_TriPointd_Construct_3()

MRC_API MR_TriPointd * MR_TriPointd_Construct_3 ( const MR_Vector3d * p,
const MR_Vector3d * v1,
const MR_Vector3d * v2 )

given a point coordinates and triangle (0,v1,v2) computes barycentric coordinates of the point Generated from a constructor of class MR::TriPointd. Parameter p can not be null. It is a single object. Parameter v1 can not be null. It is a single object. Parameter v2 can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_TriPointd_Destroy() to free it when you're done using it.

◆ MR_TriPointd_Construct_4()

MRC_API MR_TriPointd * MR_TriPointd_Construct_4 ( const MR_Vector3d * p,
const MR_Vector3d * v0,
const MR_Vector3d * v1,
const MR_Vector3d * v2 )

given a point coordinates and triangle (v0,v1,v2) computes barycentric coordinates of the point Generated from a constructor of class MR::TriPointd. Parameter p can not be null. It is a single object. Parameter v0 can not be null. It is a single object. Parameter v1 can not be null. It is a single object. Parameter v2 can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_TriPointd_Destroy() to free it when you're done using it.

◆ MR_TriPointd_ConstructFromAnother()

MRC_API MR_TriPointd * MR_TriPointd_ConstructFromAnother ( const MR_TriPointd * _other)

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

◆ MR_TriPointd_DefaultConstruct()

MRC_API MR_TriPointd * MR_TriPointd_DefaultConstruct ( void )

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

◆ MR_TriPointd_DefaultConstructArray()

MRC_API MR_TriPointd * MR_TriPointd_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_TriPointd_DestroyArray(). Use MR_TriPointd_OffsetMutablePtr() and MR_TriPointd_OffsetPtr() to access the array elements.

◆ MR_TriPointd_Destroy()

MRC_API void MR_TriPointd_Destroy ( const MR_TriPointd * _this)

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

◆ MR_TriPointd_DestroyArray()

MRC_API void MR_TriPointd_DestroyArray ( const MR_TriPointd * _this)

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

◆ MR_TriPointd_Get_a()

MRC_API const double * MR_TriPointd_Get_a ( const MR_TriPointd * _this)

a in [0,1], a=0 => point is on [v2,v0] edge, a=1 => point is in v1 Modifies a member variable of class MR::TriPointd named a. Parameter _this can not be null. It is a single object.

◆ MR_TriPointd_Get_b()

MRC_API const double * MR_TriPointd_Get_b ( const MR_TriPointd * _this)

b in [0,1], b=0 => point is on [v0,v1] edge, b=1 => point is in v2 Modifies a member variable of class MR::TriPointd named b. Parameter _this can not be null. It is a single object.

◆ MR_TriPointd_Get_eps()

MRC_API const double * MR_TriPointd_Get_eps ( void )

Returns a pointer to a member variable of class MR::TriPointd named eps. The returned pointer will never be null. It is non-owning, do NOT destroy it. a in [0,1], a=0 => point is on [v2,v0] edge, a=1 => point is in v1 Returns a pointer to a member variable of class MR::TriPointd named a. 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_TriPointd_GetMutable_a()

MRC_API double * MR_TriPointd_GetMutable_a ( MR_TriPointd * _this)

b in [0,1], b=0 => point is on [v0,v1] edge, b=1 => point is in v2 Returns a pointer to a member variable of class MR::TriPointd named b. 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_TriPointd_GetMutable_b()

MRC_API double * MR_TriPointd_GetMutable_b ( MR_TriPointd * _this)

◆ MR_TriPointd_inVertex()

MRC_API int32_t MR_TriPointd_inVertex ( const MR_TriPointd * _this)

returns [0,2] if the point is in a vertex or -1 otherwise Generated from a method of class MR::TriPointd named inVertex. Parameter _this can not be null. It is a single object.

◆ MR_TriPointd_lnext()

MRC_API MR_TriPointd * MR_TriPointd_lnext ( const MR_TriPointd * _this)

represents the same point relative to next edge in the same triangle Generated from a method of class MR::TriPointd named lnext. Parameter _this can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_TriPointd_Destroy() to free it when you're done using it.

◆ MR_TriPointd_OffsetMutablePtr()

MRC_API MR_TriPointd * MR_TriPointd_OffsetMutablePtr ( MR_TriPointd * 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_TriPointd_OffsetPtr()

MRC_API const MR_TriPointd * MR_TriPointd_OffsetPtr ( const MR_TriPointd * 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_TriPointd_onEdge()

MRC_API int32_t MR_TriPointd_onEdge ( const MR_TriPointd * _this)

returns [0,2] if the point is on edge or -1 otherwise: 0 means edge [v1,v2]; 1 means edge [v2,v0]; 2 means edge [v0,v1] Generated from a method of class MR::TriPointd named onEdge. Parameter _this can not be null. It is a single object.

◆ MR_TriPointd_Set_a()

MRC_API void MR_TriPointd_Set_a ( MR_TriPointd * _this,
double value )

a in [0,1], a=0 => point is on [v2,v0] edge, a=1 => point is in v1 Returns a mutable pointer to a member variable of class MR::TriPointd named a. 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_TriPointd_Set_b()

MRC_API void MR_TriPointd_Set_b ( MR_TriPointd * _this,
double value )

b in [0,1], b=0 => point is on [v0,v1] edge, b=1 => point is in v2 Returns a mutable pointer to a member variable of class MR::TriPointd named b. 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_TriPointf_AssignFromAnother()

MRC_API MR_TriPointf * MR_TriPointf_AssignFromAnother ( MR_TriPointf * _this,
const MR_TriPointf * _other )

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

MRC_API MR_TriPointf * MR_TriPointf_Construct_1 ( const MR_NoInit * _1)

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

◆ MR_TriPointf_Construct_2()

MRC_API MR_TriPointf * MR_TriPointf_Construct_2 ( float a,
float b )

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

◆ MR_TriPointf_Construct_3()

MRC_API MR_TriPointf * MR_TriPointf_Construct_3 ( const MR_Vector3f * p,
const MR_Vector3f * v1,
const MR_Vector3f * v2 )

given a point coordinates and triangle (0,v1,v2) computes barycentric coordinates of the point Generated from a constructor of class MR::TriPointf. Parameter p can not be null. It is a single object. Parameter v1 can not be null. It is a single object. Parameter v2 can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_TriPointf_Destroy() to free it when you're done using it.

◆ MR_TriPointf_Construct_4()

MRC_API MR_TriPointf * MR_TriPointf_Construct_4 ( const MR_Vector3f * p,
const MR_Vector3f * v0,
const MR_Vector3f * v1,
const MR_Vector3f * v2 )

given a point coordinates and triangle (v0,v1,v2) computes barycentric coordinates of the point Generated from a constructor of class MR::TriPointf. Parameter p can not be null. It is a single object. Parameter v0 can not be null. It is a single object. Parameter v1 can not be null. It is a single object. Parameter v2 can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_TriPointf_Destroy() to free it when you're done using it.

◆ MR_TriPointf_Construct_float()

MRC_API MR_TriPointf * MR_TriPointf_Construct_float ( const MR_TriPointf * s)

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

◆ MR_TriPointf_ConstructFromAnother()

MRC_API MR_TriPointf * MR_TriPointf_ConstructFromAnother ( const MR_TriPointf * _other)

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

◆ MR_TriPointf_DefaultConstruct()

MRC_API MR_TriPointf * MR_TriPointf_DefaultConstruct ( void )

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

◆ MR_TriPointf_DefaultConstructArray()

MRC_API MR_TriPointf * MR_TriPointf_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_TriPointf_DestroyArray(). Use MR_TriPointf_OffsetMutablePtr() and MR_TriPointf_OffsetPtr() to access the array elements.

◆ MR_TriPointf_Destroy()

MRC_API void MR_TriPointf_Destroy ( const MR_TriPointf * _this)

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

◆ MR_TriPointf_DestroyArray()

MRC_API void MR_TriPointf_DestroyArray ( const MR_TriPointf * _this)

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

◆ MR_TriPointf_Get_a()

MRC_API const float * MR_TriPointf_Get_a ( const MR_TriPointf * _this)

a in [0,1], a=0 => point is on [v2,v0] edge, a=1 => point is in v1 Modifies a member variable of class MR::TriPointf named a. Parameter _this can not be null. It is a single object.

◆ MR_TriPointf_Get_b()

MRC_API const float * MR_TriPointf_Get_b ( const MR_TriPointf * _this)

b in [0,1], b=0 => point is on [v0,v1] edge, b=1 => point is in v2 Modifies a member variable of class MR::TriPointf named b. Parameter _this can not be null. It is a single object.

◆ MR_TriPointf_Get_eps()

MRC_API const float * MR_TriPointf_Get_eps ( void )

Returns a pointer to a member variable of class MR::TriPointf named eps. The returned pointer will never be null. It is non-owning, do NOT destroy it. a in [0,1], a=0 => point is on [v2,v0] edge, a=1 => point is in v1 Returns a pointer to a member variable of class MR::TriPointf named a. 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_TriPointf_GetMutable_a()

MRC_API float * MR_TriPointf_GetMutable_a ( MR_TriPointf * _this)

b in [0,1], b=0 => point is on [v0,v1] edge, b=1 => point is in v2 Returns a pointer to a member variable of class MR::TriPointf named b. 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_TriPointf_GetMutable_b()

MRC_API float * MR_TriPointf_GetMutable_b ( MR_TriPointf * _this)

◆ MR_TriPointf_inVertex()

MRC_API int32_t MR_TriPointf_inVertex ( const MR_TriPointf * _this)

returns [0,2] if the point is in a vertex or -1 otherwise Generated from a method of class MR::TriPointf named inVertex. Parameter _this can not be null. It is a single object.

◆ MR_TriPointf_lnext()

MRC_API MR_TriPointf * MR_TriPointf_lnext ( const MR_TriPointf * _this)

represents the same point relative to next edge in the same triangle Generated from a method of class MR::TriPointf named lnext. Parameter _this can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_TriPointf_Destroy() to free it when you're done using it.

◆ MR_TriPointf_OffsetMutablePtr()

MRC_API MR_TriPointf * MR_TriPointf_OffsetMutablePtr ( MR_TriPointf * 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_TriPointf_OffsetPtr()

MRC_API const MR_TriPointf * MR_TriPointf_OffsetPtr ( const MR_TriPointf * 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_TriPointf_onEdge()

MRC_API int32_t MR_TriPointf_onEdge ( const MR_TriPointf * _this)

returns [0,2] if the point is on edge or -1 otherwise: 0 means edge [v1,v2]; 1 means edge [v2,v0]; 2 means edge [v0,v1] Generated from a method of class MR::TriPointf named onEdge. Parameter _this can not be null. It is a single object.

◆ MR_TriPointf_Set_a()

MRC_API void MR_TriPointf_Set_a ( MR_TriPointf * _this,
float value )

a in [0,1], a=0 => point is on [v2,v0] edge, a=1 => point is in v1 Returns a mutable pointer to a member variable of class MR::TriPointf named a. 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_TriPointf_Set_b()

MRC_API void MR_TriPointf_Set_b ( MR_TriPointf * _this,
float value )

b in [0,1], b=0 => point is on [v0,v1] edge, b=1 => point is in v2 Returns a mutable pointer to a member variable of class MR::TriPointf named b. 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.