Control Surface
main
MIDI Control Surface library for Arduino
Toggle main menu visibility
Loading...
Searching...
No Matches
src
AH
Math
Degrees.hpp
Go to the documentation of this file.
1
5
#pragma once
6
7
#include <AH/STL/type_traits>
8
#include <
AH/Settings/NamespaceSettings.hpp
>
9
10
BEGIN_AH_NAMESPACE
11
12
namespace
detail
{
13
constexpr
long
double
pi_inv_l
= 0.318309886183790671537767526745028724L;
14
constexpr
long
double
pi_l
= 3.141592653589793238462643383279502884L;
15
}
// namespace detail
16
19
21
template
<
class
T>
22
constexpr
inline
23
typename
std::enable_if<std::is_floating_point<T>::value, T>::type
24
rad2deg
(T r) {
25
return
r *
static_cast<
T
>
(detail::pi_inv_l) * 180;
26
}
27
28
template
<
class
T>
29
constexpr
inline
30
typename
std::enable_if<std::is_floating_point<T>::value, T>::type
31
deg2rad
(T d) {
32
return
d *
static_cast<
T
>
(detail::pi_l) / 180;
33
}
34
36
constexpr
long
double
operator
""
_deg(
long
double
deg) {
return
deg2rad
(deg); }
38
constexpr
long
double
operator
""
_deg(
unsigned
long
long
deg) {
39
return
deg2rad
(
static_cast<
long
double
>
(deg));
40
}
41
43
44
END_AH_NAMESPACE
NamespaceSettings.hpp
END_AH_NAMESPACE
#define END_AH_NAMESPACE
Definition
AH/Settings/NamespaceSettings.hpp:14
BEGIN_AH_NAMESPACE
#define BEGIN_AH_NAMESPACE
Definition
AH/Settings/NamespaceSettings.hpp:11
AH::rad2deg
constexpr std::enable_if< std::is_floating_point< T >::value, T >::type rad2deg(T r)
Convert radians to degrees.
Definition
Degrees.hpp:24
AH::deg2rad
constexpr std::enable_if< std::is_floating_point< T >::value, T >::type deg2rad(T d)
Convert degrees to radians.
Definition
Degrees.hpp:31
::detail
Definition
ArrayHelpers.hpp:16
AH::detail::pi_l
constexpr long double pi_l
Definition
Degrees.hpp:14
AH::detail::pi_inv_l
constexpr long double pi_inv_l
Definition
Degrees.hpp:13
Generated by
1.17.0