Go to the source code of this file.
Classes | |
| struct | MR::UnitInfo |
Namespaces | |
| namespace | MR |
| namespace | MR::detail |
| namespace | MR::detail::Units |
Concepts | |
| concept | MR::UnitEnum |
| concept | MR::detail::Units::Scalar |
Macros | |
| #define | DETAIL_MR_UNIT_ENUMS(X) X(NoUnit) X(LengthUnit) X(AngleUnit) X(PixelSizeUnit) X(RatioUnit) X(TimeUnit) X(MovementSpeedUnit) X(AreaUnit) X(VolumeUnit) X(InvLengthUnit) |
| #define | DETAIL_MR_UNIT_VALUE_TYPES(X, ...) |
| #define | MR_X(E) || std::same_as<T, E> |
| #define | MR_X(E) template <> [[nodiscard]] MRMESH_API MR_BIND_IGNORE const UnitInfo& getUnitInfo( E unit ); |
Typedefs | |
| template<typename T > | |
| using | MR::detail::Units::MakeFloatingPoint = std::conditional_t<std::is_integral_v<typename VectorTraits<T>::BaseType>, typename VectorTraits<T>::template ChangeBaseType<float>, T> |
Functions | |
| template<UnitEnum E> | |
| const UnitInfo & | MR::getUnitInfo (E unit)=delete |
| template<UnitEnum E> | |
| bool | MR::unitsAreEquivalent (E a, E b) |
| template<UnitEnum E> | |
| bool | MR::unitsAreEquivalent (const std::optional< E > &a, const std::optional< E > &b) |
| template<UnitEnum E, typename T > | |
| detail::Units::MakeFloatingPoint< T > | MR::convertUnits (E from, E to, const T &value) |
| template<UnitEnum E, typename T > | |
| detail::Units::MakeFloatingPoint< T > | MR::convertUnits (const std::optional< E > &from, const std::optional< E > &to, const T &value) |
| #define DETAIL_MR_UNIT_ENUMS | ( | X | ) | X(NoUnit) X(LengthUnit) X(AngleUnit) X(PixelSizeUnit) X(RatioUnit) X(TimeUnit) X(MovementSpeedUnit) X(AreaUnit) X(VolumeUnit) X(InvLengthUnit) |
| #define DETAIL_MR_UNIT_VALUE_TYPES | ( | X, | |
| ... ) |
| #define MR_X | ( | E | ) | || std::same_as<T, E> |
| #define MR_X | ( | E | ) | template <> [[nodiscard]] MRMESH_API MR_BIND_IGNORE const UnitInfo& getUnitInfo( E unit ); |