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
65
71
77
82
88
94
99
105
109
114
118
121
124
129
132
135
139
145
150
156
161
167
173
178
184
190
195
201
205
210
214
217
220
225
229
234
237
240
244
250
255
261
266
272
278
283
289
295
300
306
310
315
319
322
325
330
333
336
342
348
353
359
365
370
376
382
387
393
397
402
406
409
412
417
420
423
429
443MRC_API MR_PolylineProjectionResult2 *MR_findProjectionOnPolyline2(const MR_Vector2f *pt, const MR_Polyline2 *polyline, const float *upDistLimitSq, MR_AffineXf2f *xf, const float *loDistLimitSq);
444
458MRC_API MR_PolylineProjectionResult3 *MR_findProjectionOnPolyline_MR_Vector3f(const MR_Vector3f *pt, const MR_Polyline3 *polyline, const float *upDistLimitSq, MR_AffineXf3f *xf, const float *loDistLimitSq);
459
460// id of source point from which closest point was searched
465
466// id of source point from which closest point was searched
470
471// id of source point from which closest point was searched
476
482
487
493
499
504
510
516
521
527
531
536
539
542
546
549
554
557
560
564
570
575
588MRC_API MR_PolylineProjectionResult3Arg *MR_findMaxProjectionOnPolyline(const MR_VertCoords *points, const MR_Polyline3 *polyline, const MR_VertBitSet *pointsRegion, MR_AffineXf3f *xf, const float *loDistLimitSq);
589
603MRC_API MR_PolylineProjectionResult3 *MR_findProjectionOnPolyline_MR_Line3f(const MR_Line3f *ln, const MR_Polyline3 *polyline, const float *upDistLimitSq, MR_AffineXf3f *xf, const float *loDistLimitSq);
604
620MRC_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);
621
637MRC_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);
638
646
654
663
678MRC_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);
679
694MRC_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);
695
696#ifdef __cplusplus
697} // extern "C"
698#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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API MR_PolylineProjectionResult3 * MR_PolylineProjectionResult3_OffsetMutablePtr(MR_PolylineProjectionResult3 *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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