11#ifndef INCGUARD_MGL_RANGE_H_1746895769 
   12#define INCGUARD_MGL_RANGE_H_1746895769 
   37    constexpr Range(T begin, T end) noexcept
 
 
   49    [[nodiscard]] 
constexpr T 
Begin() const noexcept
 
 
   60    [[nodiscard]] 
constexpr T 
End() const noexcept
 
 
   98        if constexpr (std::is_floating_point_v<T>)
 
  100            return _end - _begin <= std::numeric_limits<T>::epsilon();
 
  104            return _begin == _end;
 
 
  115    [[nodiscard]] 
constexpr T 
Next(T value) 
const noexcept 
 
  134    [[nodiscard]] 
constexpr T 
Previous(T value) 
const noexcept 
 
  154    [[nodiscard]] 
constexpr bool Contains(T value) 
const noexcept 
  158            return (value >= _begin) && (value <= _end);
 
  162            return (value <= _begin) && (value >= _end);
 
 
  173    [[nodiscard]] 
constexpr T 
Clamp(T value) 
const noexcept 
  181            return std::clamp(value, _begin, _end);
 
  185            return std::clamp(value, _end, _begin);
 
 
  196    [[nodiscard]] 
constexpr float Normalize(T value) 
const noexcept 
  203        const auto fBegin = 
static_cast<float>(_begin);
 
  204        const auto fEnd = 
static_cast<float>(_end);
 
  205        const auto fValue = 
static_cast<float>(value);
 
  207        return (fValue - fBegin) / (fEnd - fBegin);
 
 
  217    [[nodiscard]] 
constexpr T 
Scale(
float normalizedValue) 
const noexcept 
  219        const auto fBegin = 
static_cast<float>(_begin);
 
  220        const auto fEnd = 
static_cast<float>(_end);
 
  222        return static_cast<T
>(fBegin + ((fEnd - fBegin) * normalizedValue));
 
 
 
値の範囲を表現するクラス
Definition mgl_range.h:28
 
constexpr bool IsSingleValue() const noexcept
値が範囲を持たない単一の値であるかを取得
Definition mgl_range.h:96
 
constexpr T Clamp(T value) const noexcept
指定した値を範囲内にクランプ
Definition mgl_range.h:173
 
constexpr bool IsPositive() const noexcept
値が正の方向に進むかを取得
Definition mgl_range.h:72
 
constexpr bool IsNegative() const noexcept
値が負の方向に進むかを取得
Definition mgl_range.h:84
 
constexpr bool Contains(T value) const noexcept
指定された値が範囲内に含まれているかを取得
Definition mgl_range.h:154
 
constexpr float Normalize(T value) const noexcept
値を0.0fから1.0fの値に正規化
Definition mgl_range.h:196
 
constexpr T Next(T value) const noexcept
指定された値の次の値を取得
Definition mgl_range.h:115
 
constexpr Range(T begin, T end) noexcept
コンストラクタ
Definition mgl_range.h:37
 
constexpr T End() const noexcept
終了値を取得
Definition mgl_range.h:60
 
constexpr T Previous(T value) const noexcept
指定された値の前の値を取得
Definition mgl_range.h:134
 
constexpr T Scale(float normalizedValue) const noexcept
正規化された値からスケーリング
Definition mgl_range.h:217
 
constexpr T Begin() const noexcept
開始値を取得
Definition mgl_range.h:49