MeshLib C Docs
Loading...
Searching...
No Matches
MRPolylineProject.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMesh/MRId.h>
4#include <MRCMesh/MRVector2.h>
5#include <MRCMesh/MRVector3.h>
6#include <MRCMisc/exports.h>
7
8#include <stdbool.h>
9#include <stddef.h>
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15typedef struct MR_AABBTreePolyline3 MR_AABBTreePolyline3; // Defined in `#include <MRCMesh/MRAABBTreePolyline.h>`.
16typedef struct MR_AffineXf2f MR_AffineXf2f; // Defined in `#include <MRCMesh/MRAffineXf.h>`.
17typedef struct MR_AffineXf3f MR_AffineXf3f; // Defined in `#include <MRCMesh/MRAffineXf.h>`.
18typedef struct MR_Line3f MR_Line3f; // Defined in `#include <MRCMesh/MRLine.h>`.
19typedef struct MR_Mesh MR_Mesh; // Defined in `#include <MRCMesh/MRMesh.h>`.
20typedef struct MR_Polyline2 MR_Polyline2; // Defined in `#include <MRCMesh/MRPolyline.h>`.
21typedef struct MR_Polyline3 MR_Polyline3; // Defined in `#include <MRCMesh/MRPolyline.h>`.
22typedef struct MR_UndirectedEdgeScalars MR_UndirectedEdgeScalars; // Defined in `#include <MRCMesh/MRVector.h>`.
23typedef struct MR_VertBitSet MR_VertBitSet; // Defined in `#include <MRCMesh/MRBitSet.h>`.
24typedef struct MR_VertCoords MR_VertCoords; // Defined in `#include <MRCMesh/MRVector.h>`.
25typedef struct MR_std_function_void_from_MR_UndirectedEdgeId_const_MR_Vector2f_ref_float MR_std_function_void_from_MR_UndirectedEdgeId_const_MR_Vector2f_ref_float; // Defined in `#include <MRCMisc/std_function_void_from_MR_UndirectedEdgeId_const_MR_Vector2f_ref_float.h>`.
26typedef struct MR_std_function_void_from_MR_UndirectedEdgeId_const_MR_Vector3f_ref_float MR_std_function_void_from_MR_UndirectedEdgeId_const_MR_Vector3f_ref_float; // Defined in `#include <MRCMisc/std_function_void_from_MR_UndirectedEdgeId_const_MR_Vector3f_ref_float.h>`.
27
28
32
39
43
47
54
60
67
73
79
86
92
98
104
110
114
119
126
130
134
140
143
146
150
158
163
169
176
182
188
195
201
207
213
219
223
228
235
239
243
248
252
258
261
264
268
276
281
287
294
300
306
313
319
325
331
337
341
346
353
357
361
367
370
373
381
387
394
400
406
413
419
425
431
437
441
446
453
457
461
467
470
473
481
495MRC_API MR_PolylineProjectionResult2 *MR_findProjectionOnPolyline2(const MR_Vector2f *pt, const MR_Polyline2 *polyline, const float *upDistLimitSq, MR_AffineXf2f *xf, const float *loDistLimitSq);
496
510MRC_API MR_PolylineProjectionResult3 *MR_findProjectionOnPolyline_MR_Vector3f(const MR_Vector3f *pt, const MR_Polyline3 *polyline, const float *upDistLimitSq, MR_AffineXf3f *xf, const float *loDistLimitSq);
511
512// id of source point from which closest point was searched
517
518// id of source point from which closest point was searched
524
525// id of source point from which closest point was searched
530
536
543
549
555
562
568
574
580
586
590
595
599
603
607
610
616
619
622
626
634
639
652MRC_API MR_PolylineProjectionResult3Arg *MR_findMaxProjectionOnPolyline(const MR_VertCoords *points, const MR_Polyline3 *polyline, const MR_VertBitSet *pointsRegion, MR_AffineXf3f *xf, const float *loDistLimitSq);
653
667MRC_API MR_PolylineProjectionResult3 *MR_findProjectionOnPolyline_MR_Line3f(const MR_Line3f *ln, const MR_Polyline3 *polyline, const float *upDistLimitSq, MR_AffineXf3f *xf, const float *loDistLimitSq);
668
684MRC_API MR_Polyline2ProjectionWithOffsetResult *MR_findProjectionOnPolyline2WithOffset(const MR_Vector2f *pt, const MR_Polyline2 *polyline, const MR_UndirectedEdgeScalars *offsetPerEdge, const float *upDistLimit, MR_AffineXf2f *xf, const float *loDistLimit);
685
701MRC_API MR_PolylineProjectionWithOffsetResult3 *MR_findProjectionOnPolylineWithOffset(const MR_Vector3f *pt, const MR_Polyline3 *polyline, const MR_UndirectedEdgeScalars *offsetPerEdge, const float *upDistLimit, MR_AffineXf3f *xf, const float *loDistLimit);
702
710
718
727
742MRC_API MR_PolylineProjectionResult3 *MR_findProjectionOnMeshEdges_MR_Vector3f(const MR_Vector3f *pt, const MR_Mesh *mesh, const MR_AABBTreePolyline3 *tree, const float *upDistLimitSq, MR_AffineXf3f *xf, const float *loDistLimitSq);
743
758MRC_API MR_PolylineProjectionResult3 *MR_findProjectionOnMeshEdges_MR_Line3f(const MR_Line3f *ln, const MR_Mesh *mesh, const MR_AABBTreePolyline3 *tree, const float *upDistLimitSq, MR_AffineXf3f *xf, const float *loDistLimitSq);
759
760#ifdef __cplusplus
761} // extern "C"
762#endif
struct MR_AABBTreePolyline3 MR_AABBTreePolyline3
Definition MRAABBTreeBase.h:21
struct MR_VertCoords MR_VertCoords
Definition MRAABBTreePoints.h:21
struct MR_Polyline3 MR_Polyline3
Definition MRAABBTreePolyline.h:21
struct MR_Polyline2 MR_Polyline2
Definition MRAABBTreePolyline.h:20
struct MR_VertBitSet MR_VertBitSet
Definition MRAABBTree.h:22
struct MR_UndirectedEdgeScalars MR_UndirectedEdgeScalars
Definition MRAggregateFlow.h:16
struct MR_Line3f MR_Line3f
Definition MRBestFit.h:17
struct MR_Mesh MR_Mesh
Definition MRCtm.h:16
MRC_API void MR_Polyline2ProjectionWithOffsetResult_Set_dist(MR_Polyline2ProjectionWithOffsetResult *_this, float value)
MRC_API MR_PolylineProjectionWithOffsetResult3 * MR_PolylineProjectionWithOffsetResult3_AssignFromAnother(MR_PolylineProjectionWithOffsetResult3 *_this, const MR_PolylineProjectionWithOffsetResult3 *_other)
MRC_API MR_Polyline2ProjectionWithOffsetResult * MR_Polyline2ProjectionWithOffsetResult_AssignFromAnother(MR_Polyline2ProjectionWithOffsetResult *_this, const MR_Polyline2ProjectionWithOffsetResult *_other)
MRC_API void MR_PolylineProjectionResult3_Destroy(const MR_PolylineProjectionResult3 *_this)
Destroys a heap-allocated instance of MR_PolylineProjectionResult3. Does nothing if the pointer is nu...
MRC_API float * MR_PolylineProjectionWithOffsetResult3_GetMutable_dist(MR_PolylineProjectionWithOffsetResult3 *_this)
MRC_API MR_PolylineProjectionWithOffsetResult3 * MR_PolylineProjectionWithOffsetResult3_DefaultConstruct(void)
MRC_API bool MR_PolylineProjectionResult2_valid(const MR_PolylineProjectionResult2 *_this)
MRC_API const MR_Vector3f * MR_PolylineProjectionResult3Arg_Get_point(const MR_PolylineProjectionResult3Arg *_this)
MRC_API MR_Vector2f * MR_PolylineProjectionResult2_GetMutable_point(MR_PolylineProjectionResult2 *_this)
MRC_API const MR_UndirectedEdgeId * MR_PolylineProjectionResult3_Get_line(const MR_PolylineProjectionResult3 *_this)
MRC_API void MR_findEdgesInBall_MR_Polyline3(const MR_Polyline3 *polyline, const MR_Vector3f *center, float radius, const MR_std_function_void_from_MR_UndirectedEdgeId_const_MR_Vector3f_ref_float *foundCallback, MR_AffineXf3f *xf)
MRC_API void MR_PolylineProjectionResult3Arg_Set_pointId(MR_PolylineProjectionResult3Arg *_this, MR_VertId value)
struct MR_std_function_void_from_MR_UndirectedEdgeId_const_MR_Vector2f_ref_float MR_std_function_void_from_MR_UndirectedEdgeId_const_MR_Vector2f_ref_float
Definition MRPolylineProject.h:25
MRC_API MR_VertId * MR_PolylineProjectionResult3Arg_GetMutable_pointId(MR_PolylineProjectionResult3Arg *_this)
MRC_API MR_UndirectedEdgeId * MR_PolylineProjectionWithOffsetResult3_GetMutable_line(MR_PolylineProjectionWithOffsetResult3 *_this)
MRC_API const MR_UndirectedEdgeId * MR_PolylineProjectionResult2_Get_line(const MR_PolylineProjectionResult2 *_this)
MRC_API MR_Vector3f * MR_PolylineProjectionResult3Arg_GetMutable_point(MR_PolylineProjectionResult3Arg *_this)
MRC_API void MR_PolylineProjectionResult2_DestroyArray(const MR_PolylineProjectionResult2 *_this)
Destroys a heap-allocated array of MR_PolylineProjectionResult2. Does nothing if the pointer is null.
MRC_API const MR_UndirectedEdgeId * MR_PolylineProjectionResult3Arg_Get_line(const MR_PolylineProjectionResult3Arg *_this)
MRC_API const MR_PolylineProjectionResult3Arg * MR_PolylineProjectionResult3_StaticDowncastTo_MR_PolylineProjectionResult3Arg(const MR_PolylineProjectionResult3 *object)
MRC_API void MR_PolylineProjectionResult3_DestroyArray(const MR_PolylineProjectionResult3 *_this)
Destroys a heap-allocated array of MR_PolylineProjectionResult3. Does nothing if the pointer is null.
MRC_API MR_Polyline2ProjectionWithOffsetResult * MR_Polyline2ProjectionWithOffsetResult_OffsetMutablePtr(MR_Polyline2ProjectionWithOffsetResult *ptr, ptrdiff_t i)
MRC_API MR_Polyline2ProjectionWithOffsetResult * MR_findProjectionOnPolyline2WithOffset(const MR_Vector2f *pt, const MR_Polyline2 *polyline, const MR_UndirectedEdgeScalars *offsetPerEdge, const float *upDistLimit, MR_AffineXf2f *xf, const float *loDistLimit)
computes the closest point on polyline to given point, respecting each edge offset
MRC_API MR_PolylineProjectionResult2 * MR_PolylineProjectionResult2_ConstructFrom(MR_UndirectedEdgeId line, MR_Vector2f point, float distSq)
MRC_API MR_PolylineProjectionResult2 * MR_PolylineProjectionResult2_OffsetMutablePtr(MR_PolylineProjectionResult2 *ptr, ptrdiff_t i)
MRC_API void MR_PolylineProjectionWithOffsetResult3_Set_dist(MR_PolylineProjectionWithOffsetResult3 *_this, float value)
MRC_API const MR_UndirectedEdgeId * MR_Polyline2ProjectionWithOffsetResult_Get_line(const MR_Polyline2ProjectionWithOffsetResult *_this)
MRC_API const MR_Vector3f * MR_PolylineProjectionWithOffsetResult3_Get_point(const MR_PolylineProjectionWithOffsetResult3 *_this)
MRC_API const MR_UndirectedEdgeId * MR_PolylineProjectionWithOffsetResult3_Get_line(const MR_PolylineProjectionWithOffsetResult3 *_this)
MRC_API void MR_findEdgesInBall_MR_Polyline2(const MR_Polyline2 *polyline, const MR_Vector2f *center, float radius, const MR_std_function_void_from_MR_UndirectedEdgeId_const_MR_Vector2f_ref_float *foundCallback, MR_AffineXf2f *xf)
struct MR_PolylineProjectionWithOffsetResult3 MR_PolylineProjectionWithOffsetResult3
Definition MRPolylineProject.h:46
MRC_API void MR_Polyline2ProjectionWithOffsetResult_DestroyArray(const MR_Polyline2ProjectionWithOffsetResult *_this)
Destroys a heap-allocated array of MR_Polyline2ProjectionWithOffsetResult. Does nothing if the pointe...
MRC_API MR_PolylineProjectionResult3 * MR_PolylineProjectionResult3_ConstructFrom(MR_UndirectedEdgeId line, MR_Vector3f point, float distSq)
MRC_API MR_UndirectedEdgeId * MR_PolylineProjectionResult2_GetMutable_line(MR_PolylineProjectionResult2 *_this)
MRC_API MR_PolylineProjectionResult2 * MR_findProjectionOnPolyline2(const MR_Vector2f *pt, const MR_Polyline2 *polyline, const float *upDistLimitSq, MR_AffineXf2f *xf, const float *loDistLimitSq)
computes the closest point on polyline to given point
MRC_API MR_PolylineProjectionResult3 * MR_findProjectionOnPolyline_MR_Vector3f(const MR_Vector3f *pt, const MR_Polyline3 *polyline, const float *upDistLimitSq, MR_AffineXf3f *xf, const float *loDistLimitSq)
computes the closest point on polyline to given point
MRC_API float * MR_PolylineProjectionResult2_GetMutable_distSq(MR_PolylineProjectionResult2 *_this)
MRC_API MR_Polyline2ProjectionWithOffsetResult * MR_Polyline2ProjectionWithOffsetResult_DefaultConstructArray(size_t num_elems)
MRC_API MR_PolylineProjectionResult2 * MR_PolylineProjectionResult2_ConstructFromAnother(const MR_PolylineProjectionResult2 *_other)
MRC_API MR_PolylineProjectionWithOffsetResult3 * MR_PolylineProjectionWithOffsetResult3_DefaultConstructArray(size_t num_elems)
MRC_API MR_PolylineProjectionResult3Arg * MR_PolylineProjectionResult3_MutableStaticDowncastTo_MR_PolylineProjectionResult3Arg(MR_PolylineProjectionResult3 *object)
MRC_API MR_PolylineProjectionResult3Arg * MR_PolylineProjectionResult3Arg_DefaultConstruct(void)
MRC_API const MR_PolylineProjectionResult3Arg * MR_PolylineProjectionResult3Arg_OffsetPtr(const MR_PolylineProjectionResult3Arg *ptr, ptrdiff_t i)
MRC_API bool MR_PolylineProjectionResult3_ConvertTo_bool(const MR_PolylineProjectionResult3 *_this)
MRC_API MR_UndirectedEdgeId * MR_PolylineProjectionResult3_GetMutable_line(MR_PolylineProjectionResult3 *_this)
MRC_API MR_PolylineProjectionResult3 * MR_findProjectionOnMeshEdges_MR_Line3f(const MR_Line3f *ln, const MR_Mesh *mesh, const MR_AABBTreePolyline3 *tree, const float *upDistLimitSq, MR_AffineXf3f *xf, const float *loDistLimitSq)
computes the closest point on the mesh edges (specified by the tree) to given straight line
MRC_API void MR_PolylineProjectionWithOffsetResult3_Destroy(const MR_PolylineProjectionWithOffsetResult3 *_this)
Destroys a heap-allocated instance of MR_PolylineProjectionWithOffsetResult3. Does nothing if the poi...
struct MR_PolylineProjectionResult2 MR_PolylineProjectionResult2
Definition MRPolylineProject.h:31
MRC_API MR_PolylineProjectionWithOffsetResult3 * MR_PolylineProjectionWithOffsetResult3_OffsetMutablePtr(MR_PolylineProjectionWithOffsetResult3 *ptr, ptrdiff_t i)
MRC_API const float * MR_Polyline2ProjectionWithOffsetResult_Get_dist(const MR_Polyline2ProjectionWithOffsetResult *_this)
MRC_API MR_PolylineProjectionResult2 * MR_PolylineProjectionResult2_DefaultConstructArray(size_t num_elems)
MRC_API MR_PolylineProjectionWithOffsetResult3 * MR_findProjectionOnPolylineWithOffset(const MR_Vector3f *pt, const MR_Polyline3 *polyline, const MR_UndirectedEdgeScalars *offsetPerEdge, const float *upDistLimit, MR_AffineXf3f *xf, const float *loDistLimit)
computes the closest point on polyline to given point, respecting each edge offset
MRC_API void MR_PolylineProjectionResult3Arg_Set_distSq(MR_PolylineProjectionResult3Arg *_this, float value)
MRC_API MR_PolylineProjectionResult3Arg * MR_PolylineProjectionResult3Arg_AssignFromAnother(MR_PolylineProjectionResult3Arg *_this, const MR_PolylineProjectionResult3Arg *_other)
MRC_API MR_PolylineProjectionWithOffsetResult3 * MR_PolylineProjectionWithOffsetResult3_ConstructFrom(MR_UndirectedEdgeId line, MR_Vector3f point, float dist)
MRC_API void MR_PolylineProjectionResult3_Set_line(MR_PolylineProjectionResult3 *_this, MR_UndirectedEdgeId value)
MRC_API MR_Polyline2ProjectionWithOffsetResult * MR_Polyline2ProjectionWithOffsetResult_ConstructFrom(MR_UndirectedEdgeId line, MR_Vector2f point, float dist)
MRC_API MR_Vector2f * MR_Polyline2ProjectionWithOffsetResult_GetMutable_point(MR_Polyline2ProjectionWithOffsetResult *_this)
MRC_API bool MR_PolylineProjectionResult3_valid(const MR_PolylineProjectionResult3 *_this)
MRC_API MR_Vector3f * MR_PolylineProjectionWithOffsetResult3_GetMutable_point(MR_PolylineProjectionWithOffsetResult3 *_this)
MRC_API void MR_PolylineProjectionResult2_Set_distSq(MR_PolylineProjectionResult2 *_this, float value)
MRC_API bool MR_PolylineProjectionResult3Arg_valid(const MR_PolylineProjectionResult3Arg *_this)
struct MR_PolylineProjectionResult3 MR_PolylineProjectionResult3
Definition MRPolylineProject.h:38
MRC_API const MR_PolylineProjectionResult3 * MR_PolylineProjectionResult3_OffsetPtr(const MR_PolylineProjectionResult3 *ptr, ptrdiff_t i)
MRC_API MR_PolylineProjectionResult3Arg * MR_PolylineProjectionResult3Arg_DefaultConstructArray(size_t num_elems)
MRC_API const MR_Vector3f * MR_PolylineProjectionResult3_Get_point(const MR_PolylineProjectionResult3 *_this)
MRC_API const MR_Vector2f * MR_Polyline2ProjectionWithOffsetResult_Get_point(const MR_Polyline2ProjectionWithOffsetResult *_this)
MRC_API MR_PolylineProjectionResult2 * MR_PolylineProjectionResult2_AssignFromAnother(MR_PolylineProjectionResult2 *_this, const MR_PolylineProjectionResult2 *_other)
MRC_API const float * MR_PolylineProjectionWithOffsetResult3_Get_dist(const MR_PolylineProjectionWithOffsetResult3 *_this)
MRC_API MR_Polyline2ProjectionWithOffsetResult * MR_Polyline2ProjectionWithOffsetResult_ConstructFromAnother(const MR_Polyline2ProjectionWithOffsetResult *_other)
MRC_API float * MR_PolylineProjectionResult3Arg_GetMutable_distSq(MR_PolylineProjectionResult3Arg *_this)
MRC_API void MR_Polyline2ProjectionWithOffsetResult_Destroy(const MR_Polyline2ProjectionWithOffsetResult *_this)
Destroys a heap-allocated instance of MR_Polyline2ProjectionWithOffsetResult. Does nothing if the poi...
MRC_API MR_UndirectedEdgeId * MR_Polyline2ProjectionWithOffsetResult_GetMutable_line(MR_Polyline2ProjectionWithOffsetResult *_this)
MRC_API const float * MR_PolylineProjectionResult3Arg_Get_distSq(const MR_PolylineProjectionResult3Arg *_this)
MRC_API float * MR_PolylineProjectionResult3_GetMutable_distSq(MR_PolylineProjectionResult3 *_this)
struct MR_PolylineProjectionResult3Arg MR_PolylineProjectionResult3Arg
Definition MRPolylineProject.h:53
MRC_API MR_PolylineProjectionResult3 * MR_PolylineProjectionResult3_AssignFromAnother(MR_PolylineProjectionResult3 *_this, const MR_PolylineProjectionResult3 *_other)
MRC_API void MR_PolylineProjectionResult3Arg_DestroyArray(const MR_PolylineProjectionResult3Arg *_this)
Destroys a heap-allocated array of MR_PolylineProjectionResult3Arg. Does nothing if the pointer is nu...
MRC_API void MR_Polyline2ProjectionWithOffsetResult_Set_line(MR_Polyline2ProjectionWithOffsetResult *_this, MR_UndirectedEdgeId value)
MRC_API void MR_PolylineProjectionResult3Arg_Set_line(MR_PolylineProjectionResult3Arg *_this, MR_UndirectedEdgeId value)
MRC_API void MR_PolylineProjectionResult3Arg_Destroy(const MR_PolylineProjectionResult3Arg *_this)
Destroys a heap-allocated instance of MR_PolylineProjectionResult3Arg. Does nothing if the pointer is...
MRC_API MR_UndirectedEdgeId * MR_PolylineProjectionResult3Arg_GetMutable_line(MR_PolylineProjectionResult3Arg *_this)
MRC_API void MR_PolylineProjectionWithOffsetResult3_Set_line(MR_PolylineProjectionWithOffsetResult3 *_this, MR_UndirectedEdgeId value)
MRC_API bool MR_PolylineProjectionResult3Arg_ConvertTo_bool(const MR_PolylineProjectionResult3Arg *_this)
MRC_API MR_PolylineProjectionResult3 * MR_PolylineProjectionResult3_DefaultConstructArray(size_t num_elems)
MRC_API void MR_PolylineProjectionResult2_Set_point(MR_PolylineProjectionResult2 *_this, MR_Vector2f value)
MRC_API void MR_findMeshEdgesInBall(const MR_Mesh *mesh, const MR_AABBTreePolyline3 *tree, const MR_Vector3f *center, float radius, const MR_std_function_void_from_MR_UndirectedEdgeId_const_MR_Vector3f_ref_float *foundCallback, MR_AffineXf3f *xf)
MRC_API MR_PolylineProjectionResult3 * MR_PolylineProjectionResult3_DefaultConstruct(void)
MRC_API void MR_PolylineProjectionResult2_Destroy(const MR_PolylineProjectionResult2 *_this)
Destroys a heap-allocated instance of MR_PolylineProjectionResult2. Does nothing if the pointer is nu...
MRC_API float * MR_Polyline2ProjectionWithOffsetResult_GetMutable_dist(MR_Polyline2ProjectionWithOffsetResult *_this)
MRC_API const MR_Vector2f * MR_PolylineProjectionResult2_Get_point(const MR_PolylineProjectionResult2 *_this)
MRC_API const MR_Polyline2ProjectionWithOffsetResult * MR_Polyline2ProjectionWithOffsetResult_OffsetPtr(const MR_Polyline2ProjectionWithOffsetResult *ptr, ptrdiff_t i)
MRC_API bool MR_PolylineProjectionResult2_ConvertTo_bool(const MR_PolylineProjectionResult2 *_this)
MRC_API MR_PolylineProjectionResult3 * MR_findProjectionOnMeshEdges_MR_Vector3f(const MR_Vector3f *pt, const MR_Mesh *mesh, const MR_AABBTreePolyline3 *tree, const float *upDistLimitSq, MR_AffineXf3f *xf, const float *loDistLimitSq)
computes the closest point on the mesh edges (specified by the tree) to given point
MRC_API MR_PolylineProjectionResult3 * MR_PolylineProjectionResult3_ConstructFromAnother(const MR_PolylineProjectionResult3 *_other)
MRC_API MR_Vector3f * MR_PolylineProjectionResult3_GetMutable_point(MR_PolylineProjectionResult3 *_this)
MRC_API MR_PolylineProjectionWithOffsetResult3 * MR_PolylineProjectionWithOffsetResult3_ConstructFromAnother(const MR_PolylineProjectionWithOffsetResult3 *_other)
MRC_API const MR_PolylineProjectionResult3 * MR_PolylineProjectionResult3Arg_UpcastTo_MR_PolylineProjectionResult3(const MR_PolylineProjectionResult3Arg *object)
MRC_API const MR_PolylineProjectionWithOffsetResult3 * MR_PolylineProjectionWithOffsetResult3_OffsetPtr(const MR_PolylineProjectionWithOffsetResult3 *ptr, ptrdiff_t i)
MRC_API void MR_PolylineProjectionResult2_Set_line(MR_PolylineProjectionResult2 *_this, MR_UndirectedEdgeId value)
MRC_API MR_PolylineProjectionResult2 * MR_PolylineProjectionResult2_DefaultConstruct(void)
struct MR_std_function_void_from_MR_UndirectedEdgeId_const_MR_Vector3f_ref_float MR_std_function_void_from_MR_UndirectedEdgeId_const_MR_Vector3f_ref_float
Definition MRPolylineProject.h:26
MRC_API MR_PolylineProjectionResult3Arg * MR_findMaxProjectionOnPolyline(const MR_VertCoords *points, const MR_Polyline3 *polyline, const MR_VertBitSet *pointsRegion, MR_AffineXf3f *xf, const float *loDistLimitSq)
for each of points (pointsRegion) computes the closest point on polyline and returns the point for wh...
MRC_API void MR_PolylineProjectionWithOffsetResult3_DestroyArray(const MR_PolylineProjectionWithOffsetResult3 *_this)
Destroys a heap-allocated array of MR_PolylineProjectionWithOffsetResult3. Does nothing if the pointe...
MRC_API const float * MR_PolylineProjectionResult2_Get_distSq(const MR_PolylineProjectionResult2 *_this)
MRC_API void MR_PolylineProjectionResult3Arg_Set_point(MR_PolylineProjectionResult3Arg *_this, MR_Vector3f value)
struct MR_Polyline2ProjectionWithOffsetResult MR_Polyline2ProjectionWithOffsetResult
Definition MRPolylineProject.h:42
MRC_API MR_Polyline2ProjectionWithOffsetResult * MR_Polyline2ProjectionWithOffsetResult_DefaultConstruct(void)
MRC_API void MR_PolylineProjectionResult3_Set_point(MR_PolylineProjectionResult3 *_this, MR_Vector3f value)
MRC_API const MR_VertId * MR_PolylineProjectionResult3Arg_Get_pointId(const MR_PolylineProjectionResult3Arg *_this)
MRC_API const float * MR_PolylineProjectionResult3_Get_distSq(const MR_PolylineProjectionResult3 *_this)
MRC_API MR_PolylineProjectionResult3Arg * MR_PolylineProjectionResult3Arg_OffsetMutablePtr(MR_PolylineProjectionResult3Arg *ptr, ptrdiff_t i)
MRC_API MR_PolylineProjectionResult3 * MR_PolylineProjectionResult3_OffsetMutablePtr(MR_PolylineProjectionResult3 *ptr, ptrdiff_t i)
MRC_API MR_PolylineProjectionResult3Arg * MR_PolylineProjectionResult3Arg_ConstructFromAnother(const MR_PolylineProjectionResult3Arg *_other)
MRC_API const MR_PolylineProjectionResult2 * MR_PolylineProjectionResult2_OffsetPtr(const MR_PolylineProjectionResult2 *ptr, ptrdiff_t i)
MRC_API MR_PolylineProjectionResult3 * MR_findProjectionOnPolyline_MR_Line3f(const MR_Line3f *ln, const MR_Polyline3 *polyline, const float *upDistLimitSq, MR_AffineXf3f *xf, const float *loDistLimitSq)
computes the closest point on polyline to given straight line
MRC_API MR_PolylineProjectionResult3 * MR_PolylineProjectionResult3Arg_MutableUpcastTo_MR_PolylineProjectionResult3(MR_PolylineProjectionResult3Arg *object)
Upcasts an instance of MR::PolylineProjectionResult3Arg to its base class MR::PolylineProjectionResul...
MRC_API void MR_PolylineProjectionWithOffsetResult3_Set_point(MR_PolylineProjectionWithOffsetResult3 *_this, MR_Vector3f value)
MRC_API void MR_Polyline2ProjectionWithOffsetResult_Set_point(MR_Polyline2ProjectionWithOffsetResult *_this, MR_Vector2f value)
MRC_API void MR_PolylineProjectionResult3_Set_distSq(MR_PolylineProjectionResult3 *_this, float value)
#define MRC_API
Definition exports.h:11
Definition MRAffineXf.h:23
Definition MRAffineXf.h:39
Definition MRId.h:35
Definition MRVector2.h:45
Definition MRVector3.h:52
Definition MRId.h:55