4 GLM_FUNC_QUALIFIER T min(T a, T b, T c)
10 GLM_FUNC_QUALIFIER T min(T a, T b, T c, T d)
16 GLM_FUNC_QUALIFIER T max(T a, T b, T c)
22 GLM_FUNC_QUALIFIER T max(T a, T b, T c, T d)
31 GLM_FUNC_QUALIFIER T
fmin(T a, T b)
33 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'fmin' only accept floating-point input");
42 GLM_FUNC_QUALIFIER T
fmin(T a, T b, T c)
44 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'fmin' only accept floating-point input");
56 GLM_FUNC_QUALIFIER T
fmin(T a, T b, T c, T d)
58 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'fmin' only accept floating-point input");
63 return min(a,
fmin(c, d));
65 return fmin(min(a, b), d);
68 return min(a, b, c, d);
76 GLM_FUNC_QUALIFIER T
fmax(T a, T b)
78 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'fmax' only accept floating-point input");
87 GLM_FUNC_QUALIFIER T
fmax(T a, T b, T c)
89 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'fmax' only accept floating-point input");
101 GLM_FUNC_QUALIFIER T
fmax(T a, T b, T c, T d)
103 GLM_STATIC_ASSERT(std::numeric_limits<T>::is_iec559,
"'fmax' only accept floating-point input");
106 return fmax(b, c, d);
108 return max(a,
fmax(c, d));
110 return fmax(max(a, b), d);
113 return max(a, b, c, d);
117 template<
typename genType>
118 GLM_FUNC_QUALIFIER genType
fclamp(genType x, genType minVal, genType maxVal)
120 GLM_STATIC_ASSERT(std::numeric_limits<genType>::is_iec559,
"'fclamp' only accept floating-point or integer inputs");
121 return fmin(
fmax(x, minVal), maxVal);
124 template<
typename genType>
125 GLM_FUNC_QUALIFIER genType
clamp(genType
const& Texcoord)
127 return glm::clamp(Texcoord,
static_cast<genType
>(0),
static_cast<genType
>(1));
130 template<
typename genType>
131 GLM_FUNC_QUALIFIER genType
repeat(genType
const& Texcoord)
136 template<
typename genType>
142 template<
typename genType>
145 genType
const Abs =
glm::abs(Texcoord);
146 genType
const Clamp = glm::mod(
glm::floor(Abs),
static_cast<genType
>(2));
148 genType
const Rest = Abs - Floor;
149 genType
const Mirror = Clamp + Rest;
150 return mix(Rest,
static_cast<genType
>(1) - Rest, Mirror >=
static_cast<genType
>(1));
GLM_FUNC_DECL GLM_CONSTEXPR genType abs(genType x)
GLM_FUNC_DECL GLM_CONSTEXPR genType min(genType x, genType y)
Definition func_common.inl:17
GLM_FUNC_DECL GLM_CONSTEXPR genType clamp(genType x, genType minVal, genType maxVal)
Definition func_common.inl:505
GLM_FUNC_DECL vec< L, bool, Q > isnan(vec< L, T, Q > const &x)
Definition func_common.inl:613
GLM_FUNC_DECL genType fract(genType x)
Definition func_common.inl:388
GLM_FUNC_DECL genTypeT mix(genTypeT x, genTypeT y, genTypeU a)
Definition func_common.inl:526
GLM_FUNC_DECL vec< L, T, Q > floor(vec< L, T, Q > const &x)
Definition func_common.inl:307
GLM_FUNC_DECL GLM_CONSTEXPR genType max(genType x, genType y)
Definition func_common.inl:25
GLM_FUNC_DECL genType mirrorRepeat(genType const &Texcoord)
Definition scalar_common.inl:143
GLM_FUNC_DECL genType fclamp(genType x, genType minVal, genType maxVal)
Definition scalar_common.inl:118
GLM_FUNC_DECL T fmax(T a, T b)
Definition scalar_common.inl:76
GLM_FUNC_DECL T fmin(T a, T b)
Definition scalar_common.inl:31
GLM_FUNC_DECL genType repeat(genType const &Texcoord)
Definition scalar_common.inl:131
GLM_FUNC_DECL genType mirrorClamp(genType const &Texcoord)
Definition scalar_common.inl:137
Core features
Definition common.hpp:21