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
61
68
75
82
89
96
103
109
116
120
125
132
136
140
146
149
152
156
164
169
176
183
190
197
204
211
218
224
231
235
240
247
251
255
261
266
272
275
278
282
290
295
302
309
316
323
330
337
344
350
357
361
366
373
377
381
387
390
393
401
408
415
422
429
436
443
450
456
463
467
472
479
483
487
493
496
499
507
521MRC_API MR_PolylineProjectionResult2 *MR_findProjectionOnPolyline2(const MR_Vector2f *pt, const MR_Polyline2 *polyline, const float *upDistLimitSq, MR_AffineXf2f *xf, const float *loDistLimitSq);
522
536MRC_API MR_PolylineProjectionResult3 *MR_findProjectionOnPolyline_MR_Vector3f(const MR_Vector3f *pt, const MR_Polyline3 *polyline, const float *upDistLimitSq, MR_AffineXf3f *xf, const float *loDistLimitSq);
537
538// id of source point from which closest point was searched
544
545// id of source point from which closest point was searched
551
552// id of source point from which closest point was searched
558
565
572
579
586
593
600
607
613
620
624
629
633
637
642
646
652
655
658
662
670
675
688MRC_API MR_PolylineProjectionResult3Arg *MR_findMaxProjectionOnPolyline(const MR_VertCoords *points, const MR_Polyline3 *polyline, const MR_VertBitSet *pointsRegion, MR_AffineXf3f *xf, const float *loDistLimitSq);
689
703MRC_API MR_PolylineProjectionResult3 *MR_findProjectionOnPolyline_MR_Line3f(const MR_Line3f *ln, const MR_Polyline3 *polyline, const float *upDistLimitSq, MR_AffineXf3f *xf, const float *loDistLimitSq);
704
720MRC_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);
721
737MRC_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);
738
746
754
762MRC_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);
763
778MRC_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);
779
794MRC_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);
795
796#ifdef __cplusplus
797} // extern "C"
798#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)
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)
Definition MRAffineXf.h:23
Definition MRAffineXf.h:39
Definition MRId.h:35
Generated from class MR::Vector2f.
Definition MRVector2.h:36
Generated from class MR::Vector3f.
Definition MRVector3.h:47
Definition MRId.h:55