8 template <
class T,
int Dim,
bool Packed>
19 template <
class Scalar>
22 static constexpr Scalar
Pi = (Scalar)3.1415926535897932384626433832795028841971693993751;
23 static constexpr Scalar
PiHalf = (Scalar)1.5707963267948966192313216916397514420985846996876;
24 static constexpr Scalar
PiFourth = (Scalar)0.78539816339744830961566084581987572104929234984378;
25 static constexpr Scalar
E = (Scalar)2.7182818284590452353602874713526624977572470937;
26 static constexpr Scalar
Sqrt2 = (Scalar)1.4142135623730950488016887242096980785696718753769;
27 static constexpr Scalar
SqrtHalf = (Scalar)0.70710678118654752440084436210484903928483593768847;
34 template <
class Scalar>
36 using ComputeT =
typename std::conditional<std::is_floating_point<Scalar>::value, Scalar,
long double>::type;
41 template <
class Scalar>
43 using ComputeT =
typename std::conditional<std::is_floating_point<Scalar>::value, Scalar,
long double>::type;
51 template <
class Scalar>
52 Scalar
Clamp(Scalar arg, Scalar lower, Scalar upper) {
53 return std::max(lower, std::min(upper, arg));
57 template <
class T,
int Dim,
bool Packed>
61 template <
class Scalar>
63 return Clamp(arg, Scalar(0), Scalar(1));
67 template <
class T,
int Dim,
bool Packed>
79 template <
class T,
int Dim,
bool Packed>
82 for (
int i = 0; i < arg.
Dimension(); ++i) {
83 ret(i) =
Clamp(arg(i), lower, upper);
88 template <
class T,
int Dim,
bool Packed>
90 return Clamp(arg, T(0), T(1));
static constexpr Scalar Pi
Definition: Utility.hpp:22
auto Rad2Deg(Scalar rad)
Converts radians to degrees.
Definition: Utility.hpp:35
Accurate mathematical constants.
Definition: Utility.hpp:20
Represents a vector in N-dimensional space.
Definition: Definitions.hpp:57
static constexpr Scalar E
Definition: Utility.hpp:25
Definition: Approx.hpp:11
static constexpr Scalar Sqrt2
Definition: Utility.hpp:26
Scalar Clamp(Scalar arg, Scalar lower, Scalar upper)
Limits arg to the range [lower, upper], making it either lower or upper if out of range...
Definition: Utility.hpp:52
static constexpr Scalar SqrtHalf
Definition: Utility.hpp:27
static constexpr Scalar PiHalf
Definition: Utility.hpp:23
static constexpr Scalar PiFourth
Definition: Utility.hpp:24
auto Deg2Rad(Scalar deg)
Converts degrees to radians.
Definition: Utility.hpp:42
constexpr int Dimension() const
Returns the number of dimensions of the vector.
Definition: VectorImpl.hpp:402
Scalar Saturate(Scalar arg)
Clamps argument into range [0,1].
Definition: Utility.hpp:62