File ValueConversion.h

namespace OpenVDS

Functions

template<typename T1, typename T2>
inline std::enable_if<std::is_same<T1, bool>::value && !std::is_same<T2, bool>::value, T1>::type ConvertValue(T2 value)
template<typename T1, typename T2>
inline std::enable_if<std::is_same<T2, bool>::value, T1>::type ConvertValue(T2 value)
template<typename T1, typename T2>
inline std::enable_if<std::numeric_limits<T1>::is_integer && !std::is_same<T1, bool>::value && std::numeric_limits<T2>::is_integer && !std::is_same<T2, bool>::value, T1>::type ConvertValue(T2 value)
template<typename T1, typename T2>
inline std::enable_if<std::numeric_limits<T1>::is_integer && !std::is_same<T1, bool>::value && !std::numeric_limits<T2>::is_integer, T1>::type ConvertValue(T2 value)
template<typename T1, typename T2>
inline std::enable_if<!std::numeric_limits<T1>::is_integer && !std::is_same<T2, bool>::value, T1>::type ConvertValue(T2 value)
template<typename T>
inline T ConvertNoValue(float noValue)
template<>
inline bool ConvertNoValue<bool>(float)
template<>
inline uint8_t ConvertNoValue<uint8_t>(float)
template<>
inline uint16_t ConvertNoValue<uint16_t>(float)
template<typename T>
inline T ConvertNoValue(double noValue)
template<>
inline bool ConvertNoValue<bool>(double)
template<>
inline uint8_t ConvertNoValue<uint8_t>(double)
template<>
inline uint16_t ConvertNoValue<uint16_t>(double)
static inline int QuantizeValueWithReciprocalScale(float value, float offset, float reciprocalScale, int buckets)
template<typename T, bool isUseNoValue>
struct QuantizedTypesToFloatConverter

Public Functions

inline QuantizedTypesToFloatConverter()
inline QuantizedTypesToFloatConverter(float, float, bool)
inline T ConvertValue(T value) const
template<bool isUseNoValue>
struct QuantizedTypesToFloatConverter<uint16_t, isUseNoValue>

Public Functions

inline QuantizedTypesToFloatConverter()
inline QuantizedTypesToFloatConverter(float integerScale, float integerOffset, bool isRangeScale)
inline float ConvertValue(uint16_t value) const

Public Members

float m_integerScale
float m_integerOffset
template<bool isUseNoValue>
struct QuantizedTypesToFloatConverter<uint8_t, isUseNoValue>

Public Functions

inline QuantizedTypesToFloatConverter()
inline QuantizedTypesToFloatConverter(float integerScale, float integerOffset, bool isRangeScale)
inline float ConvertValue(uint8_t value) const

Public Members

float m_integerScale
float m_integerOffset
template<typename T1, typename T2, bool isUseNoValue>
class QuantizingValueConverterWithNoValue

Public Functions

inline QuantizingValueConverterWithNoValue()
inline QuantizingValueConverterWithNoValue(float valueRangeMin, float valueRangeMax, float integerScale, float integerOffset, float noValue, float replacementNoValue)
inline QuantizingValueConverterWithNoValue(float valueRangeMin, float valueRangeMax, float integerScale, float integerOffset, double noValue, double replacementNoValue)
inline QuantizingValueConverterWithNoValue(float valueRangeMin, float valueRangeMax, float integerScale, float integerOffset, float noValue, float replacementNoValue, bool isConvertWithValueRangeOnly)
inline QuantizingValueConverterWithNoValue(float valueRangeMin, float valueRangeMax, float integerScale, float integerOffset, double noValue, double replacementNoValue, bool isConvertWithValueRangeOnly)
inline T1 ConvertValue(T2 value) const

Private Members

float m_integerOffset
float m_reciprocalScale
T2 m_noValue
T1 m_replacementNoValue
QuantizedTypesToFloatConverter<T2, isUseNoValue> m_quantizedTypesToFloatConverter
template<typename T1, bool isUseNoValue>
struct ResultConverter

Public Static Functions

static inline float ReciprocalScale(float, float)
template<typename T2>
static inline T1 ConvertValueT(T2 value, float, float)
template<bool isUseNoValue>
struct ResultConverter<uint16_t, isUseNoValue>

Public Static Functions

static inline float ReciprocalScale(float valueRangeMin, float valueRangeMax)
template<typename T2>
static inline uint16_t ConvertValueT(T2 value, float offset, float reciprocalScale)
template<bool isUseNoValue>
struct ResultConverter<uint8_t, isUseNoValue>

Public Static Functions

static inline float ReciprocalScale(float valueRangeMin, float valueRangeMax)
template<typename T2>
static inline uint8_t ConvertValueT(T2 value, float offset, float reciprocalScale)