MeshLib C Docs
Loading...
Searching...
No Matches
MRFeatures.h
Go to the documentation of this file.
1#pragma once
2
3#include <MRCMesh/MRVector3.h>
4#include <MRCMisc/common.h>
5#include <MRCMisc/exports.h>
6
7#include <stdbool.h>
8#include <stddef.h>
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14typedef struct MR_AffineXf3f MR_AffineXf3f; // Defined in `#include <MRCMesh/MRAffineXf.h>`.
15typedef struct MR_Cone3f MR_Cone3f; // Defined in `#include <MRCMesh/MRCone3.h>`.
16typedef struct MR_Cylinder3f MR_Cylinder3f; // Defined in `#include <MRCMesh/MRCylinder3.h>`.
17typedef struct MR_Line3f MR_Line3f; // Defined in `#include <MRCMesh/MRLine.h>`.
18typedef struct MR_LineSegm3f MR_LineSegm3f; // Defined in `#include <MRCMesh/MRLineSegm.h>`.
19typedef struct MR_Object MR_Object; // Defined in `#include <MRCMesh/MRObject.h>`.
20typedef struct MR_Sphere3f MR_Sphere3f; // Defined in `#include <MRCMesh/MRSphere.h>`.
21typedef struct MR_std_optional_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane MR_std_optional_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane; // Defined in `#include <MRCMisc/std_optional_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitiv__9713.h>`.
22typedef struct MR_std_shared_ptr_MR_FeatureObject MR_std_shared_ptr_MR_FeatureObject; // Defined in `#include <MRCMisc/std_shared_ptr_MR_FeatureObject.h>`.
23typedef struct MR_std_string MR_std_string; // Defined in `#include <MRCMisc/std_string.h>`.
24typedef struct MR_std_string_view MR_std_string_view; // Defined in `#include <MRCMisc/std_string_view.h>`.
25typedef struct MR_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane MR_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane; // Defined in `#include <MRCMisc/std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane.h>`.
26typedef struct MR_std_vector_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane MR_std_vector_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane; // Defined in `#include <MRCMisc/std_vector_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives__cdd2.h>`.
27
28
32
39
53
61
68
75
80
84
88
92
93// ?? <-> Sphere
97
101
105
106// ?? <-> Cone
110
114
115// ?? <-> Plane
119
124
128
133
134// This must be normalized. The sign doesn't matter.
139
140// This must be normalized. The sign doesn't matter.
144
145// This must be normalized. The sign doesn't matter.
150
154
159
163
166
169
174
177
180
186
187// Returns an infinite line, with the center in a sane location.
193
194// Intersects the plane with a line, returns a point (zero radius sphere).
195// Only `center` and `dir` are used from `line` (so if `line` is a cone/cylinder, its axis is used,
196// and the line is extended to infinity).
202
207
213
218
224
230
235
241
247
252
258
264
269
275
281
286
292
298
303
309
310// If true, the cone has no caps and no volume, and all distances (to the conical surface, that is) are positive.
315
316// If true, the cone has no caps and no volume, and all distances (to the conical surface, that is) are positive.
320
321// If true, the cone has no caps and no volume, and all distances (to the conical surface, that is) are positive.
326
330
335
338MRC_API MR_Features_Primitives_ConeSegment *MR_Features_Primitives_ConeSegment_ConstructFrom(MR_Vector3f referencePoint, MR_Vector3f dir, float positiveSideRadius, float negativeSideRadius, float positiveLength, float negativeLength, bool hollow);
339
342
345
350
353
356
362
366
370
371// Returns the length. Can be infinite.
375
376// Returns the center point (unlike `referencePoint`, which can actually be off-center).
377// For half-infinite objects, returns the finite end.
382
383// Extends the object to infinity in one direction. The radius in the extended direction becomes equal to the radius in the opposite direction.
388
389// Extends the object to infinity in both directions. This is equivalent to `.extendToInfinity(false).extendToInfinity(true)`,
390// except that calling it with `positiveSideRadius != negativeSideRadius` is illegal and triggers an assertion.
395
396// Untruncates a truncated cone. If it's not a cone at all, returns the object unchanged and triggers an assertion.
401
402// Returns a finite axis. For circles, you might want to immediately `extendToInfinity()` it.
407
408// Returns a center of one of the two base circles.
413
414// Returns one of the two base planes.
419
420// Returns one of the two base circles.
425
430
431// Those map various MR types to our primitives. Some of those are identity functions.
436
441
446
451
456
461
468
475
482
483// Returns null if the object type is unknown. This overload ignores the parent xf.
488
489// Returns null if the object type is unknown. This overload respects the parent's `worldXf()`.
494
495// Can return null on some primitive configurations.
496// `infiniteExtent` is how large we make "infinite" objects. Half-infinite objects divide this by 2.
501
502// Transform a primitive by an xf.
503// Non-uniform scaling and skewing are not supported.
509
515
521
527
528// Exact distance.
533
534// Exact distance.
539
540// Exact distance.
545
546// Some approximation of the distance.
547// For planes and lines, this expects them to be mostly parallel. For everything else, it just takes the feature center.
552
553// Some approximation of the distance.
554// For planes and lines, this expects them to be mostly parallel. For everything else, it just takes the feature center.
559
560// Some approximation of the distance.
561// For planes and lines, this expects them to be mostly parallel. For everything else, it just takes the feature center.
566
571
576
581
582// The primitives obtained from intersecting those two.
587
588// The primitives obtained from intersecting those two.
592
593// The primitives obtained from intersecting those two.
598
602
607
614
617
620
624
627
630
635
636// Modifies the object to swap A and B;
640
645
649
654
658
663
667
670
673
678
682
687
691
696
699
702
706
712
713// This is a separate field because it can be negative.
718
719// This is a separate field because it can be negative.
723
724// This is a separate field because it can be negative.
729
734
738
743
748
752
757
762
766
771
775
780
783
786
790
793
798
801
804
808
814
818
822
826
831
835
840
845
849
854
855// Normalized.
860
861// Normalized.
865
866// Normalized.
871
872// ^
877
878// ^
882
883// ^
888
894
899
905
910
914
919
924
928
933
937
942
945
948
952
955
960
963
966
970
976
980
984
988
992
993// `MeasureResult::Status` enum to string.
997
1001
1006
1009
1012
1017
1020
1023
1029
1035
1039
1044
1047
1050
1055
1058
1061
1067
1073
1077
1082
1085
1088
1093
1096
1099
1105
1111
1115
1120
1123
1126
1131
1134
1137
1143
1150
1154
1159
1162
1165
1170
1173
1176
1182
1189
1193
1198
1201
1204
1209
1212
1215
1221
1228
1232
1237
1240
1243
1248
1251
1254
1260
1267
1271
1276
1279
1282
1287
1290
1293
1299
1306
1310
1315
1318
1321
1326
1329
1332
1338
1345
1346// Same but for a variant.
1351
1352// Same, but with variants as both argument.
1358
1359#ifdef __cplusplus
1360} // extern "C"
1361#endif
struct MR_Line3f MR_Line3f
Definition MRBestFit.h:17
struct MR_Cone3f MR_Cone3f
Definition MRCone3.h:19
struct MR_std_string MR_std_string
Definition MRCtm.h:32
struct MR_Cylinder3f MR_Cylinder3f
Definition MRCylinder3.h:21
struct MR_std_string_view MR_std_string_view
Definition MRDistanceMeasurementObject.h:39
MRC_API MR_Features_Primitives_ConeSegment * MR_Features_toPrimitive_MR_Cone3f(const MR_Cone3f *cone)
MRC_API const MR_Vector3f * MR_Features_MeasureResult_Distance_Get_closestPointA(const MR_Features_MeasureResult_Distance *_this)
MRC_API MR_Features_MeasureResult * MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f_measure(const MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f *_this, const MR_Sphere3f *a, const MR_Sphere3f *b)
MRC_API MR_Features_Primitives_ConeSegment * MR_Features_primitiveCone(const MR_Vector3f *a, const MR_Vector3f *b, float rad)
MRC_API MR_Features_MeasureResult * MR_Features_MeasureResult_DefaultConstruct(void)
MRC_API MR_Features_Primitives_ConeSegment * MR_Features_Primitives_ConeSegment_DefaultConstructArray(size_t num_elems)
MRC_API const float * MR_Features_Primitives_ConeSegment_Get_positiveLength(const MR_Features_Primitives_ConeSegment *_this)
MRC_API MR_Features_Primitives_ConeSegment * MR_Features_Primitives_ConeSegment_untruncateCone(const MR_Features_Primitives_ConeSegment *_this)
struct MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment
Definition MRFeatures.h:109
MRC_API MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f * MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f_DefaultConstructArray(size_t num_elems)
MRC_API const MR_Vector3f * MR_Features_MeasureResult_Angle_Get_dirA(const MR_Features_MeasureResult_Angle *_this)
MRC_API void MR_Features_MeasureResult_Set_centerDistance(MR_Features_MeasureResult *_this, const MR_Features_MeasureResult_Distance *value)
MRC_API void MR_Features_MeasureResult_Set_distance(MR_Features_MeasureResult *_this, const MR_Features_MeasureResult_Distance *value)
MRC_API const MR_Vector3f * MR_Features_MeasureResult_Angle_Get_pointA(const MR_Features_MeasureResult_Angle *_this)
MRC_API void MR_Features_Primitives_ConeSegment_DestroyArray(const MR_Features_Primitives_ConeSegment *_this)
Destroys a heap-allocated array of MR_Features_Primitives_ConeSegment. Does nothing if the pointer is...
MRC_API MR_Features_Traits_Unary_MR_Sphere3f * MR_Features_Traits_Unary_MR_Sphere3f_AssignFromAnother(MR_Features_Traits_Unary_MR_Sphere3f *_this, const MR_Features_Traits_Unary_MR_Sphere3f *_other)
MRC_API MR_Features_Primitives_ConeSegment * MR_Features_Primitives_ConeSegment_extendToInfinity_0(const MR_Features_Primitives_ConeSegment *_this)
struct MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f
Definition MRFeatures.h:96
MRC_API MR_std_shared_ptr_MR_FeatureObject * MR_Features_primitiveToObject(const MR_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane *primitive, float infiniteExtent)
MRC_API MR_Vector3f * MR_Features_Primitives_ConeSegment_GetMutable_dir(MR_Features_Primitives_ConeSegment *_this)
MRC_API MR_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane * MR_Features_transformPrimitive_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane(const MR_AffineXf3f *xf, const MR_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane *primitive)
MRC_API MR_Vector3f * MR_Features_MeasureResult_Angle_GetMutable_dirB(MR_Features_MeasureResult_Angle *_this)
MRC_API const MR_Vector3f * MR_Features_Primitives_Plane_Get_center(const MR_Features_Primitives_Plane *_this)
struct MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f
Definition MRFeatures.h:104
MRC_API MR_Features_Primitives_ConeSegment * MR_Features_Primitives_ConeSegment_OffsetMutablePtr(MR_Features_Primitives_ConeSegment *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_Features_Primitives_ConeSegment_Set_negativeLength(MR_Features_Primitives_ConeSegment *_this, float value)
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f * MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f_DefaultConstructArray(size_t num_elems)
MRC_API void MR_Features_MeasureResult_Angle_Set_dirB(MR_Features_MeasureResult_Angle *_this, MR_Vector3f value)
MRC_API const MR_Features_MeasureResult_Angle * MR_Features_MeasureResult_BasicPart_StaticDowncastTo_MR_Features_MeasureResult_Angle(const MR_Features_MeasureResult_BasicPart *object)
MRC_API const MR_Vector3f * MR_Features_Primitives_ConeSegment_Get_dir(const MR_Features_Primitives_ConeSegment *_this)
MRC_API float * MR_Features_Primitives_ConeSegment_GetMutable_positiveLength(MR_Features_Primitives_ConeSegment *_this)
MRC_API void MR_Features_Traits_Unary_MR_Sphere3f_DestroyArray(const MR_Features_Traits_Unary_MR_Sphere3f *_this)
Destroys a heap-allocated array of MR_Features_Traits_Unary_MR_Sphere3f. Does nothing if the pointer ...
MRC_API MR_Features_Traits_Unary_MR_Features_Primitives_Plane * MR_Features_Traits_Unary_MR_Features_Primitives_Plane_DefaultConstruct(void)
MRC_API MR_std_optional_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane * MR_Features_primitiveFromObject(const MR_Object *object)
MRC_API MR_Features_Primitives_ConeSegment * MR_Features_primitiveCylinder(const MR_Vector3f *a, const MR_Vector3f *b, float rad)
struct MR_Features_MeasureResult_Distance MR_Features_MeasureResult_Distance
Definition MRFeatures.h:67
MRC_API MR_Features_Traits_Unary_MR_Features_Primitives_Plane * MR_Features_Traits_Unary_MR_Features_Primitives_Plane_OffsetMutablePtr(MR_Features_Traits_Unary_MR_Features_Primitives_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 const float * MR_Features_Primitives_ConeSegment_Get_negativeLength(const MR_Features_Primitives_ConeSegment *_this)
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f * MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f_OffsetMutablePtr(MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f *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_Features_Primitives_ConeSegment * MR_Features_Primitives_ConeSegment_DefaultConstruct(void)
MRC_API MR_Features_MeasureResult_Status * MR_Features_MeasureResult_Angle_GetMutable_status(MR_Features_MeasureResult_Angle *_this)
MRC_API bool MR_equal_MR_Features_Primitives_ConeSegment(const MR_Features_Primitives_ConeSegment *_1, const MR_Features_Primitives_ConeSegment *_2)
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane * MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane_OffsetMutablePtr(MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_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 const MR_Features_MeasureResult_Angle * MR_Features_MeasureResult_Get_angle(const MR_Features_MeasureResult *_this)
MRC_API MR_Features_MeasureResult * MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f_measure(const MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f *_this, const MR_Features_Primitives_Plane *a, const MR_Sphere3f *b)
MRC_API MR_Sphere3f * MR_Features_Primitives_ConeSegment_centerPoint(const MR_Features_Primitives_ConeSegment *_this)
MRC_API float MR_Features_MeasureResult_Distance_distanceAlongAxis(const MR_Features_MeasureResult_Distance *_this, int i)
MRC_API bool MR_Features_MeasureResult_Angle_ConvertTo_bool(const MR_Features_MeasureResult_Angle *_this)
MRC_API void MR_Features_Primitives_ConeSegment_Set_positiveLength(MR_Features_Primitives_ConeSegment *_this, float value)
MRC_API MR_Vector3f MR_Features_MeasureResult_Angle_dirFor(const MR_Features_MeasureResult_Angle *_this, bool b)
MRC_API bool MR_Features_Primitives_ConeSegment_isZeroRadius(const MR_Features_Primitives_ConeSegment *_this)
MRC_API MR_std_string * MR_Features_name(const MR_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane *var)
MRC_API MR_Features_Traits_Unary_MR_Features_Primitives_Plane * MR_Features_Traits_Unary_MR_Features_Primitives_Plane_AssignFromAnother(MR_Features_Traits_Unary_MR_Features_Primitives_Plane *_this, const MR_Features_Traits_Unary_MR_Features_Primitives_Plane *_other)
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment * MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment_OffsetMutablePtr(MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment *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_Features_MeasureResult_Distance * MR_Features_MeasureResult_Distance_AssignFromAnother(MR_Features_MeasureResult_Distance *_this, const MR_Features_MeasureResult_Distance *_other)
MRC_API MR_Features_MeasureResult * MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment_measure(const MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment *_this, const MR_Features_Primitives_ConeSegment *a, const MR_Features_Primitives_ConeSegment *b)
struct MR_Features_MeasureResult MR_Features_MeasureResult
Definition MRFeatures.h:79
MRC_API const float * MR_Features_Primitives_ConeSegment_Get_negativeSideRadius(const MR_Features_Primitives_ConeSegment *_this)
MRC_API const float * MR_Features_MeasureResult_Distance_Get_distance(const MR_Features_MeasureResult_Distance *_this)
MRC_API MR_std_string * MR_Features_Traits_Unary_MR_Features_Primitives_Plane_name(const MR_Features_Traits_Unary_MR_Features_Primitives_Plane *_this, const MR_Features_Primitives_Plane *prim)
struct MR_std_vector_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane MR_std_vector_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane
Definition MRFeatures.h:26
MRC_API void MR_Features_MeasureResult_Destroy(const MR_Features_MeasureResult *_this)
Destroys a heap-allocated instance of MR_Features_MeasureResult. Does nothing if the pointer is null.
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane * MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane_ConstructFromAnother(const MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane *_other)
MRC_API MR_Features_MeasureResult_Distance * MR_Features_MeasureResult_BasicPart_MutableStaticDowncastTo_MR_Features_MeasureResult_Distance(MR_Features_MeasureResult_BasicPart *object)
MRC_API MR_Features_Primitives_ConeSegment * MR_Features_Primitives_Plane_intersectWithPlane(const MR_Features_Primitives_Plane *_this, const MR_Features_Primitives_Plane *other)
MRC_API MR_Features_Primitives_ConeSegment * MR_Features_Primitives_ConeSegment_AssignFromAnother(MR_Features_Primitives_ConeSegment *_this, const MR_Features_Primitives_ConeSegment *_other)
MRC_API MR_Sphere3f * MR_Features_toPrimitive_MR_Vector3f(const MR_Vector3f *point)
MRC_API MR_Features_Primitives_ConeSegment * MR_Features_toPrimitive_MR_Cylinder3f(const MR_Cylinder3f *cyl)
struct MR_LineSegm3f MR_LineSegm3f
Definition MRFeatures.h:18
struct MR_Features_Primitives_ConeSegment MR_Features_Primitives_ConeSegment
Definition MRFeatures.h:38
struct MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment
Definition MRFeatures.h:87
MRC_API const MR_Features_MeasureResult_Distance * MR_Features_MeasureResult_Get_distance(const MR_Features_MeasureResult *_this)
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f * MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f_DefaultConstruct(void)
MRC_API MR_Features_MeasureResult * MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane_measure(const MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane *_this, const MR_Features_Primitives_Plane *a, const MR_Features_Primitives_Plane *b)
MRC_API void MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f_DestroyArray(const MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f *_this)
Destroys a heap-allocated array of MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f....
MRC_API MR_std_string * MR_Features_Traits_Unary_MR_Sphere3f_name(const MR_Features_Traits_Unary_MR_Sphere3f *_this, const MR_Sphere3f *prim)
MRC_API void MR_Features_Primitives_Plane_Destroy(const MR_Features_Primitives_Plane *_this)
Destroys a heap-allocated instance of MR_Features_Primitives_Plane. Does nothing if the pointer is nu...
MRC_API MR_Vector3f MR_Features_MeasureResult_Distance_closestPointFor(const MR_Features_MeasureResult_Distance *_this, bool b)
MRC_API const MR_Vector3f * MR_Features_Primitives_ConeSegment_Get_referencePoint(const MR_Features_Primitives_ConeSegment *_this)
MRC_API MR_Sphere3f * MR_Features_Primitives_Plane_intersectWithLine(const MR_Features_Primitives_Plane *_this, const MR_Features_Primitives_ConeSegment *line)
MRC_API const MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f * MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f_OffsetPtr(const MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f *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_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment * MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment_OffsetPtr(const MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment *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_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane * MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane_AssignFromAnother(MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane *_this, const MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane *_other)
MRC_API MR_Features_Primitives_ConeSegment * MR_Features_toPrimitive_MR_LineSegm3f(const MR_LineSegm3f *segm)
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment * MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment_AssignFromAnother(MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment *_this, const MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment *_other)
MRC_API const MR_Features_MeasureResult_Distance * MR_Features_MeasureResult_Distance_OffsetPtr(const MR_Features_MeasureResult_Distance *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_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f * MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f_OffsetMutablePtr(MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f *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_Vector3f * MR_Features_MeasureResult_Angle_GetMutable_pointA(MR_Features_MeasureResult_Angle *_this)
MRC_API void MR_Features_MeasureResult_Set_angle(MR_Features_MeasureResult *_this, const MR_Features_MeasureResult_Angle *value)
MRC_API MR_Features_MeasureResult * MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment_measure(const MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment *_this, const MR_Features_Primitives_Plane *a, const MR_Features_Primitives_ConeSegment *b)
MRC_API MR_Features_MeasureResult_Distance * MR_Features_MeasureResult_GetMutable_centerDistance(MR_Features_MeasureResult *_this)
MRC_API const MR_Features_MeasureResult_Distance * MR_Features_MeasureResult_Get_centerDistance(const MR_Features_MeasureResult *_this)
MRC_API MR_Features_Primitives_ConeSegment * MR_Features_toPrimitive_MR_Line3f(const MR_Line3f *line)
MRC_API MR_Features_Primitives_Plane * MR_Features_transformPrimitive_MR_Features_Primitives_Plane(const MR_AffineXf3f *xf, const MR_Features_Primitives_Plane *primitive)
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment * MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment_DefaultConstructArray(size_t num_elems)
MRC_API MR_Features_MeasureResult * MR_Features_MeasureResult_ConstructFromAnother(MR_PassBy _other_pass_by, MR_Features_MeasureResult *_other)
MRC_API float * MR_Features_Primitives_ConeSegment_GetMutable_positiveSideRadius(MR_Features_Primitives_ConeSegment *_this)
struct MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment
Definition MRFeatures.h:113
MRC_API MR_Features_MeasureResult * MR_Features_MeasureResult_OffsetMutablePtr(MR_Features_MeasureResult *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_Vector3f * MR_Features_Primitives_Plane_GetMutable_center(MR_Features_Primitives_Plane *_this)
MRC_API const MR_Features_MeasureResult_Status * MR_Features_MeasureResult_Distance_Get_status(const MR_Features_MeasureResult_Distance *_this)
MRC_API void MR_Features_MeasureResult_Angle_DestroyArray(const MR_Features_MeasureResult_Angle *_this)
Destroys a heap-allocated array of MR_Features_MeasureResult_Angle. Does nothing if the pointer is nu...
MRC_API MR_Features_MeasureResult * MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f_measure(const MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f *_this, const MR_Features_Primitives_ConeSegment *a, const MR_Sphere3f *b)
MRC_API MR_Sphere3f * MR_Features_toPrimitive_MR_Sphere3f(const MR_Sphere3f *sphere)
MRC_API void MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment_Destroy(const MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment *_this)
Destroys a heap-allocated instance of MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Featu...
MRC_API MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f * MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f_AssignFromAnother(MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f *_this, const MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f *_other)
MRC_API const MR_Vector3f * MR_Features_Primitives_Plane_Get_normal(const MR_Features_Primitives_Plane *_this)
MRC_API MR_std_vector_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane * MR_Features_MeasureResult_GetMutable_intersections(MR_Features_MeasureResult *_this)
MRC_API void MR_Features_Primitives_ConeSegment_Set_positiveSideRadius(MR_Features_Primitives_ConeSegment *_this, float value)
MRC_API void MR_Features_MeasureResult_Distance_Set_closestPointB(MR_Features_MeasureResult_Distance *_this, MR_Vector3f value)
MRC_API void MR_Features_MeasureResult_Angle_Set_isSurfaceNormalA(MR_Features_MeasureResult_Angle *_this, bool value)
MRC_API void MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f_DestroyArray(const MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f *_this)
Destroys a heap-allocated array of MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f...
MRC_API MR_Features_Primitives_ConeSegment * MR_Features_primitiveCircle(const MR_Vector3f *point, const MR_Vector3f *normal, float rad)
MRC_API MR_Features_MeasureResult * MR_Features_MeasureResult_ConstructFrom(const MR_Features_MeasureResult_Distance *distance, const MR_Features_MeasureResult_Distance *centerDistance, const MR_Features_MeasureResult_Angle *angle, MR_PassBy intersections_pass_by, MR_std_vector_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane *intersections)
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment * MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment_ConstructFromAnother(const MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment *_other)
struct MR_Features_Traits_Unary_MR_Sphere3f MR_Features_Traits_Unary_MR_Sphere3f
Definition MRFeatures.h:83
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment * MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment_AssignFromAnother(MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment *_this, const MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment *_other)
MRC_API MR_Vector3f * MR_Features_MeasureResult_Angle_GetMutable_dirA(MR_Features_MeasureResult_Angle *_this)
MRC_API bool MR_Features_MeasureResult_BasicPart_ConvertTo_bool(const MR_Features_MeasureResult_BasicPart *_this)
MRC_API MR_Features_Primitives_ConeSegment * MR_Features_Primitives_ConeSegment_extendToInfinity_1(const MR_Features_Primitives_ConeSegment *_this, bool negative)
MR_Features_MeasureResult_Status
Definition MRFeatures.h:41
@ MR_Features_MeasureResult_Status_notFinite
The result was not finite. This is set automatically if you return non-finite values,...
Definition MRFeatures.h:51
@ MR_Features_MeasureResult_Status_badRelativeLocation
Can't be computed because of how the objects are located relative to each other.
Definition MRFeatures.h:49
@ MR_Features_MeasureResult_Status_notImplemented
Algorithms set this if this when something isn't yet implemented.
Definition MRFeatures.h:44
@ MR_Features_MeasureResult_Status_badFeaturePair
Definition MRFeatures.h:47
@ MR_Features_MeasureResult_Status_ok
Definition MRFeatures.h:42
MRC_API const MR_Features_MeasureResult_Status * MR_Features_MeasureResult_Angle_Get_status(const MR_Features_MeasureResult_Angle *_this)
MRC_API const MR_std_vector_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane * MR_Features_MeasureResult_Get_intersections(const MR_Features_MeasureResult *_this)
MRC_API const MR_Features_Traits_Unary_MR_Sphere3f * MR_Features_Traits_Unary_MR_Sphere3f_OffsetPtr(const MR_Features_Traits_Unary_MR_Sphere3f *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_std_optional_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane MR_std_optional_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane
Definition MRFeatures.h:21
MRC_API void MR_Features_MeasureResult_BasicPart_DestroyArray(const MR_Features_MeasureResult_BasicPart *_this)
Destroys a heap-allocated array of MR_Features_MeasureResult_BasicPart. Does nothing if the pointer i...
MRC_API void MR_Features_Primitives_Plane_DestroyArray(const MR_Features_Primitives_Plane *_this)
Destroys a heap-allocated array of MR_Features_Primitives_Plane. Does nothing if the pointer is null.
MRC_API MR_Features_MeasureResult_BasicPart * MR_Features_MeasureResult_Distance_MutableUpcastTo_MR_Features_MeasureResult_BasicPart(MR_Features_MeasureResult_Distance *object)
Upcasts an instance of MR::Features::MeasureResult::Distance to its base class MR::Features::MeasureR...
MRC_API MR_Features_MeasureResult_BasicPart * MR_Features_MeasureResult_Angle_MutableUpcastTo_MR_Features_MeasureResult_BasicPart(MR_Features_MeasureResult_Angle *object)
Upcasts an instance of MR::Features::MeasureResult::Angle to its base class MR::Features::MeasureResu...
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane * MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane_DefaultConstructArray(size_t num_elems)
MRC_API void MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment_DestroyArray(const MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment *_this)
Destroys a heap-allocated array of MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment....
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f * MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f_AssignFromAnother(MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f *_this, const MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f *_other)
MRC_API MR_Features_MeasureResult_Angle * MR_Features_MeasureResult_BasicPart_MutableStaticDowncastTo_MR_Features_MeasureResult_Angle(MR_Features_MeasureResult_BasicPart *object)
MRC_API MR_Vector3f * MR_Features_MeasureResult_Angle_GetMutable_pointB(MR_Features_MeasureResult_Angle *_this)
MRC_API MR_Features_Primitives_ConeSegment * MR_Features_Primitives_ConeSegment_ConstructFrom(MR_Vector3f referencePoint, MR_Vector3f dir, float positiveSideRadius, float negativeSideRadius, float positiveLength, float negativeLength, bool hollow)
MRC_API MR_Features_Primitives_ConeSegment * MR_Features_transformPrimitive_MR_Features_Primitives_ConeSegment(const MR_AffineXf3f *xf, const MR_Features_Primitives_ConeSegment *primitive)
MRC_API void MR_Features_MeasureResult_Distance_Destroy(const MR_Features_MeasureResult_Distance *_this)
Destroys a heap-allocated instance of MR_Features_MeasureResult_Distance. Does nothing if the pointer...
MRC_API void MR_Features_MeasureResult_Angle_Destroy(const MR_Features_MeasureResult_Angle *_this)
Destroys a heap-allocated instance of MR_Features_MeasureResult_Angle. Does nothing if the pointer is...
MRC_API float MR_Features_MeasureResult_Distance_distanceAlongAxisAbs(const MR_Features_MeasureResult_Distance *_this, int i)
MRC_API bool MR_Features_MeasureResult_Angle_isSurfaceNormalFor(const MR_Features_MeasureResult_Angle *_this, bool b)
MRC_API float MR_Features_MeasureResult_Angle_computeAngleInRadians(const MR_Features_MeasureResult_Angle *_this)
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f * MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f_DefaultConstruct(void)
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment * MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment_OffsetMutablePtr(MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment *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_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane * MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane_OffsetPtr(const MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_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_Features_MeasureResult_Angle * MR_Features_MeasureResult_Angle_ConstructFromAnother(const MR_Features_MeasureResult_Angle *_other)
MRC_API float * MR_Features_Primitives_ConeSegment_GetMutable_negativeSideRadius(MR_Features_Primitives_ConeSegment *_this)
MRC_API MR_Features_MeasureResult_Angle * MR_Features_MeasureResult_Angle_OffsetMutablePtr(MR_Features_MeasureResult_Angle *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_Features_MeasureResult_BasicPart * MR_Features_MeasureResult_BasicPart_ConstructFromAnother(const MR_Features_MeasureResult_BasicPart *_other)
MRC_API bool MR_Features_Primitives_ConeSegment_isCircle(const MR_Features_Primitives_ConeSegment *_this)
MRC_API MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f * MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f_ConstructFromAnother(const MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f *_other)
MRC_API MR_Features_MeasureResult_Angle * MR_Features_MeasureResult_Angle_DefaultConstruct(void)
struct MR_Features_MeasureResult_BasicPart MR_Features_MeasureResult_BasicPart
Definition MRFeatures.h:60
MRC_API const MR_Features_MeasureResult_BasicPart * MR_Features_MeasureResult_BasicPart_OffsetPtr(const MR_Features_MeasureResult_BasicPart *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_Features_MeasureResult_Angle * MR_Features_MeasureResult_Angle_AssignFromAnother(MR_Features_MeasureResult_Angle *_this, const MR_Features_MeasureResult_Angle *_other)
MRC_API const MR_Features_MeasureResult_BasicPart * MR_Features_MeasureResult_Distance_UpcastTo_MR_Features_MeasureResult_BasicPart(const MR_Features_MeasureResult_Distance *object)
MRC_API MR_Vector3f * MR_Features_Primitives_Plane_GetMutable_normal(MR_Features_Primitives_Plane *_this)
MRC_API MR_Features_MeasureResult_Distance * MR_Features_MeasureResult_Distance_DefaultConstructArray(size_t num_elems)
MRC_API void MR_Features_MeasureResult_Angle_Set_status(MR_Features_MeasureResult_Angle *_this, MR_Features_MeasureResult_Status value)
struct MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane
Definition MRFeatures.h:118
MRC_API void MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f_Destroy(const MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f *_this)
Destroys a heap-allocated instance of MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR...
MRC_API MR_Features_MeasureResult_Distance * MR_Features_MeasureResult_Distance_OffsetMutablePtr(MR_Features_MeasureResult_Distance *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_Features_MeasureResult * MR_Features_MeasureResult_DefaultConstructArray(size_t num_elems)
MRC_API MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment * MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment_DefaultConstruct(void)
MRC_API MR_Features_MeasureResult_BasicPart * MR_Features_MeasureResult_BasicPart_OffsetMutablePtr(MR_Features_MeasureResult_BasicPart *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_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane MR_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane
Definition MRFeatures.h:25
MRC_API MR_Features_MeasureResult_Distance * MR_Features_MeasureResult_Distance_ConstructFromAnother(const MR_Features_MeasureResult_Distance *_other)
MRC_API MR_Features_MeasureResult_Angle * MR_Features_MeasureResult_GetMutable_angle(MR_Features_MeasureResult *_this)
MRC_API MR_Features_Traits_Unary_MR_Sphere3f * MR_Features_Traits_Unary_MR_Sphere3f_OffsetMutablePtr(MR_Features_Traits_Unary_MR_Sphere3f *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_Features_MeasureResult_Distance * MR_Features_MeasureResult_BasicPart_StaticDowncastTo_MR_Features_MeasureResult_Distance(const MR_Features_MeasureResult_BasicPart *object)
MRC_API void MR_Features_MeasureResult_Distance_Set_status(MR_Features_MeasureResult_Distance *_this, MR_Features_MeasureResult_Status value)
MRC_API MR_Features_MeasureResult * MR_Features_measure(const MR_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane *a, const MR_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane *b)
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment * MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment_ConstructFromAnother(const MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment *_other)
MRC_API const MR_Features_MeasureResult_Angle * MR_Features_MeasureResult_Angle_OffsetPtr(const MR_Features_MeasureResult_Angle *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_Features_Primitives_Plane_Set_center(MR_Features_Primitives_Plane *_this, MR_Vector3f value)
MRC_API void MR_Features_MeasureResult_Distance_DestroyArray(const MR_Features_MeasureResult_Distance *_this)
Destroys a heap-allocated array of MR_Features_MeasureResult_Distance. Does nothing if the pointer is...
MRC_API MR_Features_MeasureResult_Status * MR_Features_MeasureResult_BasicPart_GetMutable_status(MR_Features_MeasureResult_BasicPart *_this)
MRC_API float MR_Features_Primitives_ConeSegment_length(const MR_Features_Primitives_ConeSegment *_this)
MRC_API void MR_Features_Traits_Unary_MR_Sphere3f_Destroy(const MR_Features_Traits_Unary_MR_Sphere3f *_this)
Destroys a heap-allocated instance of MR_Features_Traits_Unary_MR_Sphere3f. Does nothing if the point...
MRC_API void MR_Features_MeasureResult_swapObjects(MR_Features_MeasureResult *_this)
MRC_API void MR_Features_Primitives_ConeSegment_Set_negativeSideRadius(MR_Features_Primitives_ConeSegment *_this, float value)
struct MR_Sphere3f MR_Sphere3f
Definition MRFeatures.h:20
MRC_API MR_Vector3f * MR_Features_MeasureResult_Distance_GetMutable_closestPointA(MR_Features_MeasureResult_Distance *_this)
MRC_API bool MR_Features_MeasureResult_Distance_ConvertTo_bool(const MR_Features_MeasureResult_Distance *_this)
MRC_API void MR_Features_MeasureResult_Set_intersections(MR_Features_MeasureResult *_this, MR_PassBy value_pass_by, MR_std_vector_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane *value)
MRC_API MR_Features_Primitives_Plane * MR_Features_Primitives_ConeSegment_basePlane(const MR_Features_Primitives_ConeSegment *_this, bool negative)
MRC_API MR_Features_Primitives_Plane * MR_Features_Primitives_Plane_ConstructFrom(MR_Vector3f center, MR_Vector3f normal)
MRC_API const MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f * MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f_OffsetPtr(const MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f *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_Features_Primitives_ConeSegment_GetMutable_hollow(MR_Features_Primitives_ConeSegment *_this)
MRC_API MR_Features_Traits_Unary_MR_Features_Primitives_Plane * MR_Features_Traits_Unary_MR_Features_Primitives_Plane_ConstructFromAnother(const MR_Features_Traits_Unary_MR_Features_Primitives_Plane *_other)
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment * MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment_DefaultConstruct(void)
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f * MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f_OffsetMutablePtr(MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f *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_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f * MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f_ConstructFromAnother(const MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f *_other)
MRC_API MR_Features_MeasureResult_Distance * MR_Features_MeasureResult_GetMutable_distance(MR_Features_MeasureResult *_this)
MRC_API const bool * MR_Features_Primitives_ConeSegment_Get_hollow(const MR_Features_Primitives_ConeSegment *_this)
MRC_API const MR_Vector3f * MR_Features_MeasureResult_Distance_Get_closestPointB(const MR_Features_MeasureResult_Distance *_this)
MRC_API void MR_Features_Primitives_Plane_Set_normal(MR_Features_Primitives_Plane *_this, MR_Vector3f value)
MRC_API const MR_Features_MeasureResult_Status * MR_Features_MeasureResult_BasicPart_Get_status(const MR_Features_MeasureResult_BasicPart *_this)
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f * MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f_DefaultConstructArray(size_t num_elems)
MRC_API MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment * MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment_DefaultConstructArray(size_t num_elems)
MRC_API const bool * MR_Features_MeasureResult_Angle_Get_isSurfaceNormalB(const MR_Features_MeasureResult_Angle *_this)
struct MR_std_shared_ptr_MR_FeatureObject MR_std_shared_ptr_MR_FeatureObject
Definition MRFeatures.h:22
MRC_API float * MR_Features_MeasureResult_Distance_GetMutable_distance(MR_Features_MeasureResult_Distance *_this)
MRC_API MR_Features_Primitives_Plane * MR_Features_Primitives_Plane_DefaultConstruct(void)
MRC_API MR_Features_MeasureResult * MR_Features_MeasureResult_AssignFromAnother(MR_Features_MeasureResult *_this, MR_PassBy _other_pass_by, MR_Features_MeasureResult *_other)
MRC_API bool * MR_Features_MeasureResult_Angle_GetMutable_isSurfaceNormalA(MR_Features_MeasureResult_Angle *_this)
MRC_API void MR_Features_Primitives_ConeSegment_Set_dir(MR_Features_Primitives_ConeSegment *_this, MR_Vector3f value)
MRC_API MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f * MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f_DefaultConstruct(void)
MRC_API MR_Features_Traits_Unary_MR_Sphere3f * MR_Features_Traits_Unary_MR_Sphere3f_DefaultConstructArray(size_t num_elems)
MRC_API MR_Features_MeasureResult_Status * MR_Features_MeasureResult_Distance_GetMutable_status(MR_Features_MeasureResult_Distance *_this)
MRC_API void MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane_Destroy(const MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane *_this)
Destroys a heap-allocated instance of MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Featu...
MRC_API MR_Features_Primitives_Plane * MR_Features_Primitives_Plane_OffsetMutablePtr(MR_Features_Primitives_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 void MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane_DestroyArray(const MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane *_this)
Destroys a heap-allocated array of MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features...
MRC_API MR_Sphere3f * MR_Features_transformPrimitive_MR_Sphere3f(const MR_AffineXf3f *xf, const MR_Sphere3f *primitive)
MRC_API MR_Features_MeasureResult_BasicPart * MR_Features_MeasureResult_BasicPart_ConstructFrom(MR_Features_MeasureResult_Status status)
MRC_API void MR_Features_MeasureResult_DestroyArray(const MR_Features_MeasureResult *_this)
Destroys a heap-allocated array of MR_Features_MeasureResult. Does nothing if the pointer is null.
MRC_API void MR_Features_Primitives_ConeSegment_Set_hollow(MR_Features_Primitives_ConeSegment *_this, bool value)
MRC_API void MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment_DestroyArray(const MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment *_this)
Destroys a heap-allocated array of MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features...
MRC_API void MR_Features_MeasureResult_Angle_Set_isSurfaceNormalB(MR_Features_MeasureResult_Angle *_this, bool value)
MRC_API float * MR_Features_Primitives_ConeSegment_GetMutable_negativeLength(MR_Features_Primitives_ConeSegment *_this)
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f * MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f_ConstructFromAnother(const MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f *_other)
MRC_API const MR_Features_Traits_Unary_MR_Features_Primitives_Plane * MR_Features_Traits_Unary_MR_Features_Primitives_Plane_OffsetPtr(const MR_Features_Traits_Unary_MR_Features_Primitives_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 void MR_Features_Primitives_ConeSegment_Set_referencePoint(MR_Features_Primitives_ConeSegment *_this, MR_Vector3f value)
MRC_API bool MR_equal_MR_Features_Primitives_Plane(const MR_Features_Primitives_Plane *_1, const MR_Features_Primitives_Plane *_2)
MRC_API const MR_Vector3f * MR_Features_MeasureResult_Angle_Get_pointB(const MR_Features_MeasureResult_Angle *_this)
MRC_API const float * MR_Features_Primitives_ConeSegment_Get_positiveSideRadius(const MR_Features_Primitives_ConeSegment *_this)
MRC_API MR_Vector3f MR_Features_MeasureResult_Angle_pointFor(const MR_Features_MeasureResult_Angle *_this, bool b)
MRC_API void MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f_Destroy(const MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f *_this)
Destroys a heap-allocated instance of MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f....
MRC_API const MR_Features_MeasureResult_BasicPart * MR_Features_MeasureResult_Angle_UpcastTo_MR_Features_MeasureResult_BasicPart(const MR_Features_MeasureResult_Angle *object)
MRC_API void MR_Features_MeasureResult_Angle_Set_pointA(MR_Features_MeasureResult_Angle *_this, MR_Vector3f value)
MRC_API MR_Features_MeasureResult_Angle * MR_Features_MeasureResult_Angle_DefaultConstructArray(size_t num_elems)
MRC_API MR_Features_Primitives_ConeSegment * MR_Features_Primitives_ConeSegment_axis(const MR_Features_Primitives_ConeSegment *_this)
MRC_API void MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment_Destroy(const MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment *_this)
Destroys a heap-allocated instance of MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment....
MRC_API void MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f_Destroy(const MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f *_this)
Destroys a heap-allocated instance of MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Spher...
MRC_API void MR_Features_MeasureResult_Angle_Set_dirA(MR_Features_MeasureResult_Angle *_this, MR_Vector3f value)
MRC_API void MR_Features_Traits_Unary_MR_Features_Primitives_Plane_Destroy(const MR_Features_Traits_Unary_MR_Features_Primitives_Plane *_this)
Destroys a heap-allocated instance of MR_Features_Traits_Unary_MR_Features_Primitives_Plane....
MRC_API const MR_Features_Primitives_Plane * MR_Features_Primitives_Plane_OffsetPtr(const MR_Features_Primitives_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_Features_Primitives_Plane * MR_Features_Primitives_Plane_AssignFromAnother(MR_Features_Primitives_Plane *_this, const MR_Features_Primitives_Plane *_other)
MRC_API void MR_Features_MeasureResult_Distance_Set_closestPointA(MR_Features_MeasureResult_Distance *_this, MR_Vector3f value)
MRC_API MR_Features_Traits_Unary_MR_Sphere3f * MR_Features_Traits_Unary_MR_Sphere3f_ConstructFromAnother(const MR_Features_Traits_Unary_MR_Sphere3f *_other)
struct MR_Features_MeasureResult_Angle MR_Features_MeasureResult_Angle
Definition MRFeatures.h:74
MRC_API void MR_Features_MeasureResult_BasicPart_Destroy(const MR_Features_MeasureResult_BasicPart *_this)
Destroys a heap-allocated instance of MR_Features_MeasureResult_BasicPart. Does nothing if the pointe...
MRC_API MR_std_string_view * MR_Features_toString(MR_Features_MeasureResult_Status status)
MRC_API const MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment * MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment_OffsetPtr(const MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment *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_Features_Primitives_Plane * MR_Features_Primitives_Plane_DefaultConstructArray(size_t num_elems)
MRC_API MR_Features_Traits_Unary_MR_Sphere3f * MR_Features_Traits_Unary_MR_Sphere3f_DefaultConstruct(void)
MRC_API MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment * MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment_AssignFromAnother(MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment *_this, const MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment *_other)
MRC_API const MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f * MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f_OffsetPtr(const MR_Features_Traits_Binary_MR_Sphere3f_MR_Sphere3f *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_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f
Definition MRFeatures.h:100
MRC_API void MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment_Destroy(const MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment *_this)
Destroys a heap-allocated instance of MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR...
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment * MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment_DefaultConstruct(void)
MRC_API MR_Sphere3f * MR_Features_Primitives_ConeSegment_basePoint(const MR_Features_Primitives_ConeSegment *_this, bool negative)
MRC_API void MR_Features_MeasureResult_Distance_Set_distance(MR_Features_MeasureResult_Distance *_this, float value)
MRC_API MR_std_string * MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment_name(const MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment *_this, const MR_Features_Primitives_ConeSegment *prim)
struct MR_Features_Primitives_Plane MR_Features_Primitives_Plane
Definition MRFeatures.h:31
MRC_API MR_Features_MeasureResult_BasicPart * MR_Features_MeasureResult_BasicPart_DefaultConstruct(void)
MRC_API MR_Features_MeasureResult_BasicPart * MR_Features_MeasureResult_BasicPart_DefaultConstructArray(size_t num_elems)
MRC_API MR_Features_Primitives_ConeSegment * MR_Features_Primitives_ConeSegment_ConstructFromAnother(const MR_Features_Primitives_ConeSegment *_other)
MRC_API const MR_Features_MeasureResult * MR_Features_MeasureResult_OffsetPtr(const MR_Features_MeasureResult *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_Features_Traits_Unary_MR_Features_Primitives_Plane_DestroyArray(const MR_Features_Traits_Unary_MR_Features_Primitives_Plane *_this)
Destroys a heap-allocated array of MR_Features_Traits_Unary_MR_Features_Primitives_Plane....
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f * MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f_AssignFromAnother(MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f *_this, const MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Sphere3f *_other)
MRC_API MR_Features_MeasureResult_Distance * MR_Features_MeasureResult_Distance_DefaultConstruct(void)
MRC_API void MR_Features_Primitives_ConeSegment_Destroy(const MR_Features_Primitives_ConeSegment *_this)
Destroys a heap-allocated instance of MR_Features_Primitives_ConeSegment. Does nothing if the pointer...
MRC_API const bool * MR_Features_MeasureResult_Angle_Get_isSurfaceNormalA(const MR_Features_MeasureResult_Angle *_this)
MRC_API void MR_Features_MeasureResult_Angle_Set_pointB(MR_Features_MeasureResult_Angle *_this, MR_Vector3f value)
MRC_API void MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment_DestroyArray(const MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment *_this)
Destroys a heap-allocated array of MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Fe...
MRC_API MR_Features_Traits_Unary_MR_Features_Primitives_Plane * MR_Features_Traits_Unary_MR_Features_Primitives_Plane_DefaultConstructArray(size_t num_elems)
MRC_API const MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment * MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment_OffsetPtr(const MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_ConeSegment *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_Features_Primitives_Plane * MR_Features_Primitives_Plane_ConstructFromAnother(const MR_Features_Primitives_Plane *_other)
MRC_API bool * MR_Features_MeasureResult_Angle_GetMutable_isSurfaceNormalB(MR_Features_MeasureResult_Angle *_this)
MRC_API MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment * MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment_ConstructFromAnother(const MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment *_other)
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane * MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_Plane_DefaultConstruct(void)
struct MR_Features_Traits_Unary_MR_Features_Primitives_Plane MR_Features_Traits_Unary_MR_Features_Primitives_Plane
Definition MRFeatures.h:91
MRC_API MR_Features_MeasureResult_BasicPart * MR_Features_MeasureResult_BasicPart_AssignFromAnother(MR_Features_MeasureResult_BasicPart *_this, const MR_Features_MeasureResult_BasicPart *_other)
MRC_API const MR_Features_Primitives_ConeSegment * MR_Features_Primitives_ConeSegment_OffsetPtr(const MR_Features_Primitives_ConeSegment *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_optional_std_variant_MR_Sphere3f_MR_Features_Primitives_ConeSegment_MR_Features_Primitives_Plane * MR_Features_primitiveFromObjectWithWorldXf(const MR_Object *object)
MRC_API MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment * MR_Features_Traits_Binary_MR_Features_Primitives_Plane_MR_Features_Primitives_ConeSegment_DefaultConstructArray(size_t num_elems)
MRC_API MR_Vector3f * MR_Features_Primitives_ConeSegment_GetMutable_referencePoint(MR_Features_Primitives_ConeSegment *_this)
MRC_API MR_Vector3f * MR_Features_MeasureResult_Distance_GetMutable_closestPointB(MR_Features_MeasureResult_Distance *_this)
MRC_API void MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f_DestroyArray(const MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sphere3f *_this)
Destroys a heap-allocated array of MR_Features_Traits_Binary_MR_Features_Primitives_ConeSegment_MR_Sp...
MRC_API const MR_Vector3f * MR_Features_MeasureResult_Angle_Get_dirB(const MR_Features_MeasureResult_Angle *_this)
MRC_API MR_Features_Primitives_ConeSegment * MR_Features_Primitives_ConeSegment_baseCircle(const MR_Features_Primitives_ConeSegment *_this, bool negative)
MRC_API MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment * MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment_OffsetMutablePtr(MR_Features_Traits_Unary_MR_Features_Primitives_ConeSegment *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_Features_MeasureResult_BasicPart_Set_status(MR_Features_MeasureResult_BasicPart *_this, MR_Features_MeasureResult_Status value)
struct MR_Object MR_Object
Definition MRGltf.h:10
MR_PassBy
Definition common.h:23
#define MRC_API
Definition exports.h:11
Definition MRAffineXf.h:39
Definition MRVector3.h:52