#include "MRMesh/MRMacros.h"
#include "MRViewer/exports.h"
#include "MRViewer/MRVectorTraits.h"
#include <cassert>
#include <optional>
#include <string>
#include <variant>
Go to the source code of this file.
Classes | |
struct | MR::UnitInfo |
struct | MR::detail::Units::Empty |
struct | MR::UnitToStringParams< E > |
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]] MRVIEWER_API const UnitInfo& getUnitInfo( E unit ); |
#define | MR_X(E) extern template MRVIEWER_API const UnitToStringParams<E>& getDefaultUnitParams(); |
#define | MR_X(E) extern template MRVIEWER_API void setDefaultUnitParams( const UnitToStringParams<E>& newParams ); |
#define | MR_X(E) , UnitToStringParams<E> |
#define | MR_Y(T, E) extern template MRVIEWER_API std::string valueToString<E, T>( T value, const UnitToStringParams<E>& params ); |
#define | MR_X(E) DETAIL_MR_UNIT_VALUE_TYPES(MR_Y, E) |
#define | MR_X(T, unused) extern template MRVIEWER_API std::string valueToString( T value, const VarUnitToStringParams& params ); |
#define | MR_X(T, unused) |
#define | MR_Y(T, E) extern template MRVIEWER_API std::string valueToImGuiFormatString( T value, const UnitToStringParams<E>& params ); |
#define | MR_X(E) DETAIL_MR_UNIT_VALUE_TYPES(MR_Y, E) |
#define | MR_X(T, unused) extern template MRVIEWER_API std::string valueToImGuiFormatString( T value, const VarUnitToStringParams& params ); |
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> |
using | MR::VarUnitToStringParams |
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) |
template<UnitEnum E> | |
const UnitToStringParams< E > & | MR::getDefaultUnitParams () |
template<UnitEnum E> | |
void | MR::setDefaultUnitParams (const UnitToStringParams< E > &newParams) |
MRVIEWER_API std::string_view | MR::toString (DegreesMode mode) |
template<UnitEnum E, detail::Units::Scalar T> | |
MRVIEWER_API std::string | MR::valueToString (T value, const UnitToStringParams< E > ¶ms=getDefaultUnitParams< E >()) |
template<detail::Units::Scalar T> | |
MRVIEWER_API std::string | MR::valueToString (T value, const VarUnitToStringParams ¶ms) |
template<detail::Units::Scalar T> | |
MRVIEWER_API int | MR::guessPrecision (T value) |
template<detail::Units::Scalar T> | |
MRVIEWER_API int | MR::guessPrecision (T min, T max) |
template<typename T > requires (VectorTraits<T>::size > 1 && detail::Units::Scalar<typename VectorTraits<T>::BaseType>) | |
int | MR::guessPrecision (T value) |
template<typename T > requires (VectorTraits<T>::size > 1 && detail::Units::Scalar<typename VectorTraits<T>::BaseType>) | |
int | MR::guessPrecision (T min, T max) |
template<UnitEnum E, detail::Units::Scalar T> | |
MRVIEWER_API std::string | MR::valueToImGuiFormatString (T value, const UnitToStringParams< E > ¶ms=getDefaultUnitParams< E >()) |
template<detail::Units::Scalar T> | |
MRVIEWER_API std::string | MR::valueToImGuiFormatString (T value, const VarUnitToStringParams ¶ms) |
#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]] MRVIEWER_API const UnitInfo& getUnitInfo( E unit ); |
#define MR_X | ( | E | ) | extern template MRVIEWER_API const UnitToStringParams<E>& getDefaultUnitParams(); |
#define MR_X | ( | E | ) | extern template MRVIEWER_API void setDefaultUnitParams( const UnitToStringParams<E>& newParams ); |
#define MR_X | ( | E | ) | , UnitToStringParams<E> |
#define MR_X | ( | E | ) | DETAIL_MR_UNIT_VALUE_TYPES(MR_Y, E) |
#define MR_X | ( | E | ) | DETAIL_MR_UNIT_VALUE_TYPES(MR_Y, E) |
#define MR_X | ( | T, | |
unused ) extern template MRVIEWER_API std::string valueToString( T value, const VarUnitToStringParams& params ); |
#define MR_X | ( | T, | |
unused ) |
#define MR_X | ( | T, | |
unused ) extern template MRVIEWER_API std::string valueToImGuiFormatString( T value, const VarUnitToStringParams& params ); |
#define MR_Y | ( | T, | |
E ) extern template MRVIEWER_API std::string valueToString<E, T>( T value, const UnitToStringParams<E>& params ); |
#define MR_Y | ( | T, | |
E ) extern template MRVIEWER_API std::string valueToImGuiFormatString( T value, const UnitToStringParams<E>& params ); |