MeshLib C Docs
Loading...
Searching...
No Matches
MRFeatureHelpers.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMisc/exports.h>
4
5#include <stddef.h>
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10
11typedef struct MR_FeatureObject MR_FeatureObject; // Defined in `#include <MRCMesh/MRFeatureObject.h>`.
12typedef struct MR_std_optional_MR_Vector3f MR_std_optional_MR_Vector3f; // Defined in `#include <MRCMisc/std_optional_MR_Vector3f.h>`.
13typedef struct MR_std_shared_ptr_MR_VisualObject MR_std_shared_ptr_MR_VisualObject; // Defined in `#include <MRCMisc/std_shared_ptr_MR_VisualObject.h>`.
14typedef struct MR_std_string_view MR_std_string_view; // Defined in `#include <MRCMisc/std_string_view.h>`.
15typedef struct MR_std_unordered_set_std_string MR_std_unordered_set_std_string; // Defined in `#include <MRCMisc/std_unordered_set_std_string.h>`.
16
17
31
35
39
43
47
51
55
59
63
67
72
76
80
86
89
92
100
104
108
113
117
121
127
130
133
141
145
149
154
158
162
168
171
174
182
186
190
195
199
203
209
212
215
223
227
231
236
240
244
250
253
256
264
268
272
277
281
285
291
294
297
305
309
313
318
322
326
332
335
338
346
351
357MRC_API MR_std_shared_ptr_MR_VisualObject *MR_makeObjectFromClassName(const char *className, const char *className_end);
358
359// Using forEachObjectKind the template collects a list of features for which the method ...->getNormal() is available
363
364// Using forEachObjectKind the template collects a list of features for which the method ...->getDirection() is available
368
369// Try to getNormal from specific feature using forEachObjectKind template. Returns nullopt is ...->getNormal() is not available for given feature type.
373
374// Try to getDirection from specific feature using forEachObjectKind template. Returns nullopt is ...->getDirection() is not available for given feature type.
378
379#ifdef __cplusplus
380} // extern "C"
381#endif
struct MR_std_optional_MR_Vector3f MR_std_optional_MR_Vector3f
Definition MRAddVisualPropertiesMixin.h:37
struct MR_FeatureObject MR_FeatureObject
Definition MRAddVisualPropertiesMixin.h:24
struct MR_std_shared_ptr_MR_VisualObject MR_std_shared_ptr_MR_VisualObject
Definition MRChangeColoringActions.h:18
struct MR_std_string_view MR_std_string_view
Definition MRDistanceMeasurementObject.h:39
MRC_API const MR_std_string_view * MR_ObjKindTraits_MR_FeaturesObjectKind_Cone_Get_name(void)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Line * MR_ObjKindTraits_MR_FeaturesObjectKind_Line_OffsetMutablePtr(MR_ObjKindTraits_MR_FeaturesObjectKind_Line *ptr, ptrdiff_t i)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Line * MR_ObjKindTraits_MR_FeaturesObjectKind_Line_DefaultConstructArray(size_t num_elems)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Point * MR_ObjKindTraits_MR_FeaturesObjectKind_Point_DefaultConstruct(void)
MRC_API void MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere_Destroy(const MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere *_this)
Destroys a heap-allocated instance of MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere....
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Plane * MR_ObjKindTraits_MR_FeaturesObjectKind_Plane_ConstructFromAnother(const MR_ObjKindTraits_MR_FeaturesObjectKind_Plane *_other)
MRC_API MR_std_optional_MR_Vector3f * MR_getFeatureDirection(MR_FeatureObject *feature)
struct MR_ObjKindTraits_MR_FeaturesObjectKind_Point MR_ObjKindTraits_MR_FeaturesObjectKind_Point
Definition MRFeatureHelpers.h:34
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Circle * MR_ObjKindTraits_MR_FeaturesObjectKind_Circle_OffsetMutablePtr(MR_ObjKindTraits_MR_FeaturesObjectKind_Circle *ptr, ptrdiff_t i)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Plane * MR_ObjKindTraits_MR_FeaturesObjectKind_Plane_AssignFromAnother(MR_ObjKindTraits_MR_FeaturesObjectKind_Plane *_this, const MR_ObjKindTraits_MR_FeaturesObjectKind_Plane *_other)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere * MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere_OffsetMutablePtr(MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere *ptr, ptrdiff_t i)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder * MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder_OffsetMutablePtr(MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder *ptr, ptrdiff_t i)
MRC_API MR_std_unordered_set_std_string * MR_getFeaturesTypeWithNormals(void)
MRC_API void MR_ObjKindTraits_MR_FeaturesObjectKind_Cone_Destroy(const MR_ObjKindTraits_MR_FeaturesObjectKind_Cone *_this)
Destroys a heap-allocated instance of MR_ObjKindTraits_MR_FeaturesObjectKind_Cone....
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Line * MR_ObjKindTraits_MR_FeaturesObjectKind_Line_ConstructFromAnother(const MR_ObjKindTraits_MR_FeaturesObjectKind_Line *_other)
MRC_API const MR_ObjKindTraits_MR_FeaturesObjectKind_Line * MR_ObjKindTraits_MR_FeaturesObjectKind_Line_OffsetPtr(const MR_ObjKindTraits_MR_FeaturesObjectKind_Line *ptr, ptrdiff_t i)
MR_FeaturesObjectKind
Definition MRFeatureHelpers.h:21
@ MR_FeaturesObjectKind_Line
Definition MRFeatureHelpers.h:23
@ MR_FeaturesObjectKind_Point
Definition MRFeatureHelpers.h:22
@ MR_FeaturesObjectKind_Plane
Definition MRFeatureHelpers.h:24
@ MR_FeaturesObjectKind_Cylinder
Definition MRFeatureHelpers.h:27
@ MR_FeaturesObjectKind_Cone
Definition MRFeatureHelpers.h:28
@ MR_FeaturesObjectKind_Circle
Definition MRFeatureHelpers.h:25
@ MR_FeaturesObjectKind_Sphere
Definition MRFeatureHelpers.h:26
@ MR_FeaturesObjectKind__count
Definition MRFeatureHelpers.h:29
MRC_API void MR_ObjKindTraits_MR_FeaturesObjectKind_Line_Destroy(const MR_ObjKindTraits_MR_FeaturesObjectKind_Line *_this)
Destroys a heap-allocated instance of MR_ObjKindTraits_MR_FeaturesObjectKind_Line....
MRC_API const MR_ObjKindTraits_MR_FeaturesObjectKind_Circle * MR_ObjKindTraits_MR_FeaturesObjectKind_Circle_OffsetPtr(const MR_ObjKindTraits_MR_FeaturesObjectKind_Circle *ptr, ptrdiff_t i)
MRC_API MR_std_unordered_set_std_string * MR_getFeaturesTypeWithDirections(void)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Cone * MR_ObjKindTraits_MR_FeaturesObjectKind_Cone_OffsetMutablePtr(MR_ObjKindTraits_MR_FeaturesObjectKind_Cone *ptr, ptrdiff_t i)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere * MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere_DefaultConstruct(void)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere * MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere_ConstructFromAnother(const MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere *_other)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Circle * MR_ObjKindTraits_MR_FeaturesObjectKind_Circle_DefaultConstruct(void)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Cone * MR_ObjKindTraits_MR_FeaturesObjectKind_Cone_AssignFromAnother(MR_ObjKindTraits_MR_FeaturesObjectKind_Cone *_this, const MR_ObjKindTraits_MR_FeaturesObjectKind_Cone *_other)
MRC_API const MR_std_string_view * MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder_Get_name(void)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere * MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere_AssignFromAnother(MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere *_this, const MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere *_other)
MRC_API void MR_ObjKindTraits_MR_FeaturesObjectKind_Point_DestroyArray(const MR_ObjKindTraits_MR_FeaturesObjectKind_Point *_this)
Destroys a heap-allocated array of MR_ObjKindTraits_MR_FeaturesObjectKind_Point. Does nothing if the ...
MRC_API void MR_ObjKindTraits_MR_FeaturesObjectKind_Plane_DestroyArray(const MR_ObjKindTraits_MR_FeaturesObjectKind_Plane *_this)
Destroys a heap-allocated array of MR_ObjKindTraits_MR_FeaturesObjectKind_Plane. Does nothing if the ...
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Line * MR_ObjKindTraits_MR_FeaturesObjectKind_Line_AssignFromAnother(MR_ObjKindTraits_MR_FeaturesObjectKind_Line *_this, const MR_ObjKindTraits_MR_FeaturesObjectKind_Line *_other)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder * MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder_ConstructFromAnother(const MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder *_other)
MRC_API void MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder_Destroy(const MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder *_this)
Destroys a heap-allocated instance of MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder....
MRC_API void MR_ObjKindTraits_MR_FeaturesObjectKind_Plane_Destroy(const MR_ObjKindTraits_MR_FeaturesObjectKind_Plane *_this)
Destroys a heap-allocated instance of MR_ObjKindTraits_MR_FeaturesObjectKind_Plane....
MRC_API const MR_std_string_view * MR_ObjKindTraits_MR_FeaturesObjectKind_Line_Get_name(void)
MRC_API void MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere_DestroyArray(const MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere *_this)
Destroys a heap-allocated array of MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere. Does nothing if the...
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder * MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder_DefaultConstructArray(size_t num_elems)
MRC_API const MR_std_string_view * MR_ObjKindTraits_MR_FeaturesObjectKind_Plane_Get_name(void)
MRC_API const MR_ObjKindTraits_MR_FeaturesObjectKind_Plane * MR_ObjKindTraits_MR_FeaturesObjectKind_Plane_OffsetPtr(const MR_ObjKindTraits_MR_FeaturesObjectKind_Plane *ptr, ptrdiff_t i)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Circle * MR_ObjKindTraits_MR_FeaturesObjectKind_Circle_DefaultConstructArray(size_t num_elems)
MRC_API const MR_std_string_view * MR_ObjKindTraits_MR_FeaturesObjectKind_Point_Get_name(void)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Circle * MR_ObjKindTraits_MR_FeaturesObjectKind_Circle_ConstructFromAnother(const MR_ObjKindTraits_MR_FeaturesObjectKind_Circle *_other)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere * MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere_DefaultConstructArray(size_t num_elems)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder * MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder_AssignFromAnother(MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder *_this, const MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder *_other)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Point * MR_ObjKindTraits_MR_FeaturesObjectKind_Point_AssignFromAnother(MR_ObjKindTraits_MR_FeaturesObjectKind_Point *_this, const MR_ObjKindTraits_MR_FeaturesObjectKind_Point *_other)
struct MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder
Definition MRFeatureHelpers.h:54
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Cone * MR_ObjKindTraits_MR_FeaturesObjectKind_Cone_DefaultConstructArray(size_t num_elems)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Plane * MR_ObjKindTraits_MR_FeaturesObjectKind_Plane_OffsetMutablePtr(MR_ObjKindTraits_MR_FeaturesObjectKind_Plane *ptr, ptrdiff_t i)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Point * MR_ObjKindTraits_MR_FeaturesObjectKind_Point_DefaultConstructArray(size_t num_elems)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Plane * MR_ObjKindTraits_MR_FeaturesObjectKind_Plane_DefaultConstruct(void)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Circle * MR_ObjKindTraits_MR_FeaturesObjectKind_Circle_AssignFromAnother(MR_ObjKindTraits_MR_FeaturesObjectKind_Circle *_this, const MR_ObjKindTraits_MR_FeaturesObjectKind_Circle *_other)
struct MR_std_unordered_set_std_string MR_std_unordered_set_std_string
Definition MRFeatureHelpers.h:15
struct MR_ObjKindTraits_MR_FeaturesObjectKind_Circle MR_ObjKindTraits_MR_FeaturesObjectKind_Circle
Definition MRFeatureHelpers.h:46
struct MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere
Definition MRFeatureHelpers.h:50
MRC_API void MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder_DestroyArray(const MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder *_this)
Destroys a heap-allocated array of MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder....
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Point * MR_ObjKindTraits_MR_FeaturesObjectKind_Point_ConstructFromAnother(const MR_ObjKindTraits_MR_FeaturesObjectKind_Point *_other)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder * MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder_DefaultConstruct(void)
MRC_API const MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere * MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere_OffsetPtr(const MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere *ptr, ptrdiff_t i)
MRC_API const MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder * MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder_OffsetPtr(const MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder *ptr, ptrdiff_t i)
MRC_API void MR_ObjKindTraits_MR_FeaturesObjectKind_Cone_DestroyArray(const MR_ObjKindTraits_MR_FeaturesObjectKind_Cone *_this)
Destroys a heap-allocated array of MR_ObjKindTraits_MR_FeaturesObjectKind_Cone. Does nothing if the p...
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Cone * MR_ObjKindTraits_MR_FeaturesObjectKind_Cone_ConstructFromAnother(const MR_ObjKindTraits_MR_FeaturesObjectKind_Cone *_other)
struct MR_ObjKindTraits_MR_FeaturesObjectKind_Line MR_ObjKindTraits_MR_FeaturesObjectKind_Line
Definition MRFeatureHelpers.h:38
MRC_API MR_std_shared_ptr_MR_VisualObject * MR_makeObjectFromEnum(MR_FeaturesObjectKind kind)
MRC_API const MR_ObjKindTraits_MR_FeaturesObjectKind_Point * MR_ObjKindTraits_MR_FeaturesObjectKind_Point_OffsetPtr(const MR_ObjKindTraits_MR_FeaturesObjectKind_Point *ptr, ptrdiff_t i)
MRC_API const MR_std_string_view * MR_ObjKindTraits_MR_FeaturesObjectKind_Circle_Get_name(void)
MRC_API const MR_ObjKindTraits_MR_FeaturesObjectKind_Cone * MR_ObjKindTraits_MR_FeaturesObjectKind_Cone_OffsetPtr(const MR_ObjKindTraits_MR_FeaturesObjectKind_Cone *ptr, ptrdiff_t i)
MRC_API void MR_ObjKindTraits_MR_FeaturesObjectKind_Line_DestroyArray(const MR_ObjKindTraits_MR_FeaturesObjectKind_Line *_this)
Destroys a heap-allocated array of MR_ObjKindTraits_MR_FeaturesObjectKind_Line. Does nothing if the p...
MRC_API void MR_ObjKindTraits_MR_FeaturesObjectKind_Circle_Destroy(const MR_ObjKindTraits_MR_FeaturesObjectKind_Circle *_this)
Destroys a heap-allocated instance of MR_ObjKindTraits_MR_FeaturesObjectKind_Circle....
struct MR_ObjKindTraits_MR_FeaturesObjectKind_Plane MR_ObjKindTraits_MR_FeaturesObjectKind_Plane
Definition MRFeatureHelpers.h:42
MRC_API const MR_std_string_view * MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere_Get_name(void)
MRC_API MR_std_optional_MR_Vector3f * MR_getFeatureNormal(MR_FeatureObject *feature)
MRC_API MR_std_shared_ptr_MR_VisualObject * MR_makeObjectFromClassName(const char *className, const char *className_end)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Plane * MR_ObjKindTraits_MR_FeaturesObjectKind_Plane_DefaultConstructArray(size_t num_elems)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Cone * MR_ObjKindTraits_MR_FeaturesObjectKind_Cone_DefaultConstruct(void)
MRC_API void MR_ObjKindTraits_MR_FeaturesObjectKind_Point_Destroy(const MR_ObjKindTraits_MR_FeaturesObjectKind_Point *_this)
Destroys a heap-allocated instance of MR_ObjKindTraits_MR_FeaturesObjectKind_Point....
MRC_API void MR_ObjKindTraits_MR_FeaturesObjectKind_Circle_DestroyArray(const MR_ObjKindTraits_MR_FeaturesObjectKind_Circle *_this)
Destroys a heap-allocated array of MR_ObjKindTraits_MR_FeaturesObjectKind_Circle. Does nothing if the...
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Line * MR_ObjKindTraits_MR_FeaturesObjectKind_Line_DefaultConstruct(void)
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Point * MR_ObjKindTraits_MR_FeaturesObjectKind_Point_OffsetMutablePtr(MR_ObjKindTraits_MR_FeaturesObjectKind_Point *ptr, ptrdiff_t i)
struct MR_ObjKindTraits_MR_FeaturesObjectKind_Cone MR_ObjKindTraits_MR_FeaturesObjectKind_Cone
Definition MRFeatureHelpers.h:58
#define MRC_API
Definition exports.h:11