16 virtual ~ObjectComparableWithReference() =
default;
19 ObjectComparableWithReference() =
default;
20 ObjectComparableWithReference(
const ObjectComparableWithReference& ) =
default;
21 ObjectComparableWithReference( ObjectComparableWithReference&& ) =
default;
22 ObjectComparableWithReference& operator=(
const ObjectComparableWithReference& ) =
default;
23 ObjectComparableWithReference& operator=( ObjectComparableWithReference&& ) =
default;
29 [[nodiscard]]
virtual std::size_t numComparableProperties()
const = 0;
32 [[nodiscard]]
virtual std::string_view getComparablePropertyName( std::size_t i )
const = 0;
42 std::optional<float> referenceValue = 0.f;
50 [[nodiscard]]
virtual std::optional<ComparableProperty> computeComparableProperty( std::size_t i )
const = 0;
66 [[nodiscard]]
virtual std::optional<ComparisonTolerance> getComparisonTolerence( std::size_t i )
const = 0;
70 virtual void setComparisonTolerance( std::size_t i, std::optional<ComparisonTolerance> newTolerance ) = 0;
74 [[nodiscard]]
virtual bool comparisonToleranceIsAlwaysOnlyPositive( std::size_t i )
const { (void)i;
return false; }
80 [[nodiscard]]
virtual std::size_t numComparisonReferenceValues()
const {
return numComparableProperties(); }
83 [[nodiscard]]
virtual std::string_view getComparisonReferenceValueName( std::size_t i )
const = 0;
88 using Var = std::variant<float, Vector3f>;
104 virtual void setComparisonReferenceValue( std::size_t i, std::optional<ComparisonReferenceValue::Var> value ) = 0;
108 setComparisonReferenceValue( i, value.
var );
110 setComparisonReferenceValue( i, std::nullopt );
#define MRMESH_CLASS
Definition MRMeshFwd.h:87
Definition MRCameraOrientationPlugin.h:8
Definition MRObjectComparableWithReference.h:35
Definition MRObjectComparableWithReference.h:87
bool isSet
Definition MRObjectComparableWithReference.h:90
std::variant< float, Vector3f > Var
Definition MRObjectComparableWithReference.h:88
Var var
Definition MRObjectComparableWithReference.h:93
Definition MRObjectComparableWithReference.h:56