MeshLib C++ Docs
Loading...
Searching...
No Matches
MRUnits.h File Reference
#include "MRViewer/exports.h"
#include "MRViewer/MRVectorTraits.h"
#include "MRMesh/MRUnitInfo.h"
#include <string>
#include <variant>

Go to the source code of this file.

Classes

struct  MR::detail::Units::Empty
struct  MR::UnitToStringParams< E >
 Controls how a value with a unit is converted to a string. More...

Namespaces

namespace  MR
 only for bindings generation
namespace  MR::detail
namespace  MR::detail::Units

Macros

#define MR_X(E)
#define MR_X(E)
#define MR_X(E)
#define MR_Y(T, E)
#define MR_X(E)
#define MR_X(T, unused)
#define MR_X(T, unused)
#define MR_Y(T, E)
#define MR_X(E)
#define MR_X(T, unused)

Typedefs

using MR::VarUnitToStringParams
 The std::variant of UnitToStringParams<E> for all known Es (unit kinds).

Enumerations

enum class  MR::NumberStyle { MR::NumberStyle::normal , MR::NumberStyle::distributePrecision , MR::NumberStyle::exponential , MR::NumberStyle::maybeExponential }
enum class  MR::DegreesMode { MR::DegreesMode::degrees , MR::DegreesMode::degreesMinutes , MR::DegreesMode::degreesMinutesSeconds , MR::DegreesMode::_count }
 This controls how the degrees are printed. More...
enum class  MR::ZeroMode { MR::ZeroMode::asIs , MR::ZeroMode::alwaysPositive , MR::ZeroMode::alwaysNegative }

Functions

template<UnitEnum E>
const UnitToStringParams< E > & MR::getDefaultUnitParams ()
template<UnitEnum E>
void MR::setDefaultUnitParams (const UnitToStringParams< E > &newParams)
 Modifies the default parameters for converting a specific unit type to a string.
std::string_view MR::toString (DegreesMode mode)
template<UnitEnum E, detail::Units::Scalar T>
std::string MR::valueToString (T value, const UnitToStringParams< E > &params=getDefaultUnitParams< E >())
template<detail::Units::Scalar T>
std::string MR::valueToString (T value, const VarUnitToStringParams &params)
 This overload lets you select the unit kind at runtime.
template<detail::Units::Scalar T>
int MR::guessPrecision (T value)
 Same but for vectors.
template<detail::Units::Scalar T>
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)
 Same but for vectors.
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>
std::string MR::valueToImGuiFormatString (T value, const UnitToStringParams< E > &params=getDefaultUnitParams< E >())
template<detail::Units::Scalar T>
std::string MR::valueToImGuiFormatString (T value, const VarUnitToStringParams &params)
 This overload lets you select the unit kind at runtime.