MeshLib C Docs
Loading...
Searching...
No Matches
MREdgePathsBuilder.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMesh/MRId.h>
4#include <MRCMesh/MRVector3.h>
5#include <MRCMisc/common.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_Mesh MR_Mesh; // Defined in `#include <MRCMesh/MRMesh.h>`.
16typedef struct MR_MeshTopology MR_MeshTopology; // Defined in `#include <MRCMesh/MRMeshTopology.h>`.
17typedef struct MR_MeshTriPoint MR_MeshTriPoint; // Defined in `#include <MRCMesh/MRMeshTriPoint.h>`.
18typedef struct MR_VertCoords MR_VertCoords; // Defined in `#include <MRCMesh/MRVector.h>`.
19typedef struct MR_phmap_flat_hash_map_MR_VertId_MR_VertPathInfo MR_phmap_flat_hash_map_MR_VertId_MR_VertPathInfo; // Defined in `#include <MRCMisc/phmap_flat_hash_map_MR_VertId_MR_VertPathInfo.h>`.
20typedef struct MR_std_function_float_from_MR_EdgeId MR_std_function_float_from_MR_EdgeId; // Defined in `#include <MRCMisc/std_function_float_from_MR_EdgeId.h>`.
21typedef struct MR_std_vector_MR_EdgeId MR_std_vector_MR_EdgeId; // Defined in `#include <MRCMisc/std_vector_MR_EdgeId.h>`.
22
23
28
33
38
43
51
56
62
71
72// edge from this vertex to its predecessor in the forest
77
78// edge from this vertex to its predecessor in the forest
82
83// edge from this vertex to its predecessor in the forest
88
89// best summed metric to reach this vertex
94
95// best summed metric to reach this vertex
99
100// best summed metric to reach this vertex
105
109
114
118
121
124
129
132
135
141
145
149
152
155
161
164
167
173
180
187
193
198
203
209
214
220
225
229
234
240
245
251
258
264
271
277
282
288
292
297
301
304
307
312
315
318
324
328
331
334
339
343
349
352
355
361
368
375
381
386
391
397
402
408
413
417
422
428
433
439
446
452
459
465
470
476
480
485
489
492
495
500
503
506
512
516
521
524
527
532
535
538
544
548
553
557
562
567
571
576
580
585
589
592
595
600
603
606
612
616
620
623
626
630
633
638
645
648
651
657
664
671
677
682
687
693
698
704
705#ifdef __cplusplus
706} // extern "C"
707#endif
struct MR_MeshTopology MR_MeshTopology
Definition MR2DContoursTriangulation.h:15
struct MR_VertCoords MR_VertCoords
Definition MRAABBTreePoints.h:21
struct MR_MeshTriPoint MR_MeshTriPoint
Definition MRAggregateFlow.h:13
struct MR_std_vector_MR_EdgeId MR_std_vector_MR_EdgeId
Definition MRContoursStitch.h:11
struct MR_Mesh MR_Mesh
Definition MRCtm.h:16
struct MR_std_function_float_from_MR_EdgeId MR_std_function_float_from_MR_EdgeId
Definition MREdgeMetric.h:12
MRC_API MR_TrivialMetricToPenalty * MR_TrivialMetricToPenalty_OffsetMutablePtr(MR_TrivialMetricToPenalty *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_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert_Set_backward(MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert *_this, MR_EdgeId value)
MRC_API MR_EdgeId * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert_GetMutable_backward(MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert *_this)
MRC_API const MR_EdgePathsAStarBuilder * MR_EdgePathsAStarBuilder_OffsetPtr(const MR_EdgePathsAStarBuilder *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_EdgePathsBuilderT_MR_MetricToAStarPenalty * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_OffsetMutablePtr(MR_EdgePathsBuilderT_MR_MetricToAStarPenalty *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_EdgePathsAStarBuilder * MR_EdgePathsAStarBuilder_Construct_MR_MeshTriPoint(const MR_Mesh *mesh, const MR_MeshTriPoint *target, const MR_MeshTriPoint *start)
MRC_API MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_growOneEdge(MR_EdgePathsBuilderT_MR_MetricToAStarPenalty *_this)
MRC_API const MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert_OffsetPtr(const MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert *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_EdgePathsAStarBuilder_done(const MR_EdgePathsAStarBuilder *_this)
MRC_API MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert_OffsetMutablePtr(MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert *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_MetricToAStarPenalty * MR_MetricToAStarPenalty_DefaultConstructArray(size_t num_elems)
MRC_API MR_EdgePathsBuilderT_MR_MetricToAStarPenalty * MR_EdgePathsAStarBuilder_MutableUpcastTo_MR_EdgePathsBuilderT_MR_MetricToAStarPenalty(MR_EdgePathsAStarBuilder *object)
Upcasts an instance of MR::EdgePathsAStarBuilder to its base class MR::EdgePathsBuilderT<MR::MetricTo...
MRC_API float * MR_VertPathInfo_GetMutable_metric(MR_VertPathInfo *_this)
MRC_API MR_EdgePathsAStarBuilder * MR_EdgePathsAStarBuilder_OffsetMutablePtr(MR_EdgePathsAStarBuilder *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 float MR_MetricToAStarPenalty_call(const MR_MetricToAStarPenalty *_this, float metric, MR_VertId v)
MRC_API const MR_EdgeId * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert_Get_backward(const MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert *_this)
MRC_API void MR_EdgePathsAStarBuilder_DestroyArray(const MR_EdgePathsAStarBuilder *_this)
Destroys a heap-allocated array of MR_EdgePathsAStarBuilder. Does nothing if the pointer is null.
MRC_API MR_EdgeId * MR_VertPathInfo_GetMutable_back(MR_VertPathInfo *_this)
MRC_API MR_EdgeId * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert_GetMutable_backward(MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert *_this)
MRC_API MR_MetricToAStarPenalty * MR_MetricToAStarPenalty_ConstructFromAnother(const MR_MetricToAStarPenalty *_other)
MRC_API const MR_phmap_flat_hash_map_MR_VertId_MR_VertPathInfo * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_vertPathInfoMap(const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty *_this)
MRC_API void MR_MetricToAStarPenalty_Destroy(const MR_MetricToAStarPenalty *_this)
Destroys a heap-allocated instance of MR_MetricToAStarPenalty. Does nothing if the pointer is null.
MRC_API MR_std_vector_MR_EdgeId * MR_EdgePathsAStarBuilder_getPathBack(const MR_EdgePathsAStarBuilder *_this, MR_VertId backpathStart)
struct MR_phmap_flat_hash_map_MR_VertId_MR_VertPathInfo MR_phmap_flat_hash_map_MR_VertId_MR_VertPathInfo
Definition MREdgePathsBuilder.h:19
MRC_API void MR_EdgePathsAStarBuilder_Destroy(const MR_EdgePathsAStarBuilder *_this)
Destroys a heap-allocated instance of MR_EdgePathsAStarBuilder. Does nothing if the pointer is null.
MRC_API void MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_Destroy(const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty *_this)
Destroys a heap-allocated instance of MR_EdgePathsBuilderT_MR_MetricToAStarPenalty....
MRC_API void MR_VertPathInfo_Set_metric(MR_VertPathInfo *_this, float value)
MRC_API MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert_ConstructFromAnother(const MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert *_other)
struct MR_TrivialMetricToPenalty MR_TrivialMetricToPenalty
Definition MREdgePathsBuilder.h:55
MRC_API const MR_Vector3f * MR_MetricToAStarPenalty_Get_target(const MR_MetricToAStarPenalty *_this)
MRC_API MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert * MR_EdgePathsAStarBuilder_growOneEdge(MR_EdgePathsAStarBuilder *_this)
MRC_API MR_std_vector_MR_EdgeId * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_getPathBack(const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty *_this, MR_VertId backpathStart)
MRC_API const float * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert_Get_penalty(const MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert *_this)
MRC_API float MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_doneDistance(const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty *_this)
MRC_API MR_EdgePathsBuilderT_MR_MetricToAStarPenalty * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_Construct(const MR_MeshTopology *topology, const MR_std_function_float_from_MR_EdgeId *metric)
MRC_API MR_VertPathInfo * MR_VertPathInfo_OffsetMutablePtr(MR_VertPathInfo *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_EdgePathsBuilderT_MR_TrivialMetricToPenalty_addOrgRingSteps(MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty *_this, const MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert *rv)
MRC_API void MR_MetricToAStarPenalty_Set_points(MR_MetricToAStarPenalty *_this, const MR_VertCoords *value)
MRC_API MR_VertPathInfo * MR_VertPathInfo_ConstructFromAnother(const MR_VertPathInfo *_other)
MRC_API MR_VertPathInfo * MR_VertPathInfo_AssignFromAnother(MR_VertPathInfo *_this, const MR_VertPathInfo *_other)
MRC_API const MR_MetricToAStarPenalty * MR_MetricToAStarPenalty_OffsetPtr(const MR_MetricToAStarPenalty *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 MR_EdgeId * MR_VertPathInfo_Get_back(const MR_VertPathInfo *_this)
MRC_API const MR_VertPathInfo * MR_EdgePathsAStarBuilder_getVertInfo(const MR_EdgePathsAStarBuilder *_this, MR_VertId v)
MRC_API MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_reachNext(MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty *_this)
MRC_API bool MR_VertPathInfo_isStart(const MR_VertPathInfo *_this)
MRC_API MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert_DefaultConstruct(void)
MRC_API MR_MetricToAStarPenalty * MR_MetricToAStarPenalty_AssignFromAnother(MR_MetricToAStarPenalty *_this, const MR_MetricToAStarPenalty *_other)
MRC_API void MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert_DestroyArray(const MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert *_this)
Destroys a heap-allocated array of MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert....
MRC_API void MR_VertPathInfo_Set_back(MR_VertPathInfo *_this, MR_EdgeId value)
MRC_API const MR_phmap_flat_hash_map_MR_VertId_MR_VertPathInfo * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_vertPathInfoMap(const MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty *_this)
struct MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty
Definition MREdgePathsBuilder.h:37
struct MR_MetricToAStarPenalty MR_MetricToAStarPenalty
Definition MREdgePathsBuilder.h:61
struct MR_VertPathInfo MR_VertPathInfo
Definition MREdgePathsBuilder.h:27
MRC_API void MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert_Set_v(MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert *_this, MR_VertId value)
MRC_API MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert_OffsetMutablePtr(MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert *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 float * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert_GetMutable_metric(MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert *_this)
MRC_API void MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert_Set_backward(MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert *_this, MR_EdgeId value)
MRC_API const MR_VertId * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert_Get_v(const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert *_this)
MRC_API float * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert_GetMutable_penalty(MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert *_this)
MRC_API MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert_AssignFromAnother(MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert *_this, const MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert *_other)
MRC_API float * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert_GetMutable_metric(MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert *_this)
MRC_API void MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert_Set_penalty(MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert *_this, float value)
MRC_API void MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert_Set_metric(MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert *_this, float value)
MRC_API void MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert_Set_penalty(MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert *_this, float value)
MRC_API const float * MR_VertPathInfo_Get_metric(const MR_VertPathInfo *_this)
MRC_API const float * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert_Get_metric(const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert *_this)
MRC_API void MR_TrivialMetricToPenalty_Destroy(const MR_TrivialMetricToPenalty *_this)
Destroys a heap-allocated instance of MR_TrivialMetricToPenalty. Does nothing if the pointer is null.
MRC_API bool MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_addOrgRingSteps(MR_EdgePathsBuilderT_MR_MetricToAStarPenalty *_this, const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert *rv)
MRC_API void MR_MetricToAStarPenalty_DestroyArray(const MR_MetricToAStarPenalty *_this)
Destroys a heap-allocated array of MR_MetricToAStarPenalty. Does nothing if the pointer is null.
MRC_API MR_TrivialMetricToPenalty * MR_TrivialMetricToPenalty_DefaultConstruct(void)
MRC_API bool MR_EdgePathsAStarBuilder_addOrgRingSteps(MR_EdgePathsAStarBuilder *_this, const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert *rv)
MRC_API const MR_EdgeId * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert_Get_backward(const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert *_this)
MRC_API MR_MetricToAStarPenalty * MR_MetricToAStarPenalty_DefaultConstruct(void)
MRC_API const MR_VertId * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert_Get_v(const MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert *_this)
MRC_API MR_VertPathInfo * MR_VertPathInfo_DefaultConstructArray(size_t num_elems)
MRC_API void MR_VertPathInfo_DestroyArray(const MR_VertPathInfo *_this)
Destroys a heap-allocated array of MR_VertPathInfo. Does nothing if the pointer is null.
MRC_API float MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_doneDistance(const MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty *_this)
MRC_API MR_VertPathInfo * MR_VertPathInfo_DefaultConstruct(void)
MRC_API MR_EdgePathsAStarBuilder * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_MutableStaticDowncastTo_MR_EdgePathsAStarBuilder(MR_EdgePathsBuilderT_MR_MetricToAStarPenalty *object)
MRC_API MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert_AssignFromAnother(MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert *_this, const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert *_other)
MRC_API const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert_OffsetPtr(const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert *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 MR_EdgePathsBuilderT_MR_MetricToAStarPenalty * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_OffsetPtr(const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty *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_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert_Destroy(const MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert *_this)
Destroys a heap-allocated instance of MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert....
struct MR_EdgePathsBuilderT_MR_MetricToAStarPenalty MR_EdgePathsBuilderT_MR_MetricToAStarPenalty
Definition MREdgePathsBuilder.h:50
MRC_API MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert_ConstructFrom(MR_VertId v, MR_EdgeId backward, float penalty, float metric)
MRC_API MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert_ConstructFrom(MR_VertId v, MR_EdgeId backward, float penalty, float metric)
MRC_API const MR_EdgePathsAStarBuilder * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_StaticDowncastTo_MR_EdgePathsAStarBuilder(const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty *object)
MRC_API bool MR_EdgePathsAStarBuilder_addStart(MR_EdgePathsAStarBuilder *_this, MR_VertId startVert, float startMetric)
MRC_API MR_std_vector_MR_EdgeId * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_getPathBack(const MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty *_this, MR_VertId backpathStart)
MRC_API void MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert_DestroyArray(const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert *_this)
Destroys a heap-allocated array of MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert....
MRC_API const MR_VertPathInfo * MR_VertPathInfo_OffsetPtr(const MR_VertPathInfo *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_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert_DefaultConstruct(void)
MRC_API MR_VertId * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert_GetMutable_v(MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert *_this)
MRC_API float MR_EdgePathsAStarBuilder_doneDistance(const MR_EdgePathsAStarBuilder *_this)
MRC_API const MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_OffsetPtr(const MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty *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_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert_DefaultConstructArray(size_t num_elems)
MRC_API const float * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert_Get_metric(const MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert *_this)
MRC_API MR_VertPathInfo * MR_VertPathInfo_ConstructFrom(MR_EdgeId back, float metric)
MRC_API MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ConstructFromAnother(MR_PassBy _other_pass_by, MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty *_other)
MRC_API MR_TrivialMetricToPenalty * MR_TrivialMetricToPenalty_ConstructFromAnother(const MR_TrivialMetricToPenalty *_other)
MRC_API const float * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert_Get_penalty(const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert *_this)
MRC_API float * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert_GetMutable_penalty(MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert *_this)
MRC_API MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert * MR_EdgePathsAStarBuilder_reachNext(MR_EdgePathsAStarBuilder *_this)
MRC_API MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_OffsetMutablePtr(MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty *ptr, ptrdiff_t i)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
struct MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert
Definition MREdgePathsBuilder.h:32
MRC_API MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert_DefaultConstructArray(size_t num_elems)
MRC_API MR_MetricToAStarPenalty * MR_MetricToAStarPenalty_OffsetMutablePtr(MR_MetricToAStarPenalty *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_EdgePathsBuilderT_MR_TrivialMetricToPenalty_done(const MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty *_this)
MRC_API const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty * MR_EdgePathsAStarBuilder_UpcastTo_MR_EdgePathsBuilderT_MR_MetricToAStarPenalty(const MR_EdgePathsAStarBuilder *object)
MRC_API MR_MetricToAStarPenalty * MR_MetricToAStarPenalty_ConstructFrom(const MR_VertCoords *points, MR_Vector3f target)
MRC_API MR_VertId * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert_GetMutable_v(MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert *_this)
MRC_API void MR_TrivialMetricToPenalty_DestroyArray(const MR_TrivialMetricToPenalty *_this)
Destroys a heap-allocated array of MR_TrivialMetricToPenalty. Does nothing if the pointer is null.
MRC_API bool MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_addStart(MR_EdgePathsBuilderT_MR_MetricToAStarPenalty *_this, MR_VertId startVert, float startMetric)
MRC_API const MR_phmap_flat_hash_map_MR_VertId_MR_VertPathInfo * MR_EdgePathsAStarBuilder_vertPathInfoMap(const MR_EdgePathsAStarBuilder *_this)
MRC_API MR_TrivialMetricToPenalty * MR_TrivialMetricToPenalty_AssignFromAnother(MR_TrivialMetricToPenalty *_this, const MR_TrivialMetricToPenalty *_other)
MRC_API MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_reachNext(MR_EdgePathsBuilderT_MR_MetricToAStarPenalty *_this)
MRC_API MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_growOneEdge(MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty *_this)
MRC_API MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert_ConstructFromAnother(const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert *_other)
MRC_API float MR_TrivialMetricToPenalty_call(const MR_TrivialMetricToPenalty *_this, float metric, MR_VertId _2)
MRC_API MR_Vector3f * MR_MetricToAStarPenalty_GetMutable_target(MR_MetricToAStarPenalty *_this)
MRC_API void MR_MetricToAStarPenalty_Set_target(MR_MetricToAStarPenalty *_this, MR_Vector3f value)
MRC_API const MR_VertCoords ** MR_MetricToAStarPenalty_GetMutable_points(MR_MetricToAStarPenalty *_this)
MRC_API const MR_VertCoords *const * MR_MetricToAStarPenalty_Get_points(const MR_MetricToAStarPenalty *_this)
MRC_API void MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_Destroy(const MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty *_this)
Destroys a heap-allocated instance of MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty....
MRC_API MR_EdgePathsBuilderT_MR_MetricToAStarPenalty * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ConstructFromAnother(MR_PassBy _other_pass_by, MR_EdgePathsBuilderT_MR_MetricToAStarPenalty *_other)
MRC_API MR_TrivialMetricToPenalty * MR_TrivialMetricToPenalty_DefaultConstructArray(size_t num_elems)
struct MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert
Definition MREdgePathsBuilder.h:42
MRC_API const MR_VertPathInfo * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_getVertInfo(const MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty *_this, MR_VertId v)
MRC_API MR_EdgePathsAStarBuilder * MR_EdgePathsAStarBuilder_ConstructFromAnother(MR_PassBy _other_pass_by, MR_EdgePathsAStarBuilder *_other)
MRC_API bool MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_addStart(MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty *_this, MR_VertId startVert, float startMetric)
MRC_API void MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert_Set_metric(MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert *_this, float value)
MRC_API const MR_TrivialMetricToPenalty * MR_TrivialMetricToPenalty_OffsetPtr(const MR_TrivialMetricToPenalty *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 MR_VertPathInfo * MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_getVertInfo(const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty *_this, MR_VertId v)
MRC_API bool MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_done(const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty *_this)
MRC_API MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty * MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_Construct(const MR_MeshTopology *topology, const MR_std_function_float_from_MR_EdgeId *metric)
MRC_API void MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_DestroyArray(const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty *_this)
Destroys a heap-allocated array of MR_EdgePathsBuilderT_MR_MetricToAStarPenalty. Does nothing if the ...
MRC_API void MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert_Set_v(MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_ReachedVert *_this, MR_VertId value)
struct MR_EdgePathsAStarBuilder MR_EdgePathsAStarBuilder
Definition MREdgePathsBuilder.h:70
MRC_API void MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert_Destroy(const MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert *_this)
Destroys a heap-allocated instance of MR_EdgePathsBuilderT_MR_MetricToAStarPenalty_ReachedVert....
MRC_API void MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty_DestroyArray(const MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty *_this)
Destroys a heap-allocated array of MR_EdgePathsBuilderT_MR_TrivialMetricToPenalty....
MRC_API void MR_VertPathInfo_Destroy(const MR_VertPathInfo *_this)
Destroys a heap-allocated instance of MR_VertPathInfo. Does nothing if the pointer is null.
MRC_API MR_EdgePathsAStarBuilder * MR_EdgePathsAStarBuilder_Construct_MR_VertId(const MR_Mesh *mesh, MR_VertId target, MR_VertId start)
MR_PassBy
Definition common.h:23
#define MRC_API
Definition exports.h:11
Definition MRId.h:153
Definition MRVector3.h:52
Definition MRId.h:55