3#include "MRMesh/MRMeshFwd.h"
45 std::optional<float> referenceValue = 0.f;
91 using Var = std::variant<float, Vector3f>;
111 setComparisonReferenceValue( i, value.
var );
113 setComparisonReferenceValue( i, std::nullopt );
A base class for a data-model object that is a feature/measurement that can be compared between two m...
Definition MRObjectComparableWithReference.h:17
void setComparisonReferenceVal(std::size_t i, const ComparisonReferenceValue &value)
Definition MRObjectComparableWithReference.h:108
virtual ComparisonReferenceValue getComparisonReferenceValue(std::size_t i) const =0
virtual std::optional< ComparableProperty > computeComparableProperty(std::size_t i) const =0
ObjectComparableWithReference()=default
We have no member variables, so lack of the implicit copy operations wouldn't matter,...
ObjectComparableWithReference & operator=(ObjectComparableWithReference &&)=default
virtual std::size_t numComparableProperties() const =0
Comparing properties:
virtual void setComparisonTolerance(std::size_t i, std::optional< ComparisonTolerance > newTolerance)=0
virtual std::size_t numComparisonReferenceValues() const
Reference values:
Definition MRObjectComparableWithReference.h:83
virtual ~ObjectComparableWithReference()=default
bool isSet
Definition MRObjectComparableWithReference.h:93
ObjectComparableWithReference(ObjectComparableWithReference &&)=default
std::variant< float, Vector3f > Var
Definition MRObjectComparableWithReference.h:91
Var var
If isSet == false, this will hold zeroes, or some other default values.
Definition MRObjectComparableWithReference.h:96
virtual bool comparisonToleranceIsAlwaysOnlyPositive(std::size_t i) const
Definition MRObjectComparableWithReference.h:77
virtual std::string_view getComparisonReferenceValueName(std::size_t i) const =0
i goes up to numComparisonReferenceValues(), exclusive.
virtual void setComparisonReferenceValue(std::size_t i, std::optional< ComparisonReferenceValue::Var > value)=0
ObjectComparableWithReference & operator=(const ObjectComparableWithReference &)=default
virtual std::string_view getComparablePropertyName(std::size_t i) const =0
i goes up to numComparableProperties(), exclusive.
virtual std::optional< ComparisonTolerance > getComparisonTolerence(std::size_t i) const =0
ObjectComparableWithReference(const ObjectComparableWithReference &)=default
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MRObjectComparableWithReference.h:38
This can't be std::optional<Var>, because we still need the variant to know the correct type.
Definition MRObjectComparableWithReference.h:90
Tolerances:
Definition MRObjectComparableWithReference.h:59