MeshLib C Docs
Loading...
Searching...
No Matches
MRPolyline.h File Reference
#include <MRCMesh/MRBox.h>
#include <MRCMesh/MRId.h>
#include <MRCMesh/MRVector2.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_AABBTreePolyline2 MR_AABBTreePolyline2
 
typedef struct MR_AABBTreePolyline3 MR_AABBTreePolyline3
 
typedef struct MR_AffineXf2f MR_AffineXf2f
 
typedef struct MR_AffineXf3f MR_AffineXf3f
 
typedef struct MR_EdgeMap MR_EdgeMap
 
typedef struct MR_EdgePoint MR_EdgePoint
 
typedef struct MR_LineSegm2f MR_LineSegm2f
 
typedef struct MR_LineSegm3f MR_LineSegm3f
 
typedef struct MR_Mesh MR_Mesh
 
typedef struct MR_MeshTriPoint MR_MeshTriPoint
 
typedef struct MR_Plane3f MR_Plane3f
 
typedef struct MR_PolylineTopology MR_PolylineTopology
 
typedef struct MR_UndirectedEdgeBitSet MR_UndirectedEdgeBitSet
 
typedef struct MR_VertCoords MR_VertCoords
 
typedef struct MR_VertCoords2 MR_VertCoords2
 
typedef struct MR_VertMap MR_VertMap
 
typedef struct MR_WholeEdgeMap MR_WholeEdgeMap
 
typedef struct MR_std_vector_MR_EdgeId MR_std_vector_MR_EdgeId
 
typedef struct MR_std_vector_MR_EdgePoint MR_std_vector_MR_EdgePoint
 
typedef struct MR_std_vector_MR_Vector2f MR_std_vector_MR_Vector2f
 
typedef struct MR_std_vector_MR_Vector3f MR_std_vector_MR_Vector3f
 
typedef struct MR_std_vector_MR_VertId MR_std_vector_MR_VertId
 
typedef struct MR_std_vector_std_vector_MR_Vector2f MR_std_vector_std_vector_MR_Vector2f
 
typedef struct MR_std_vector_std_vector_MR_Vector3f MR_std_vector_std_vector_MR_Vector3f
 
typedef struct MR_std_vector_std_vector_MR_VertId MR_std_vector_std_vector_MR_VertId
 
typedef struct MR_Polyline2 MR_Polyline2
 
typedef struct MR_Polyline3 MR_Polyline3
 

Functions

MRC_API const MR_PolylineTopologyMR_Polyline2_Get_topology (const MR_Polyline2 *_this)
 
MRC_API void MR_Polyline2_Set_topology (MR_Polyline2 *_this, MR_PassBy value_pass_by, MR_PolylineTopology *value)
 
MRC_API MR_PolylineTopologyMR_Polyline2_GetMutable_topology (MR_Polyline2 *_this)
 
MRC_API const MR_VertCoords2MR_Polyline2_Get_points (const MR_Polyline2 *_this)
 
MRC_API void MR_Polyline2_Set_points (MR_Polyline2 *_this, MR_PassBy value_pass_by, MR_VertCoords2 *value)
 
MRC_API MR_VertCoords2MR_Polyline2_GetMutable_points (MR_Polyline2 *_this)
 
MRC_API MR_Polyline2MR_Polyline2_DefaultConstruct (void)
 
MRC_API MR_Polyline2MR_Polyline2_DefaultConstructArray (size_t num_elems)
 
