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
75
78
83
86
89
95
99
103
108
111
114
119
122
125
131
135
139
144
147
150
155
158
161
167
171
175
180
183
186
191
194
197
203
207
211
216
219
222
227
230
233
239
243
247
252
255
258
263
266
269
275
279
283
288
291
294
299
302
305
311
316
322MRC_API MR_std_shared_ptr_MR_VisualObject *MR_makeObjectFromClassName(const char *className, const char *className_end);
323
324// Using forEachObjectKind the template collects a list of features for which the method ...->getNormal() is available
328
329// Using forEachObjectKind the template collects a list of features for which the method ...->getDirection() is available
333
334// Try to getNormal from specific feature using forEachObjectKind template. Returns nullopt is ...->getNormal() is not available for given feature type.
338
339// Try to getDirection from specific feature using forEachObjectKind template. Returns nullopt is ...->getDirection() is not available for given feature type.
343
344#ifdef __cplusplus
345} // extern "C"
346#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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder * MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder_OffsetMutablePtr(MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder *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_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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
MRC_API const MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder * MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder_OffsetPtr(const MR_ObjKindTraits_MR_FeaturesObjectKind_Cylinder *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_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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
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)
Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the...
struct MR_ObjKindTraits_MR_FeaturesObjectKind_Cone MR_ObjKindTraits_MR_FeaturesObjectKind_Cone
Definition MRFeatureHelpers.h:58
#define MRC_API
Definition exports.h:11