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#include <stdint.h>
7
8#ifdef __cplusplus
9extern "C" {
10#endif
11
12typedef struct MR_FeatureObject MR_FeatureObject; // Defined in `#include <MRCMesh/MRFeatureObject.h>`.
13typedef struct MR_std_optional_MR_Vector3f MR_std_optional_MR_Vector3f; // Defined in `#include <MRCMisc/std_optional_MR_Vector3f.h>`.
14typedef struct MR_std_shared_ptr_MR_VisualObject MR_std_shared_ptr_MR_VisualObject; // Defined in `#include <MRCMisc/std_shared_ptr_MR_VisualObject.h>`.
15typedef struct MR_std_string_view MR_std_string_view; // Defined in `#include <MRCMisc/std_string_view.h>`.
16typedef struct MR_std_unordered_set_std_string MR_std_unordered_set_std_string; // Defined in `#include <MRCMisc/std_unordered_set_std_string.h>`.
17
18
21typedef int32_t MR_FeaturesObjectKind;
22enum // MR_FeaturesObjectKind
23{
32};
33
36
39
42
45
48
51
54
58
62
67
70
73
78
81
84
90
94
98
103
106
109
114
117
120
126
130
134
139
142
145
150
153
156
162
166
170
175
178
181
186
189
192
198
202
206
211
214
217
222
225
228
234
238
242
247
250
253
258
261
264
270
274
278
283
286
289
294
297
300
306
311
317MRC_API MR_std_shared_ptr_MR_VisualObject *MR_makeObjectFromClassName(const char *className, const char *className_end);
318
319// Using forEachObjectKind the template collects a list of features for which the method ...->getNormal() is available
323
324// Using forEachObjectKind the template collects a list of features for which the method ...->getDirection() is available
328
329// Try to getNormal from specific feature using forEachObjectKind template. Returns nullopt is ...->getNormal() is not available for given feature type.
333
334// Try to getDirection from specific feature using forEachObjectKind template. Returns nullopt is ...->getDirection() is not available for given feature type.
338
339#ifdef __cplusplus
340} // extern "C"
341#endif
struct MR_FeatureObject MR_FeatureObject
Definition MRAddVisualPropertiesMixin.h:16
struct MR_std_shared_ptr_MR_VisualObject MR_std_shared_ptr_MR_VisualObject
Definition MRChangeColoringActions.h:19
struct MR_std_optional_MR_Vector3f MR_std_optional_MR_Vector3f
Definition MRDistanceMap.h:27
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....
int32_t MR_FeaturesObjectKind
Definition MRFeatureHelpers.h:21
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
Generated from class MR::ObjKindTraits<MR::FeaturesObjectKind::Point>.
Definition MRFeatureHelpers.h:35
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)
struct MR_std_string_view MR_std_string_view
Definition MRFeatureHelpers.h:15
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...
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
Generated from class MR::ObjKindTraits<MR::FeaturesObjectKind::Cylinder>.
Definition MRFeatureHelpers.h:50
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:16
struct MR_ObjKindTraits_MR_FeaturesObjectKind_Circle MR_ObjKindTraits_MR_FeaturesObjectKind_Circle
Generated from class MR::ObjKindTraits<MR::FeaturesObjectKind::Circle>.
Definition MRFeatureHelpers.h:44
struct MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere MR_ObjKindTraits_MR_FeaturesObjectKind_Sphere
Generated from class MR::ObjKindTraits<MR::FeaturesObjectKind::Sphere>.
Definition MRFeatureHelpers.h:47
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
Generated from class 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
Generated from class MR::ObjKindTraits<MR::FeaturesObjectKind::Plane>.
Definition MRFeatureHelpers.h:41
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)
@ MR_FeaturesObjectKind_Line
Definition MRFeatureHelpers.h:25
@ MR_FeaturesObjectKind_Point
Definition MRFeatureHelpers.h:24
@ MR_FeaturesObjectKind_Plane
Definition MRFeatureHelpers.h:26
@ MR_FeaturesObjectKind_Cylinder
Definition MRFeatureHelpers.h:29
@ MR_FeaturesObjectKind_Cone
Definition MRFeatureHelpers.h:30
@ MR_FeaturesObjectKind_Circle
Definition MRFeatureHelpers.h:27
@ MR_FeaturesObjectKind_Sphere
Definition MRFeatureHelpers.h:28
@ MR_FeaturesObjectKind__count
Definition MRFeatureHelpers.h:31
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
Generated from class MR::ObjKindTraits<MR::FeaturesObjectKind::Cone>.
Definition MRFeatureHelpers.h:53
#define MRC_API
Definition exports.h:11