MeshLib C Docs
Loading...
Searching...
No Matches
MRDistanceMeasurementObject.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_MeasurementObject MR_MeasurementObject; // Defined in `#include <MRCMesh/MRMeasurementObject.h>`.
15typedef struct MR_Object MR_Object; // Defined in `#include <MRCMesh/MRObject.h>`.
16typedef struct MR_ObjectChildrenHolder MR_ObjectChildrenHolder; // Defined in `#include <MRCMesh/MRObject.h>`.
17typedef struct MR_ObjectComparableWithReference MR_ObjectComparableWithReference; // Defined in `#include <MRCMesh/MRObjectComparableWithReference.h>`.
18typedef struct MR_ObjectComparableWithReference_ComparisonReferenceValue MR_ObjectComparableWithReference_ComparisonReferenceValue; // Defined in `#include <MRCMesh/MRObjectComparableWithReference.h>`.
19typedef struct MR_ObjectComparableWithReference_ComparisonTolerance MR_ObjectComparableWithReference_ComparisonTolerance; // Defined in `#include <MRCMesh/MRObjectComparableWithReference.h>`.
20typedef struct MR_VisualObject MR_VisualObject; // Defined in `#include <MRCMesh/MRVisualObject.h>`.
21typedef struct MR_std_optional_MR_ObjectComparableWithReference_ComparableProperty MR_std_optional_MR_ObjectComparableWithReference_ComparableProperty; // Defined in `#include <MRCMisc/std_optional_MR_ObjectComparableWithReference_ComparableProperty.h>`.
22typedef struct MR_std_optional_MR_ObjectComparableWithReference_ComparisonTolerance MR_std_optional_MR_ObjectComparableWithReference_ComparisonTolerance; // Defined in `#include <MRCMisc/std_optional_MR_ObjectComparableWithReference_ComparisonTolerance.h>`.
23typedef struct MR_std_shared_ptr_MR_Object MR_std_shared_ptr_MR_Object; // Defined in `#include <MRCMisc/std_shared_ptr_MR_Object.h>`.
24typedef struct MR_std_string MR_std_string; // Defined in `#include <MRCMisc/std_string.h>`.
25typedef struct MR_std_string_view MR_std_string_view; // Defined in `#include <MRCMisc/std_string_view.h>`.
26typedef struct MR_std_variant_float_MR_Vector3f MR_std_variant_float_MR_Vector3f; // Defined in `#include <MRCMisc/std_variant_float_MR_Vector3f.h>`.
27typedef struct MR_std_vector_std_string MR_std_vector_std_string; // Defined in `#include <MRCMisc/std_vector_std_string.h>`.
28
29
30// Represents a distance measurement.
41
43{
44 // Euclidean distance.
46 // Euclidean distance, but also display per-axis deltas with signs.
48 // Euclidean distance, but also display per-axis deltas without signs.
50 // Absolute distance in one axis.
51 // This can still be made negative by `setIsNegative(true)`. The point is that the real sign is ignored.
53 // Absolute distance in one axis.
54 // This can still be made negative by `setIsNegative(true)`. The point is that the real sign is ignored.
56 // Absolute distance in one axis.
57 // This can still be made negative by `setIsNegative(true)`. The point is that the real sign is ignored.
60
64
69
72
75
79
82
86
89
93
96
100
103
107
110
114
117
120
125
128
132
135
140
143
148
153
158
159// Get the starting point in world coordinates.
163
164// Get the starting point in local coordinates.
168
169// The delta from the starting point to the other point.
173
177
178// Set the start point in the local coordinates.
183
184// Set the delta vector in the local coordinates.
189
190// Whether the distance should be displayed as a negative one.
194
198
199// Whether we should draw the individual X/Y/Z deltas in addition to the distance itself.
203
207
208// Computes the distance value. This is affected by `getDistanceMode()`.
209// In `euclidean`, this is `getWorldDelta().length() * (isNegative() ? -1 : 1)`.
213
218
219// Implement `ObjectComparableWithReference`:
223
228
233
238
244
249
254
260
261#ifdef __cplusplus
262} // extern "C"
263#endif
struct MR_VisualObject MR_VisualObject
Definition MRAddVisualPropertiesMixin.h:21
struct MR_ObjectChildrenHolder MR_ObjectChildrenHolder
Definition MRAddVisualPropertiesMixin.h:18
struct MR_std_shared_ptr_MR_Object MR_std_shared_ptr_MR_Object
Definition MRAngleMeasurementObject.h:18
struct MR_MeasurementObject MR_MeasurementObject
Definition MRAngleMeasurementObject.h:14
MRC_API const MR_MeasurementObject * MR_DistanceMeasurementObject_UpcastTo_MR_MeasurementObject(const MR_DistanceMeasurementObject *object)
struct MR_std_string_view MR_std_string_view
Definition MRDistanceMeasurementObject.h:25
MRC_API MR_Object * MR_DistanceMeasurementObject_MutableUpcastTo_MR_Object(MR_DistanceMeasurementObject *object)
Upcasts an instance of MR::DistanceMeasurementObject to its base class MR::Object.
MRC_API MR_std_vector_std_string * MR_DistanceMeasurementObject_getInfoLines(const MR_DistanceMeasurementObject *_this)
MRC_API MR_DistanceMeasurementObject_DistanceMode MR_DistanceMeasurementObject_getDistanceMode(const MR_DistanceMeasurementObject *_this)
MRC_API MR_std_string * MR_DistanceMeasurementObject_classNameInPlural(const MR_DistanceMeasurementObject *_this)
MRC_API const MR_Object * MR_DistanceMeasurementObject_UpcastTo_MR_Object(const MR_DistanceMeasurementObject *object)
MRC_API const MR_ObjectChildrenHolder * MR_DistanceMeasurementObject_UpcastTo_MR_ObjectChildrenHolder(const MR_DistanceMeasurementObject *object)
MRC_API const char * MR_DistanceMeasurementObject_TypeName(void)
Generated from a method of class MR::DistanceMeasurementObject named TypeName.
MRC_API MR_uint64_t MR_DistanceMeasurementObject_numComparableProperties(const MR_DistanceMeasurementObject *_this)
MRC_API MR_Vector3f MR_DistanceMeasurementObject_getLocalPoint(const MR_DistanceMeasurementObject *_this)
MRC_API void MR_DistanceMeasurementObject_setLocalDelta(MR_DistanceMeasurementObject *_this, const MR_Vector3f *delta)
MRC_API MR_std_string_view * MR_DistanceMeasurementObject_getComparablePropertyName(const MR_DistanceMeasurementObject *_this, MR_uint64_t i)
MRC_API MR_std_string_view * MR_DistanceMeasurementObject_getComparisonReferenceValueName(const MR_DistanceMeasurementObject *_this, MR_uint64_t i)
MRC_API MR_DistanceMeasurementObject * MR_DistanceMeasurementObject_DefaultConstructArray(size_t num_elems)
MRC_API void MR_DistanceMeasurementObject_setDistanceMode(MR_DistanceMeasurementObject *_this, MR_DistanceMeasurementObject_DistanceMode mode)
MRC_API MR_std_string * MR_DistanceMeasurementObject_className(const MR_DistanceMeasurementObject *_this)
MRC_API MR_MeasurementObject * MR_DistanceMeasurementObject_MutableUpcastTo_MR_MeasurementObject(MR_DistanceMeasurementObject *object)
Upcasts an instance of MR::DistanceMeasurementObject to its base class MR::MeasurementObject.
MRC_API MR_ObjectComparableWithReference_ComparisonReferenceValue * MR_DistanceMeasurementObject_getComparisonReferenceValue(const MR_DistanceMeasurementObject *_this, MR_uint64_t i)
MRC_API void MR_DistanceMeasurementObject_setIsNegative(MR_DistanceMeasurementObject *_this, bool value)
MRC_API MR_DistanceMeasurementObject * MR_DistanceMeasurementObject_ConstructFromAnother(MR_PassBy _other_pass_by, MR_DistanceMeasurementObject *_other)
MRC_API MR_std_shared_ptr_MR_Object * MR_DistanceMeasurementObject_clone(const MR_DistanceMeasurementObject *_this)
MRC_API MR_ObjectChildrenHolder * MR_DistanceMeasurementObject_MutableUpcastTo_MR_ObjectChildrenHolder(MR_DistanceMeasurementObject *object)
Upcasts an instance of MR::DistanceMeasurementObject to its base class MR::ObjectChildrenHolder.
MRC_API MR_Vector3f MR_DistanceMeasurementObject_getWorldDelta(const MR_DistanceMeasurementObject *_this)
MRC_API const MR_VisualObject * MR_DistanceMeasurementObject_UpcastTo_MR_VisualObject(const MR_DistanceMeasurementObject *object)
MRC_API MR_VisualObject * MR_DistanceMeasurementObject_MutableUpcastTo_MR_VisualObject(MR_DistanceMeasurementObject *object)
Upcasts an instance of MR::DistanceMeasurementObject to its base class MR::VisualObject.
MRC_API MR_DistanceMeasurementObject * MR_DistanceMeasurementObject_DefaultConstruct(void)
MRC_API void MR_DistanceMeasurementObject_DestroyArray(const MR_DistanceMeasurementObject *_this)
Destroys a heap-allocated array of MR_DistanceMeasurementObject. Does nothing if the pointer is null.
MRC_API void MR_DistanceMeasurementObject_Destroy(const MR_DistanceMeasurementObject *_this)
Destroys a heap-allocated instance of MR_DistanceMeasurementObject. Does nothing if the pointer is nu...
struct MR_std_optional_MR_ObjectComparableWithReference_ComparableProperty MR_std_optional_MR_ObjectComparableWithReference_ComparableProperty
Definition MRDistanceMeasurementObject.h:21
MRC_API void MR_DistanceMeasurementObject_setComparisonTolerance(MR_DistanceMeasurementObject *_this, MR_uint64_t i, const MR_ObjectComparableWithReference_ComparisonTolerance *newTolerance)
MR_DistanceMeasurementObject_DistanceMode
Definition MRDistanceMeasurementObject.h:43
@ MR_DistanceMeasurementObject_DistanceMode_euclidean
Definition MRDistanceMeasurementObject.h:45
@ MR_DistanceMeasurementObject_DistanceMode_xAbsolute
Definition MRDistanceMeasurementObject.h:52
@ MR_DistanceMeasurementObject_DistanceMode_yAbsolute
Definition MRDistanceMeasurementObject.h:55
@ MR_DistanceMeasurementObject_DistanceMode_zAbsolute
Definition MRDistanceMeasurementObject.h:58
@ MR_DistanceMeasurementObject_DistanceMode_euclideanWithSignedDeltasPerAxis
Definition MRDistanceMeasurementObject.h:47
@ MR_DistanceMeasurementObject_DistanceMode_euclideanWithAbsoluteDeltasPerAxis
Definition MRDistanceMeasurementObject.h:49
MRC_API MR_DistanceMeasurementObject * MR_DistanceMeasurementObject_OffsetMutablePtr(MR_DistanceMeasurementObject *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_MR_ObjectComparableWithReference_ComparisonTolerance MR_std_optional_MR_ObjectComparableWithReference_ComparisonTolerance
Definition MRDistanceMeasurementObject.h:22
MRC_API void MR_DistanceMeasurementObject_setComparisonReferenceValue(MR_DistanceMeasurementObject *_this, MR_uint64_t i, const MR_std_variant_float_MR_Vector3f *value)
struct MR_DistanceMeasurementObject MR_DistanceMeasurementObject
Definition MRDistanceMeasurementObject.h:40
MRC_API MR_std_optional_MR_ObjectComparableWithReference_ComparisonTolerance * MR_DistanceMeasurementObject_getComparisonTolerence(const MR_DistanceMeasurementObject *_this, MR_uint64_t i)
struct MR_ObjectComparableWithReference MR_ObjectComparableWithReference
Definition MRDistanceMeasurementObject.h:17
struct MR_ObjectComparableWithReference_ComparisonTolerance MR_ObjectComparableWithReference_ComparisonTolerance
Definition MRDistanceMeasurementObject.h:19
struct MR_ObjectComparableWithReference_ComparisonReferenceValue MR_ObjectComparableWithReference_ComparisonReferenceValue
Definition MRDistanceMeasurementObject.h:18
MRC_API MR_ObjectComparableWithReference * MR_DistanceMeasurementObject_MutableUpcastTo_MR_ObjectComparableWithReference(MR_DistanceMeasurementObject *object)
Upcasts an instance of MR::DistanceMeasurementObject to its base class MR::ObjectComparableWithRefere...
MRC_API const MR_ObjectComparableWithReference * MR_DistanceMeasurementObject_UpcastTo_MR_ObjectComparableWithReference(const MR_DistanceMeasurementObject *object)
MRC_API bool MR_DistanceMeasurementObject_isNegative(const MR_DistanceMeasurementObject *_this)
MRC_API float MR_DistanceMeasurementObject_computeDistance(const MR_DistanceMeasurementObject *_this)
MRC_API void MR_DistanceMeasurementObject_setLocalPoint(MR_DistanceMeasurementObject *_this, const MR_Vector3f *point)
MRC_API MR_std_shared_ptr_MR_Object * MR_DistanceMeasurementObject_shallowClone(const MR_DistanceMeasurementObject *_this)
MRC_API MR_DistanceMeasurementObject * MR_DistanceMeasurementObject_AssignFromAnother(MR_DistanceMeasurementObject *_this, MR_PassBy _other_pass_by, MR_DistanceMeasurementObject *_other)
MRC_API MR_Vector3f MR_DistanceMeasurementObject_getWorldPoint(const MR_DistanceMeasurementObject *_this)
MRC_API const char * MR_DistanceMeasurementObject_ClassNameInPlural(void)
Generated from a method of class MR::DistanceMeasurementObject named ClassNameInPlural.
MRC_API const MR_DistanceMeasurementObject * MR_DistanceMeasurementObject_OffsetPtr(const MR_DistanceMeasurementObject *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 char * MR_DistanceMeasurementObject_ClassName(void)
Generated from a method of class MR::DistanceMeasurementObject named ClassName.
struct MR_std_variant_float_MR_Vector3f MR_std_variant_float_MR_Vector3f
Definition MRDistanceMeasurementObject.h:26
MRC_API MR_std_optional_MR_ObjectComparableWithReference_ComparableProperty * MR_DistanceMeasurementObject_computeComparableProperty(const MR_DistanceMeasurementObject *_this, MR_uint64_t i)
MRC_API const char * MR_DistanceMeasurementObject_typeName(const MR_DistanceMeasurementObject *_this)
MRC_API MR_Vector3f MR_DistanceMeasurementObject_getLocalDelta(const MR_DistanceMeasurementObject *_this)
struct MR_std_string MR_std_string
Definition MRE57.h:22
struct MR_Object MR_Object
Definition MRGltf.h:10
struct MR_std_vector_std_string MR_std_vector_std_string
Definition MRPdf.h:29
MR_PassBy
Definition common.h:19
uint64_t MR_uint64_t
Definition common.h:14
#define MRC_API
Definition exports.h:11
Definition MRVector3.h:50