MRC_API const MR_Polyline2MR_Polyline2_OffsetPtr (const MR_Polyline2 *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_Polyline2MR_Polyline2_OffsetMutablePtr (MR_Polyline2 *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_Polyline2MR_Polyline2_ConstructFromAnother (MR_PassBy _other_pass_by, MR_Polyline2 *_other)
 
MRC_API MR_Polyline2MR_Polyline2_Construct_1_std_vector_MR_Vector2f (const MR_std_vector_MR_Vector2f *contour)
 
MRC_API MR_Polyline2MR_Polyline2_Construct_1_std_vector_std_vector_MR_Vector2f (const MR_std_vector_std_vector_MR_Vector2f *contours)
 
MRC_API MR_Polyline2MR_Polyline2_Construct_2 (const MR_std_vector_MR_VertId *comp2firstVert, MR_PassBy ps_pass_by, MR_VertCoords2 *ps)
 
MRC_API void MR_Polyline2_Destroy (const MR_Polyline2 *_this)
 Destroys a heap-allocated instance of MR_Polyline2. Does nothing if the pointer is null.
 
MRC_API void MR_Polyline2_DestroyArray (const MR_Polyline2 *_this)
 Destroys a heap-allocated array of MR_Polyline2. Does nothing if the pointer is null.
 
MRC_API MR_Polyline2MR_Polyline2_AssignFromAnother (MR_Polyline2 *_this, MR_PassBy _other_pass_by, MR_Polyline2 *_other)
 
MRC_API MR_EdgeId MR_Polyline2_addFromPoints_3 (MR_Polyline2 *_this, const MR_Vector2f *vs, MR_uint64_t num, bool closed)
 
MRC_API MR_EdgeId MR_Polyline2_addFromPoints_2 (MR_Polyline2 *_this, const MR_Vector2f *vs, MR_uint64_t num)
 
MRC_API void MR_Polyline2_addPart (MR_Polyline2 *_this, const MR_Polyline2 *from, MR_VertMap *outVmap, MR_WholeEdgeMap *outEmap)
 
MRC_API void MR_Polyline2_addPartByMask (MR_Polyline2 *_this, const MR_Polyline2 *from, const MR_UndirectedEdgeBitSet *mask, MR_VertMap *outVmap, MR_EdgeMap *outEmap)
 
MRC_API void MR_Polyline2_pack (MR_Polyline2 *_this, MR_VertMap *outVmap, MR_WholeEdgeMap *outEmap)
 
MRC_API MR_Vector2f MR_Polyline2_orgPnt (const MR_Polyline2 *_this, MR_EdgeId e)
 
MRC_API MR_Vector2f MR_Polyline2_destPnt (const MR_Polyline2 *_this, MR_EdgeId e)
 
MRC_API MR_Vector2f MR_Polyline2_edgePoint_2 (const MR_Polyline2 *_this, MR_EdgeId e, float f)
 
MRC_API MR_Vector2f MR_Polyline2_edgePoint_1 (const MR_Polyline2 *_this, const MR_EdgePoint *ep)
 
MRC_API MR_Vector2f MR_Polyline2_edgeCenter (const MR_Polyline2 *_this, MR_EdgeId e)
 
MRC_API MR_Vector2f MR_Polyline2_edgeVector (const MR_Polyline2 *_this, MR_EdgeId e)
 
MRC_API MR_LineSegm2fMR_Polyline2_edgeSegment (const MR_Polyline2 *_this, MR_EdgeId e)
 
MRC_API MR_EdgePointMR_Polyline2_toEdgePoint_1 (const MR_Polyline2 *_this, MR_VertId v)
 
MRC_API MR_EdgePointMR_Polyline2_toEdgePoint_2 (const MR_Polyline2 *_this, MR_EdgeId e, const MR_Vector2f *p)
 
MRC_API float MR_Polyline2_edgeLength (const MR_Polyline2 *_this, MR_EdgeId e)
 
MRC_API float MR_Polyline2_edgeLengthSq (const MR_Polyline2 *_this, MR_EdgeId e)
 
MRC_API MR_Vector3f MR_Polyline2_loopDirArea (const MR_Polyline2 *_this, MR_EdgeId e)
 
MRC_API float MR_Polyline2_totalLength (const MR_Polyline2 *_this)
 
MRC_API float MR_Polyline2_averageEdgeLength (const MR_Polyline2 *_this)
 
MRC_API const MR_AABBTreePolyline2MR_Polyline2_getAABBTree (const MR_Polyline2 *_this)
 
MRC_API const MR_AABBTreePolyline2MR_Polyline2_getAABBTreeNotCreate (const MR_Polyline2 *_this)
 
MRC_API MR_Box2f MR_Polyline2_getBoundingBox (const MR_Polyline2 *_this)
 
MRC_API MR_Box2f MR_Polyline2_computeBoundingBox (const MR_Polyline2 *_this, const MR_AffineXf2f *toWorld)
 
MRC_API MR_Vector2f MR_Polyline2_findCenterFromPoints (const MR_Polyline2 *_this)
 
MRC_API void MR_Polyline2_transform (MR_Polyline2 *_this, const MR_AffineXf2f *xf)
 
MRC_API MR_EdgeId MR_Polyline2_splitEdge_2 (MR_Polyline2 *_this, MR_EdgeId e, const MR_Vector2f *newVertPos)
 
MRC_API MR_EdgeId MR_Polyline2_splitEdge_1 (MR_Polyline2 *_this, MR_EdgeId e)
 
MRC_API void MR_Polyline2_invalidateCaches (MR_Polyline2 *_this)
 
MRC_API MR_std_vector_std_vector_MR_Vector2fMR_Polyline2_contours (const MR_Polyline2 *_this, MR_std_vector_std_vector_MR_VertId *vertMap)
 
MRC_API MR_EdgeId MR_Polyline2_addFromEdgePath (MR_Polyline2 *_this, const MR_Mesh *mesh, const MR_std_vector_MR_EdgeId *path)
 
MRC_API MR_EdgeId MR_Polyline2_addFromSurfacePath (MR_Polyline2 *_this, const MR_Mesh *mesh, const MR_std_vector_MR_EdgePoint *path)
 
MRC_API MR_EdgeId MR_Polyline2_addFromGeneralSurfacePath (MR_Polyline2 *_this, const MR_Mesh *mesh, const MR_MeshTriPoint *start, const MR_std_vector_MR_EdgePoint *path, const MR_MeshTriPoint *end)
 
MRC_API MR_uint64_t MR_Polyline2_heapBytes (const MR_Polyline2 *_this)
 
MRC_API const MR_PolylineTopologyMR_Polyline3_Get_topology (const MR_Polyline3 *_this)
 
MRC_API void MR_Polyline3_Set_topology (MR_Polyline3 *_this, MR_PassBy value_pass_by, MR_PolylineTopology *value)
 
MRC_API MR_PolylineTopologyMR_Polyline3_GetMutable_topology (MR_Polyline3 *_this)
 
MRC_API const MR_VertCoordsMR_Polyline3_Get_points (const MR_Polyline3 *_this)
 
MRC_API void MR_Polyline3_Set_points (MR_Polyline3 *_this, MR_PassBy value_pass_by, MR_VertCoords *value)
 
MRC_API MR_VertCoordsMR_Polyline3_GetMutable_points (MR_Polyline3 *_this)
 
MRC_API MR_Polyline3MR_Polyline3_DefaultConstruct (void)
 
MRC_API MR_Polyline3MR_Polyline3_DefaultConstructArray (size_t num_elems)
 
MRC_API const MR_Polyline3MR_Polyline3_OffsetPtr (const MR_Polyline3 *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_Polyline3MR_Polyline3_OffsetMutablePtr (MR_Polyline3 *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_Polyline3MR_Polyline3_ConstructFromAnother (MR_PassBy _other_pass_by, MR_Polyline3 *_other)
 
MRC_API MR_Polyline3MR_Polyline3_Construct_1_std_vector_MR_Vector3f (const MR_std_vector_MR_Vector3f *contour)
 
MRC_API MR_Polyline3MR_Polyline3_Construct_1_std_vector_std_vector_MR_Vector3f (const MR_std_vector_std_vector_MR_Vector3f *contours)
 
MRC_API MR_Polyline3MR_Polyline3_Construct_2 (const MR_std_vector_MR_VertId *comp2firstVert, MR_PassBy ps_pass_by, MR_VertCoords *ps)
 
MRC_API void MR_Polyline3_Destroy (const MR_Polyline3 *_this)
 Destroys a heap-allocated instance of MR_Polyline3. Does nothing if the pointer is null.
 
MRC_API void MR_Polyline3_DestroyArray (const MR_Polyline3 *_this)
 Destroys a heap-allocated array of MR_Polyline3. Does nothing if the pointer is null.
 
MRC_API MR_Polyline3MR_Polyline3_AssignFromAnother (MR_Polyline3 *_this, MR_PassBy _other_pass_by, MR_Polyline3 *_other)
 
MRC_API MR_EdgeId MR_Polyline3_addFromPoints_3 (MR_Polyline3 *_this, const MR_Vector3f *vs, MR_uint64_t num, bool closed)
 
MRC_API MR_EdgeId MR_Polyline3_addFromPoints_2 (MR_Polyline3 *_this, const MR_Vector3f *vs, MR_uint64_t num)
 
MRC_API void MR_Polyline3_addPart (MR_Polyline3 *_this, const MR_Polyline3 *from, MR_VertMap *outVmap, MR_WholeEdgeMap *outEmap)
 
MRC_API void MR_Polyline3_addPartByMask (MR_Polyline3 *_this, const MR_Polyline3 *from, const MR_UndirectedEdgeBitSet *mask, MR_VertMap *outVmap, MR_EdgeMap *outEmap)
 
MRC_API void MR_Polyline3_pack (MR_Polyline3 *_this, MR_VertMap *outVmap, MR_WholeEdgeMap *outEmap)
 
MRC_API MR_Vector3f MR_Polyline3_orgPnt (const MR_Polyline3 *_this, MR_EdgeId e)
 
MRC_API MR_Vector3f MR_Polyline3_destPnt (const MR_Polyline3 *_this, MR_EdgeId e)
 
MRC_API MR_Vector3f MR_Polyline3_edgePoint_2 (const MR_Polyline3 *_this, MR_EdgeId e, float f)
 
MRC_API MR_Vector3f MR_Polyline3_edgePoint_1 (const MR_Polyline3 *_this, const MR_EdgePoint *ep)
 
MRC_API MR_Vector3f MR_Polyline3_edgeCenter (const MR_Polyline3 *_this, MR_EdgeId e)
 
MRC_API MR_Vector3f MR_Polyline3_edgeVector (const MR_Polyline3 *_this, MR_EdgeId e)
 
MRC_API MR_LineSegm3fMR_Polyline3_edgeSegment (const MR_Polyline3 *_this, MR_EdgeId e)
 
MRC_API MR_EdgePointMR_Polyline3_toEdgePoint_1 (const MR_Polyline3 *_this, MR_VertId v)
 
MRC_API MR_EdgePointMR_Polyline3_toEdgePoint_2 (const MR_Polyline3 *_this, MR_EdgeId e, const MR_Vector3f *p)
 
MRC_API float MR_Polyline3_edgeLength (const MR_Polyline3 *_this, MR_EdgeId e)
 
MRC_API float MR_Polyline3_edgeLengthSq (const MR_Polyline3 *_this, MR_EdgeId e)
 
MRC_API MR_Vector3f MR_Polyline3_loopDirArea (const MR_Polyline3 *_this, MR_EdgeId e)
 
MRC_API float MR_Polyline3_totalLength (const MR_Polyline3 *_this)
 
MRC_API float MR_Polyline3_averageEdgeLength (const MR_Polyline3 *_this)
 
MRC_API const MR_AABBTreePolyline3MR_Polyline3_getAABBTree (const MR_Polyline3 *_this)
 
MRC_API const MR_AABBTreePolyline3MR_Polyline3_getAABBTreeNotCreate (const MR_Polyline3 *_this)
 
MRC_API MR_Box3f MR_Polyline3_getBoundingBox (const MR_Polyline3 *_this)
 
MRC_API MR_Box3f MR_Polyline3_computeBoundingBox (const MR_Polyline3 *_this, const MR_AffineXf3f *toWorld)
 
MRC_API MR_Vector3f MR_Polyline3_findCenterFromPoints (const MR_Polyline3 *_this)
 
MRC_API void MR_Polyline3_transform (MR_Polyline3 *_this, const MR_AffineXf3f *xf)
 
MRC_API MR_EdgeId MR_Polyline3_splitEdge_2 (MR_Polyline3 *_this, MR_EdgeId e, const MR_Vector3f *newVertPos)
 
MRC_API MR_EdgeId MR_Polyline3_splitEdge_1 (MR_Polyline3 *_this, MR_EdgeId e)
 
MRC_API void MR_Polyline3_invalidateCaches (MR_Polyline3 *_this)
 
MRC_API MR_std_vector_std_vector_MR_Vector3fMR_Polyline3_contours (const MR_Polyline3 *_this, MR_std_vector_std_vector_MR_VertId *vertMap)
 
MRC_API MR_EdgeId MR_Polyline3_addFromEdgePath (MR_Polyline3 *_this, const MR_Mesh *mesh, const MR_std_vector_MR_EdgeId *path)
 
MRC_API MR_EdgeId MR_Polyline3_addFromSurfacePath (MR_Polyline3 *_this, const MR_Mesh *mesh, const MR_std_vector_MR_EdgePoint *path)
 
MRC_API MR_EdgeId MR_Polyline3_addFromGeneralSurfacePath (MR_Polyline3 *_this, const MR_Mesh *mesh, const MR_MeshTriPoint *start, const MR_std_vector_MR_EdgePoint *path, const MR_MeshTriPoint *end)
 
MRC_API MR_uint64_t MR_Polyline3_heapBytes (const MR_Polyline3 *_this)
 
MRC_API void MR_Polyline3_mirror (MR_Polyline3 *_this, const MR_Plane3f *plane)
 

Typedef Documentation

◆ MR_AABBTreePolyline2

◆ MR_AABBTreePolyline3

◆ MR_AffineXf2f

typedef struct MR_AffineXf2f MR_AffineXf2f

◆ MR_AffineXf3f

typedef struct MR_AffineXf3f MR_AffineXf3f

◆ MR_EdgeMap

typedef struct MR_EdgeMap MR_EdgeMap

◆ MR_EdgePoint

typedef struct MR_EdgePoint MR_EdgePoint

◆ MR_LineSegm2f

typedef struct MR_LineSegm2f MR_LineSegm2f

◆ MR_LineSegm3f

typedef struct MR_LineSegm3f MR_LineSegm3f

◆ MR_Mesh

typedef struct MR_Mesh MR_Mesh

◆ MR_MeshTriPoint

◆ MR_Plane3f

typedef struct MR_Plane3f MR_Plane3f

◆ MR_Polyline2

typedef struct MR_Polyline2 MR_Polyline2

polyline that stores points of type V Generated from class MR::Polyline2.

◆ MR_Polyline3

typedef struct MR_Polyline3 MR_Polyline3

polyline that stores points of type V Generated from class MR::Polyline3.

◆ MR_PolylineTopology

◆ MR_std_vector_MR_EdgeId

◆ MR_std_vector_MR_EdgePoint

◆ MR_std_vector_MR_Vector2f

◆ MR_std_vector_MR_Vector3f

◆ MR_std_vector_MR_VertId

◆ MR_std_vector_std_vector_MR_Vector2f

◆ MR_std_vector_std_vector_MR_Vector3f

◆ MR_std_vector_std_vector_MR_VertId

◆ MR_UndirectedEdgeBitSet

◆ MR_VertCoords

typedef struct MR_VertCoords MR_VertCoords

◆ MR_VertCoords2

◆ MR_VertMap

typedef struct MR_VertMap MR_VertMap

◆ MR_WholeEdgeMap

Function Documentation

◆ MR_Polyline2_addFromEdgePath()

MRC_API MR_EdgeId MR_Polyline2_addFromEdgePath ( MR_Polyline2 * _this,
const MR_Mesh * mesh,
const MR_std_vector_MR_EdgeId * path )

adds path to this polyline

Returns
the edge from first new to second new vertex Generated from a method of class MR::Polyline2 named addFromEdgePath. Parameter _this can not be null. It is a single object. Parameter mesh can not be null. It is a single object. Parameter path can not be null. It is a single object.

◆ MR_Polyline2_addFromGeneralSurfacePath()

MRC_API MR_EdgeId MR_Polyline2_addFromGeneralSurfacePath ( MR_Polyline2 * _this,
const MR_Mesh * mesh,
const MR_MeshTriPoint * start,
const MR_std_vector_MR_EdgePoint * path,
const MR_MeshTriPoint * end )

adds general path = start-path-end (where both start and end are optional) to this polyline

Returns
the edge from first new to second new vertex Generated from a method of class MR::Polyline2 named addFromGeneralSurfacePath. Parameter _this can not be null. It is a single object. Parameter mesh can not be null. It is a single object. Parameter start can not be null. It is a single object. Parameter path can not be null. It is a single object. Parameter end can not be null. It is a single object.

◆ MR_Polyline2_addFromPoints_2()

MRC_API MR_EdgeId MR_Polyline2_addFromPoints_2 ( MR_Polyline2 * _this,
const MR_Vector2f * vs,
MR_uint64_t num )

adds connected line in this, passing progressively via points *[vs, vs+num)

if num > 2 && vs[0] == vs[num-1] then a closed line is created

Returns
the edge from first new to second new vertex Generated from a method of class MR::Polyline2 named addFromPoints. Parameter _this can not be null. It is a single object.

◆ MR_Polyline2_addFromPoints_3()

MRC_API MR_EdgeId MR_Polyline2_addFromPoints_3 ( MR_Polyline2 * _this,
const MR_Vector2f * vs,
MR_uint64_t num,
bool closed )

adds connected line in this, passing progressively via points *[vs, vs+num)

if closed argument is true then the last and the first points will be additionally connected

Returns
the edge from first new to second new vertex
Generated from a method of class MR::Polyline2 named addFromPoints. Parameter _this can not be null. It is a single object.

◆ MR_Polyline2_addFromSurfacePath()

MRC_API MR_EdgeId MR_Polyline2_addFromSurfacePath ( MR_Polyline2 * _this,
const MR_Mesh * mesh,
const MR_std_vector_MR_EdgePoint * path )

adds path to this polyline

Returns
the edge from first new to second new vertex Generated from a method of class MR::Polyline2 named addFromSurfacePath. Parameter _this can not be null. It is a single object. Parameter mesh can not be null. It is a single object. Parameter path can not be null. It is a single object.

◆ MR_Polyline2_addPart()

MRC_API void MR_Polyline2_addPart ( MR_Polyline2 * _this,
const MR_Polyline2 * from,
MR_VertMap * outVmap,
MR_WholeEdgeMap * outEmap )

appends polyline (from) in addition to this polyline: creates new edges, verts and points;

Parameters
outVmap,outEmap(optionally) returns mappings: from.id -> this.id Generated from a method of class MR::Polyline2 named addPart. Parameter _this can not be null. It is a single object. Parameter from can not be null. It is a single object. Parameter outVmap defaults to a null pointer in C++. Parameter outEmap defaults to a null pointer in C++.

◆ MR_Polyline2_addPartByMask()

MRC_API void MR_Polyline2_addPartByMask ( MR_Polyline2 * _this,
const MR_Polyline2 * from,
const MR_UndirectedEdgeBitSet * mask,
MR_VertMap * outVmap,
MR_EdgeMap * outEmap )

appends polyline (from) in addition to this polyline: creates new edges, verts and points Generated from a method of class MR::Polyline2 named addPartByMask. Parameter _this can not be null. It is a single object. Parameter from can not be null. It is a single object. Parameter mask can not be null. It is a single object. Parameter outVmap defaults to a null pointer in C++. Parameter outEmap defaults to a null pointer in C++.

◆ MR_Polyline2_AssignFromAnother()

MRC_API MR_Polyline2 * MR_Polyline2_AssignFromAnother ( MR_Polyline2 * _this,
MR_PassBy _other_pass_by,
MR_Polyline2 * _other )

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

MRC_API float MR_Polyline2_averageEdgeLength ( const MR_Polyline2 * _this)

returns average edge length in the polyline Generated from a method of class MR::Polyline2 named averageEdgeLength. Parameter _this can not be null. It is a single object.

◆ MR_Polyline2_computeBoundingBox()

MRC_API MR_Box2f MR_Polyline2_computeBoundingBox ( const MR_Polyline2 * _this,
const MR_AffineXf2f * toWorld )

passes through all valid points and finds the minimal bounding box containing all of them

if toWorld transformation is given then returns minimal bounding box in world space Generated from a method of class MR::Polyline2 named computeBoundingBox. Parameter _this can not be null. It is a single object. Parameter toWorld defaults to a null pointer in C++.

◆ MR_Polyline2_Construct_1_std_vector_MR_Vector2f()

MRC_API MR_Polyline2 * MR_Polyline2_Construct_1_std_vector_MR_Vector2f ( const MR_std_vector_MR_Vector2f * contour)

creates polyline from one contour (open or closed) Generated from a constructor of class MR::Polyline2. Parameter contour can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_Polyline2_Destroy() to free it when you're done using it.

◆ MR_Polyline2_Construct_1_std_vector_std_vector_MR_Vector2f()

MRC_API MR_Polyline2 * MR_Polyline2_Construct_1_std_vector_std_vector_MR_Vector2f ( const MR_std_vector_std_vector_MR_Vector2f * contours)

creates polyline from several contours (each can be open or closed) Generated from a constructor of class MR::Polyline2. Parameter contours can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_Polyline2_Destroy() to free it when you're done using it.

◆ MR_Polyline2_Construct_2()

MRC_API MR_Polyline2 * MR_Polyline2_Construct_2 ( const MR_std_vector_MR_VertId * comp2firstVert,
MR_PassBy ps_pass_by,
MR_VertCoords2 * ps )

creates comp2firstVert.size()-1 not-closed polylines each pair (a,b) of indices in

Parameters
comp2firstVertdefines vertex range of a polyline [a,b)
pspoint coordinates Generated from a constructor of class MR::Polyline2. Parameter comp2firstVert can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_Polyline2_Destroy() to free it when you're done using it.

◆ MR_Polyline2_ConstructFromAnother()

MRC_API MR_Polyline2 * MR_Polyline2_ConstructFromAnother ( MR_PassBy _other_pass_by,
MR_Polyline2 * _other )

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

◆ MR_Polyline2_contours()

convert Polyline to simple contour structures with vector of points inside

if all even edges are consistently oriented, then the output contours will be oriented the same

Parameters
vertMapoptional output map for for each contour point to corresponding VertId Generated from a method of class MR::Polyline2 named contours. Parameter _this can not be null. It is a single object. Parameter vertMap defaults to a null pointer in C++. Never returns null. Returns an instance allocated on the heap! Must call MR_std_vector_std_vector_MR_Vector2f_Destroy() to free it when you're done using it.

◆ MR_Polyline2_DefaultConstruct()

MRC_API MR_Polyline2 * MR_Polyline2_DefaultConstruct ( void )

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

◆ MR_Polyline2_DefaultConstructArray()

MRC_API MR_Polyline2 * MR_Polyline2_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_Polyline2_DestroyArray(). Use MR_Polyline2_OffsetMutablePtr() and MR_Polyline2_OffsetPtr() to access the array elements.

◆ MR_Polyline2_destPnt()

MRC_API MR_Vector2f MR_Polyline2_destPnt ( const MR_Polyline2 * _this,
MR_EdgeId e )

returns coordinates of the edge destination Generated from a method of class MR::Polyline2 named destPnt. Parameter _this can not be null. It is a single object.

◆ MR_Polyline2_Destroy()

MRC_API void MR_Polyline2_Destroy ( const MR_Polyline2 * _this)

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

◆ MR_Polyline2_DestroyArray()

MRC_API void MR_Polyline2_DestroyArray ( const MR_Polyline2 * _this)

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

◆ MR_Polyline2_edgeCenter()

MRC_API MR_Vector2f MR_Polyline2_edgeCenter ( const MR_Polyline2 * _this,
MR_EdgeId e )

returns edge's centroid Generated from a method of class MR::Polyline2 named edgeCenter. Parameter _this can not be null. It is a single object.

◆ MR_Polyline2_edgeLength()

MRC_API float MR_Polyline2_edgeLength ( const MR_Polyline2 * _this,
MR_EdgeId e )

returns Euclidean length of the edge Generated from a method of class MR::Polyline2 named edgeLength. Parameter _this can not be null. It is a single object.

◆ MR_Polyline2_edgeLengthSq()

MRC_API float MR_Polyline2_edgeLengthSq ( const MR_Polyline2 * _this,
MR_EdgeId e )

returns squared Euclidean length of the edge (faster to compute than length) Generated from a method of class MR::Polyline2 named edgeLengthSq. Parameter _this can not be null. It is a single object.

◆ MR_Polyline2_edgePoint_1()

MRC_API MR_Vector2f MR_Polyline2_edgePoint_1 ( const MR_Polyline2 * _this,
const MR_EdgePoint * ep )

computes coordinates of point given as edge and relative position on it Generated from a method of class MR::Polyline2 named edgePoint. Parameter _this can not be null. It is a single object. Parameter ep can not be null. It is a single object.

◆ MR_Polyline2_edgePoint_2()

MRC_API MR_Vector2f MR_Polyline2_edgePoint_2 ( const MR_Polyline2 * _this,
MR_EdgeId e,
float f )

returns a point on the edge: origin point for f=0 and destination point for f=1 Generated from a method of class MR::Polyline2 named edgePoint. Parameter _this can not be null. It is a single object.

◆ MR_Polyline2_edgeSegment()

MRC_API MR_LineSegm2f * MR_Polyline2_edgeSegment ( const MR_Polyline2 * _this,
MR_EdgeId e )

returns line segment of given edge Generated from a method of class MR::Polyline2 named edgeSegment. Parameter _this can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_LineSegm2f_Destroy() to free it when you're done using it.

◆ MR_Polyline2_edgeVector()

MRC_API MR_Vector2f MR_Polyline2_edgeVector ( const MR_Polyline2 * _this,
MR_EdgeId e )

returns vector equal to edge destination point minus edge origin point Generated from a method of class MR::Polyline2 named edgeVector. Parameter _this can not be null. It is a single object.

◆ MR_Polyline2_findCenterFromPoints()

MRC_API MR_Vector2f MR_Polyline2_findCenterFromPoints ( const MR_Polyline2 * _this)

Generated from a method of class MR::Polyline2 named findCenterFromPoints. Parameter _this can not be null. It is a single object.

◆ MR_Polyline2_Get_points()

MRC_API const MR_VertCoords2 * MR_Polyline2_Get_points ( const MR_Polyline2 * _this)

Returns a pointer to a member variable of class MR::Polyline2 named points. 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_Polyline2_Get_topology()

MRC_API const MR_PolylineTopology * MR_Polyline2_Get_topology ( const MR_Polyline2 * _this)

Returns a pointer to a member variable of class MR::Polyline2 named topology. 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_Polyline2_getAABBTree()

MRC_API const MR_AABBTreePolyline2 * MR_Polyline2_getAABBTree ( const MR_Polyline2 * _this)

returns cached aabb-tree for this polyline, creating it if it did not exist in a thread-safe manner Generated from a method of class MR::Polyline2 named getAABBTree. 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_Polyline2_getAABBTreeNotCreate()

MRC_API const MR_AABBTreePolyline2 * MR_Polyline2_getAABBTreeNotCreate ( const MR_Polyline2 * _this)

returns cached aabb-tree for this polyline, but does not create it if it did not exist Generated from a method of class MR::Polyline2 named getAABBTreeNotCreate. Parameter _this can not be null. It is a single object.

◆ MR_Polyline2_getBoundingBox()

MRC_API MR_Box2f MR_Polyline2_getBoundingBox ( const MR_Polyline2 * _this)

returns the minimal bounding box containing all valid vertices (implemented via getAABBTree()) Generated from a method of class MR::Polyline2 named getBoundingBox. Parameter _this can not be null. It is a single object.

◆ MR_Polyline2_GetMutable_points()

MRC_API MR_VertCoords2 * MR_Polyline2_GetMutable_points ( MR_Polyline2 * _this)

Returns a mutable pointer to a member variable of class MR::Polyline2 named points. 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_Polyline2_GetMutable_topology()

MRC_API MR_PolylineTopology * MR_Polyline2_GetMutable_topology ( MR_Polyline2 * _this)

Returns a mutable pointer to a member variable of class MR::Polyline2 named topology. 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_Polyline2_heapBytes()

MRC_API MR_uint64_t MR_Polyline2_heapBytes ( const MR_Polyline2 * _this)

returns the amount of memory this object occupies on heap Generated from a method of class MR::Polyline2 named heapBytes. Parameter _this can not be null. It is a single object.

◆ MR_Polyline2_invalidateCaches()

MRC_API void MR_Polyline2_invalidateCaches ( MR_Polyline2 * _this)

Invalidates caches (e.g. aabb-tree) after a change in polyline Generated from a method of class MR::Polyline2 named invalidateCaches. Parameter _this can not be null. It is a single object.

◆ MR_Polyline2_loopDirArea()

MRC_API MR_Vector3f MR_Polyline2_loopDirArea ( const MR_Polyline2 * _this,
MR_EdgeId e )

calculates directed loop area if iterating in e direction .z = FLT_MAX if e does not represent a loop Generated from a method of class MR::Polyline2 named loopDirArea. Parameter _this can not be null. It is a single object.

◆ MR_Polyline2_OffsetMutablePtr()

MRC_API MR_Polyline2 * MR_Polyline2_OffsetMutablePtr ( MR_Polyline2 * 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_Polyline2_OffsetPtr()

MRC_API const MR_Polyline2 * MR_Polyline2_OffsetPtr ( const MR_Polyline2 * 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_Polyline2_orgPnt()

MRC_API MR_Vector2f MR_Polyline2_orgPnt ( const MR_Polyline2 * _this,
MR_EdgeId e )

returns coordinates of the edge origin Generated from a method of class MR::Polyline2 named orgPnt. Parameter _this can not be null. It is a single object.

◆ MR_Polyline2_pack()

MRC_API void MR_Polyline2_pack ( MR_Polyline2 * _this,
MR_VertMap * outVmap,
MR_WholeEdgeMap * outEmap )

tightly packs all arrays eliminating lone edges and invalid verts and points, optionally returns mappings: old.id -> new.id Generated from a method of class MR::Polyline2 named pack. Parameter _this can not be null. It is a single object. Parameter outVmap defaults to a null pointer in C++. Parameter outEmap defaults to a null pointer in C++.

◆ MR_Polyline2_Set_points()

MRC_API void MR_Polyline2_Set_points ( MR_Polyline2 * _this,
MR_PassBy value_pass_by,
MR_VertCoords2 * value )

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

◆ MR_Polyline2_Set_topology()

MRC_API void MR_Polyline2_Set_topology ( MR_Polyline2 * _this,
MR_PassBy value_pass_by,
MR_PolylineTopology * value )

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

◆ MR_Polyline2_splitEdge_1()

MRC_API MR_EdgeId MR_Polyline2_splitEdge_1 ( MR_Polyline2 * _this,
MR_EdgeId e )

Generated from a method of class MR::Polyline2 named splitEdge. Parameter _this can not be null. It is a single object.

◆ MR_Polyline2_splitEdge_2()

MRC_API MR_EdgeId MR_Polyline2_splitEdge_2 ( MR_Polyline2 * _this,
MR_EdgeId e,
const MR_Vector2f * newVertPos )

split given edge on two parts: dest(returned-edge) = org(e) - newly created vertex, org(returned-edge) = org(e-before-split), dest(e) = dest(e-before-split) Generated from a method of class MR::Polyline2 named splitEdge. Parameter _this can not be null. It is a single object. Parameter newVertPos can not be null. It is a single object.

◆ MR_Polyline2_toEdgePoint_1()

MRC_API MR_EdgePoint * MR_Polyline2_toEdgePoint_1 ( const MR_Polyline2 * _this,
MR_VertId v )

converts vertex into edge-point representation Generated from a method of class MR::Polyline2 named toEdgePoint. Parameter _this can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_EdgePoint_Destroy() to free it when you're done using it.

◆ MR_Polyline2_toEdgePoint_2()

MRC_API MR_EdgePoint * MR_Polyline2_toEdgePoint_2 ( const MR_Polyline2 * _this,
MR_EdgeId e,
const MR_Vector2f * p )

converts edge and point's coordinates into edge-point representation Generated from a method of class MR::Polyline2 named toEdgePoint. Parameter _this can not be null. It is a single object. Parameter p can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_EdgePoint_Destroy() to free it when you're done using it.

◆ MR_Polyline2_totalLength()

MRC_API float MR_Polyline2_totalLength ( const MR_Polyline2 * _this)

returns total length of the polyline Generated from a method of class MR::Polyline2 named totalLength. Parameter _this can not be null. It is a single object.

◆ MR_Polyline2_transform()

MRC_API void MR_Polyline2_transform ( MR_Polyline2 * _this,
const MR_AffineXf2f * xf )

applies given transformation to all valid polyline vertices Generated from a method of class MR::Polyline2 named transform. Parameter _this can not be null. It is a single object. Parameter xf can not be null. It is a single object.

◆ MR_Polyline3_addFromEdgePath()

MRC_API MR_EdgeId MR_Polyline3_addFromEdgePath ( MR_Polyline3 * _this,
const MR_Mesh * mesh,
const MR_std_vector_MR_EdgeId * path )

adds path to this polyline

Returns
the edge from first new to second new vertex Generated from a method of class MR::Polyline3 named addFromEdgePath. Parameter _this can not be null. It is a single object. Parameter mesh can not be null. It is a single object. Parameter path can not be null. It is a single object.

◆ MR_Polyline3_addFromGeneralSurfacePath()

MRC_API MR_EdgeId MR_Polyline3_addFromGeneralSurfacePath ( MR_Polyline3 * _this,
const MR_Mesh * mesh,
const MR_MeshTriPoint * start,
const MR_std_vector_MR_EdgePoint * path,
const MR_MeshTriPoint * end )

adds general path = start-path-end (where both start and end are optional) to this polyline

Returns
the edge from first new to second new vertex Generated from a method of class MR::Polyline3 named addFromGeneralSurfacePath. Parameter _this can not be null. It is a single object. Parameter mesh can not be null. It is a single object. Parameter start can not be null. It is a single object. Parameter path can not be null. It is a single object. Parameter end can not be null. It is a single object.

◆ MR_Polyline3_addFromPoints_2()

MRC_API MR_EdgeId MR_Polyline3_addFromPoints_2 ( MR_Polyline3 * _this,
const MR_Vector3f * vs,
MR_uint64_t num )

adds connected line in this, passing progressively via points *[vs, vs+num)

if num > 2 && vs[0] == vs[num-1] then a closed line is created

Returns
the edge from first new to second new vertex Generated from a method of class MR::Polyline3 named addFromPoints. Parameter _this can not be null. It is a single object.

◆ MR_Polyline3_addFromPoints_3()

MRC_API MR_EdgeId MR_Polyline3_addFromPoints_3 ( MR_Polyline3 * _this,
const MR_Vector3f * vs,
MR_uint64_t num,
bool closed )

adds connected line in this, passing progressively via points *[vs, vs+num)

if closed argument is true then the last and the first points will be additionally connected

Returns
the edge from first new to second new vertex
Generated from a method of class MR::Polyline3 named addFromPoints. Parameter _this can not be null. It is a single object.

◆ MR_Polyline3_addFromSurfacePath()

MRC_API MR_EdgeId MR_Polyline3_addFromSurfacePath ( MR_Polyline3 * _this,
const MR_Mesh * mesh,
const MR_std_vector_MR_EdgePoint * path )

adds path to this polyline

Returns
the edge from first new to second new vertex Generated from a method of class MR::Polyline3 named addFromSurfacePath. Parameter _this can not be null. It is a single object. Parameter mesh can not be null. It is a single object. Parameter path can not be null. It is a single object.

◆ MR_Polyline3_addPart()

MRC_API void MR_Polyline3_addPart ( MR_Polyline3 * _this,
const MR_Polyline3 * from,
MR_VertMap * outVmap,
MR_WholeEdgeMap * outEmap )

appends polyline (from) in addition to this polyline: creates new edges, verts and points;

Parameters
outVmap,outEmap(optionally) returns mappings: from.id -> this.id Generated from a method of class MR::Polyline3 named addPart. Parameter _this can not be null. It is a single object. Parameter from can not be null. It is a single object. Parameter outVmap defaults to a null pointer in C++. Parameter outEmap defaults to a null pointer in C++.

◆ MR_Polyline3_addPartByMask()

MRC_API void MR_Polyline3_addPartByMask ( MR_Polyline3 * _this,
const MR_Polyline3 * from,
const MR_UndirectedEdgeBitSet * mask,
MR_VertMap * outVmap,
MR_EdgeMap * outEmap )

appends polyline (from) in addition to this polyline: creates new edges, verts and points Generated from a method of class MR::Polyline3 named addPartByMask. Parameter _this can not be null. It is a single object. Parameter from can not be null. It is a single object. Parameter mask can not be null. It is a single object. Parameter outVmap defaults to a null pointer in C++. Parameter outEmap defaults to a null pointer in C++.

◆ MR_Polyline3_AssignFromAnother()

MRC_API MR_Polyline3 * MR_Polyline3_AssignFromAnother ( MR_Polyline3 * _this,
MR_PassBy _other_pass_by,
MR_Polyline3 * _other )

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

MRC_API float MR_Polyline3_averageEdgeLength ( const MR_Polyline3 * _this)

returns average edge length in the polyline Generated from a method of class MR::Polyline3 named averageEdgeLength. Parameter _this can not be null. It is a single object.

◆ MR_Polyline3_computeBoundingBox()

MRC_API MR_Box3f MR_Polyline3_computeBoundingBox ( const MR_Polyline3 * _this,
const MR_AffineXf3f * toWorld )

passes through all valid points and finds the minimal bounding box containing all of them

if toWorld transformation is given then returns minimal bounding box in world space Generated from a method of class MR::Polyline3 named computeBoundingBox. Parameter _this can not be null. It is a single object. Parameter toWorld defaults to a null pointer in C++.

◆ MR_Polyline3_Construct_1_std_vector_MR_Vector3f()

MRC_API MR_Polyline3 * MR_Polyline3_Construct_1_std_vector_MR_Vector3f ( const MR_std_vector_MR_Vector3f * contour)

creates polyline from one contour (open or closed) Generated from a constructor of class MR::Polyline3. Parameter contour can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_Polyline3_Destroy() to free it when you're done using it.

◆ MR_Polyline3_Construct_1_std_vector_std_vector_MR_Vector3f()

MRC_API MR_Polyline3 * MR_Polyline3_Construct_1_std_vector_std_vector_MR_Vector3f ( const MR_std_vector_std_vector_MR_Vector3f * contours)

creates polyline from several contours (each can be open or closed) Generated from a constructor of class MR::Polyline3. Parameter contours can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_Polyline3_Destroy() to free it when you're done using it.

◆ MR_Polyline3_Construct_2()

MRC_API MR_Polyline3 * MR_Polyline3_Construct_2 ( const MR_std_vector_MR_VertId * comp2firstVert,
MR_PassBy ps_pass_by,
MR_VertCoords * ps )

creates comp2firstVert.size()-1 not-closed polylines each pair (a,b) of indices in

Parameters
comp2firstVertdefines vertex range of a polyline [a,b)
pspoint coordinates Generated from a constructor of class MR::Polyline3. Parameter comp2firstVert can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_Polyline3_Destroy() to free it when you're done using it.

◆ MR_Polyline3_ConstructFromAnother()

MRC_API MR_Polyline3 * MR_Polyline3_ConstructFromAnother ( MR_PassBy _other_pass_by,
MR_Polyline3 * _other )

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

◆ MR_Polyline3_contours()

convert Polyline to simple contour structures with vector of points inside

if all even edges are consistently oriented, then the output contours will be oriented the same

Parameters
vertMapoptional output map for for each contour point to corresponding VertId Generated from a method of class MR::Polyline3 named contours. Parameter _this can not be null. It is a single object. Parameter vertMap defaults to a null pointer in C++. Never returns null. Returns an instance allocated on the heap! Must call MR_std_vector_std_vector_MR_Vector3f_Destroy() to free it when you're done using it.

◆ MR_Polyline3_DefaultConstruct()

MRC_API MR_Polyline3 * MR_Polyline3_DefaultConstruct ( void )

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

◆ MR_Polyline3_DefaultConstructArray()

MRC_API MR_Polyline3 * MR_Polyline3_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_Polyline3_DestroyArray(). Use MR_Polyline3_OffsetMutablePtr() and MR_Polyline3_OffsetPtr() to access the array elements.

◆ MR_Polyline3_destPnt()

MRC_API MR_Vector3f MR_Polyline3_destPnt ( const MR_Polyline3 * _this,
MR_EdgeId e )

returns coordinates of the edge destination Generated from a method of class MR::Polyline3 named destPnt. Parameter _this can not be null. It is a single object.

◆ MR_Polyline3_Destroy()

MRC_API void MR_Polyline3_Destroy ( const MR_Polyline3 * _this)

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

◆ MR_Polyline3_DestroyArray()

MRC_API void MR_Polyline3_DestroyArray ( const MR_Polyline3 * _this)

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

◆ MR_Polyline3_edgeCenter()

MRC_API MR_Vector3f MR_Polyline3_edgeCenter ( const MR_Polyline3 * _this,
MR_EdgeId e )

returns edge's centroid Generated from a method of class MR::Polyline3 named edgeCenter. Parameter _this can not be null. It is a single object.

◆ MR_Polyline3_edgeLength()

MRC_API float MR_Polyline3_edgeLength ( const MR_Polyline3 * _this,
MR_EdgeId e )

returns Euclidean length of the edge Generated from a method of class MR::Polyline3 named edgeLength. Parameter _this can not be null. It is a single object.

◆ MR_Polyline3_edgeLengthSq()

MRC_API float MR_Polyline3_edgeLengthSq ( const MR_Polyline3 * _this,
MR_EdgeId e )

returns squared Euclidean length of the edge (faster to compute than length) Generated from a method of class MR::Polyline3 named edgeLengthSq. Parameter _this can not be null. It is a single object.

◆ MR_Polyline3_edgePoint_1()

MRC_API MR_Vector3f MR_Polyline3_edgePoint_1 ( const MR_Polyline3 * _this,
const MR_EdgePoint * ep )

computes coordinates of point given as edge and relative position on it Generated from a method of class MR::Polyline3 named edgePoint. Parameter _this can not be null. It is a single object. Parameter ep can not be null. It is a single object.

◆ MR_Polyline3_edgePoint_2()

MRC_API MR_Vector3f MR_Polyline3_edgePoint_2 ( const MR_Polyline3 * _this,
MR_EdgeId e,
float f )

returns a point on the edge: origin point for f=0 and destination point for f=1 Generated from a method of class MR::Polyline3 named edgePoint. Parameter _this can not be null. It is a single object.

◆ MR_Polyline3_edgeSegment()

MRC_API MR_LineSegm3f * MR_Polyline3_edgeSegment ( const MR_Polyline3 * _this,
MR_EdgeId e )

returns line segment of given edge Generated from a method of class MR::Polyline3 named edgeSegment. Parameter _this can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_LineSegm3f_Destroy() to free it when you're done using it.

◆ MR_Polyline3_edgeVector()

MRC_API MR_Vector3f MR_Polyline3_edgeVector ( const MR_Polyline3 * _this,
MR_EdgeId e )

returns vector equal to edge destination point minus edge origin point Generated from a method of class MR::Polyline3 named edgeVector. Parameter _this can not be null. It is a single object.

◆ MR_Polyline3_findCenterFromPoints()

MRC_API MR_Vector3f MR_Polyline3_findCenterFromPoints ( const MR_Polyline3 * _this)

Generated from a method of class MR::Polyline3 named findCenterFromPoints. Parameter _this can not be null. It is a single object.

◆ MR_Polyline3_Get_points()

MRC_API const MR_VertCoords * MR_Polyline3_Get_points ( const MR_Polyline3 * _this)

Returns a pointer to a member variable of class MR::Polyline3 named points. 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_Polyline3_Get_topology()

MRC_API const MR_PolylineTopology * MR_Polyline3_Get_topology ( const MR_Polyline3 * _this)

Returns a pointer to a member variable of class MR::Polyline3 named topology. 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_Polyline3_getAABBTree()

MRC_API const MR_AABBTreePolyline3 * MR_Polyline3_getAABBTree ( const MR_Polyline3 * _this)

returns cached aabb-tree for this polyline, creating it if it did not exist in a thread-safe manner Generated from a method of class MR::Polyline3 named getAABBTree. 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_Polyline3_getAABBTreeNotCreate()

MRC_API const MR_AABBTreePolyline3 * MR_Polyline3_getAABBTreeNotCreate ( const MR_Polyline3 * _this)

returns cached aabb-tree for this polyline, but does not create it if it did not exist Generated from a method of class MR::Polyline3 named getAABBTreeNotCreate. Parameter _this can not be null. It is a single object.

◆ MR_Polyline3_getBoundingBox()

MRC_API MR_Box3f MR_Polyline3_getBoundingBox ( const MR_Polyline3 * _this)

returns the minimal bounding box containing all valid vertices (implemented via getAABBTree()) Generated from a method of class MR::Polyline3 named getBoundingBox. Parameter _this can not be null. It is a single object.

◆ MR_Polyline3_GetMutable_points()

MRC_API MR_VertCoords * MR_Polyline3_GetMutable_points ( MR_Polyline3 * _this)

Returns a mutable pointer to a member variable of class MR::Polyline3 named points. 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_Polyline3_GetMutable_topology()

MRC_API MR_PolylineTopology * MR_Polyline3_GetMutable_topology ( MR_Polyline3 * _this)

Returns a mutable pointer to a member variable of class MR::Polyline3 named topology. 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_Polyline3_heapBytes()

MRC_API MR_uint64_t MR_Polyline3_heapBytes ( const MR_Polyline3 * _this)

returns the amount of memory this object occupies on heap Generated from a method of class MR::Polyline3 named heapBytes. Parameter _this can not be null. It is a single object.

◆ MR_Polyline3_invalidateCaches()

MRC_API void MR_Polyline3_invalidateCaches ( MR_Polyline3 * _this)

Invalidates caches (e.g. aabb-tree) after a change in polyline Generated from a method of class MR::Polyline3 named invalidateCaches. Parameter _this can not be null. It is a single object.

◆ MR_Polyline3_loopDirArea()

MRC_API MR_Vector3f MR_Polyline3_loopDirArea ( const MR_Polyline3 * _this,
MR_EdgeId e )

calculates directed loop area if iterating in e direction .z = FLT_MAX if e does not represent a loop Generated from a method of class MR::Polyline3 named loopDirArea. Parameter _this can not be null. It is a single object.

◆ MR_Polyline3_mirror()

MRC_API void MR_Polyline3_mirror ( MR_Polyline3 * _this,
const MR_Plane3f * plane )

reflects the polyline from a given plane. Enabled only for Polyline3f Generated from a method of class MR::Polyline3 named mirror<MR::Vector3f>. Parameter _this can not be null. It is a single object. Parameter plane can not be null. It is a single object.

◆ MR_Polyline3_OffsetMutablePtr()

MRC_API MR_Polyline3 * MR_Polyline3_OffsetMutablePtr ( MR_Polyline3 * 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_Polyline3_OffsetPtr()

MRC_API const MR_Polyline3 * MR_Polyline3_OffsetPtr ( const MR_Polyline3 * 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_Polyline3_orgPnt()

MRC_API MR_Vector3f MR_Polyline3_orgPnt ( const MR_Polyline3 * _this,
MR_EdgeId e )

returns coordinates of the edge origin Generated from a method of class MR::Polyline3 named orgPnt. Parameter _this can not be null. It is a single object.

◆ MR_Polyline3_pack()

MRC_API void MR_Polyline3_pack ( MR_Polyline3 * _this,
MR_VertMap * outVmap,
MR_WholeEdgeMap * outEmap )

tightly packs all arrays eliminating lone edges and invalid verts and points, optionally returns mappings: old.id -> new.id Generated from a method of class MR::Polyline3 named pack. Parameter _this can not be null. It is a single object. Parameter outVmap defaults to a null pointer in C++. Parameter outEmap defaults to a null pointer in C++.

◆ MR_Polyline3_Set_points()

MRC_API void MR_Polyline3_Set_points ( MR_Polyline3 * _this,
MR_PassBy value_pass_by,
MR_VertCoords * value )

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

◆ MR_Polyline3_Set_topology()

MRC_API void MR_Polyline3_Set_topology ( MR_Polyline3 * _this,
MR_PassBy value_pass_by,
MR_PolylineTopology * value )

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

◆ MR_Polyline3_splitEdge_1()

MRC_API MR_EdgeId MR_Polyline3_splitEdge_1 ( MR_Polyline3 * _this,
MR_EdgeId e )

Generated from a method of class MR::Polyline3 named splitEdge. Parameter _this can not be null. It is a single object.

◆ MR_Polyline3_splitEdge_2()

MRC_API MR_EdgeId MR_Polyline3_splitEdge_2 ( MR_Polyline3 * _this,
MR_EdgeId e,
const MR_Vector3f * newVertPos )

split given edge on two parts: dest(returned-edge) = org(e) - newly created vertex, org(returned-edge) = org(e-before-split), dest(e) = dest(e-before-split) Generated from a method of class MR::Polyline3 named splitEdge. Parameter _this can not be null. It is a single object. Parameter newVertPos can not be null. It is a single object.

◆ MR_Polyline3_toEdgePoint_1()

MRC_API MR_EdgePoint * MR_Polyline3_toEdgePoint_1 ( const MR_Polyline3 * _this,
MR_VertId v )

converts vertex into edge-point representation Generated from a method of class MR::Polyline3 named toEdgePoint. Parameter _this can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_EdgePoint_Destroy() to free it when you're done using it.

◆ MR_Polyline3_toEdgePoint_2()

MRC_API MR_EdgePoint * MR_Polyline3_toEdgePoint_2 ( const MR_Polyline3 * _this,
MR_EdgeId e,
const MR_Vector3f * p )

converts edge and point's coordinates into edge-point representation Generated from a method of class MR::Polyline3 named toEdgePoint. Parameter _this can not be null. It is a single object. Parameter p can not be null. It is a single object. Never returns null. Returns an instance allocated on the heap! Must call MR_EdgePoint_Destroy() to free it when you're done using it.

◆ MR_Polyline3_totalLength()

MRC_API float MR_Polyline3_totalLength ( const MR_Polyline3 * _this)

returns total length of the polyline Generated from a method of class MR::Polyline3 named totalLength. Parameter _this can not be null. It is a single object.

◆ MR_Polyline3_transform()

MRC_API void MR_Polyline3_transform ( MR_Polyline3 * _this,
const MR_AffineXf3f * xf )

applies given transformation to all valid polyline vertices Generated from a method of class MR::Polyline3 named transform. Parameter _this can not be null. It is a single object. Parameter xf can not be null. It is a single object.