Template Function librapid::smoothStep#
Defined in File utilityFunctions.hpp
Function Documentation#
-
template<typename T, typename Lower = T, typename Upper = T, typename std::enable_if_t<typetraits::TypeInfo<T>::type == detail::LibRapidType::Scalar && typetraits::TypeInfo<Lower>::type == detail::LibRapidType::Scalar && typetraits::TypeInfo<Upper>::type == detail::LibRapidType::Scalar, int> = 0, typename ST = typetraits::ScalarReturnType<T>>
ST librapid::smoothStep(T t, Lower lowerEdge = 0, Upper upperEdge = 1)# Smoothly interpolate between two values.
This smooth step implementation is based on Ken Perlin’s algorithm. \( S(x)= \begin{cases}0 & x \leq 0 \\ 6 x^5-15 x^4+10 x^3 & 0 \leq x \leq 1 \\ 1 & 1 \leq x\end{cases} \)
This function allows you to specify a lower and upper edge, which can be used to scale the range of inputs.
- Template Parameters
T – Type of
t
Lower – Type of
lowerEdge
Upper – Type of
upperEdge
- Parameters
t – Value to smooth step
lowerEdge – At t=lowerEdge, the function returns 0
upperEdge – At t=upperEdge, the function returns 1
- Returns
t
interpolated betweenlowerEdge
andupperEdge