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)   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

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.
 
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 > &params=getDefaultUnitParams< E >())
 
template<detail::Units::Scalar T>
MRVIEWER_API std::string MR::valueToString (T value, const VarUnitToStringParams &params)
 This overload lets you select the unit kind at runtime.
 
template<detail::Units::Scalar T>
MRVIEWER_API int MR::guessPrecision (T value)
 Same but for vectors.
 
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)
 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>
MRVIEWER_API std::string MR::valueToImGuiFormatString (T value, const UnitToStringParams< E > &params=getDefaultUnitParams< E >())
 
template<detail::Units::Scalar T>
MRVIEWER_API std::string MR::valueToImGuiFormatString (T value, const VarUnitToStringParams &params)
 This overload lets you select the unit kind at runtime.