29 #ifndef GLM_DETAIL_NOISE_INCLUDED
30 #define GLM_DETAIL_NOISE_INCLUDED
36 GLM_FUNC_QUALIFIER T mod289(T
const & x)
38 return x -
floor(x * T(1.0 / 289.0)) * T(289.0);
42 GLM_FUNC_QUALIFIER T permute(T
const & x)
44 return mod289(((x * T(34)) + T(1)) * x);
47 template <
typename T, precision P>
48 GLM_FUNC_QUALIFIER tvec2<T, P> permute(tvec2<T, P>
const & x)
50 return mod289(((x * T(34)) + T(1)) * x);
53 template <
typename T, precision P>
54 GLM_FUNC_QUALIFIER tvec3<T, P> permute(tvec3<T, P>
const & x)
56 return mod289(((x * T(34)) + T(1)) * x);
59 template <
typename T, precision P>
60 GLM_FUNC_QUALIFIER tvec4<T, P> permute(tvec4<T, P>
const & x)
62 return mod289(((x * T(34)) + T(1)) * x);
72 GLM_FUNC_QUALIFIER T taylorInvSqrt(T
const & r)
74 return T(1.79284291400159) - T(0.85373472095314) * r;
77 template <
typename T, precision P>
78 GLM_FUNC_QUALIFIER detail::tvec2<T, P> taylorInvSqrt(detail::tvec2<T, P>
const & r)
80 return T(1.79284291400159) - T(0.85373472095314) * r;
83 template <
typename T, precision P>
84 GLM_FUNC_QUALIFIER detail::tvec3<T, P> taylorInvSqrt(detail::tvec3<T, P>
const & r)
86 return T(1.79284291400159) - T(0.85373472095314) * r;
89 template <
typename T, precision P>
90 GLM_FUNC_QUALIFIER detail::tvec4<T, P> taylorInvSqrt(detail::tvec4<T, P>
const & r)
92 return T(1.79284291400159) - T(0.85373472095314) * r;
102 template <
typename T, precision P>
103 GLM_FUNC_QUALIFIER detail::tvec2<T, P> fade(detail::tvec2<T, P>
const & t)
105 return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
108 template <
typename T, precision P>
109 GLM_FUNC_QUALIFIER detail::tvec3<T, P> fade(detail::tvec3<T, P>
const & t)
111 return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
114 template <
typename T, precision P>
115 GLM_FUNC_QUALIFIER detail::tvec4<T, P> fade(detail::tvec4<T, P>
const & t)
117 return (t * t * t) * (t * (t * T(6) - T(15)) + T(10));
129 #endif//GLM_DETAIL_NOISE_INCLUDED
GLM_FUNC_DECL genType floor(genType const &x)
Returns a value equal to the nearest integer that is less then or equal to x.