Krita Source Code Documentation
Loading...
Searching...
No Matches
KisRadian< TReal > Class Template Reference

#include <kis_radian.h>

Public Member Functions

TReal degrees () const
 
 KisRadian ()
 
template<class U >
 KisRadian (const KisRadian< U > &rad)
 
template<class U >
 KisRadian (const U &rad)
 
template<class U >
KisRadianoperator%= (const U &rad)
 
template<class U >
KisRadianoperator*= (const U &rad)
 
template<class U >
KisRadianoperator+= (const U &rad)
 
template<class U >
KisRadianoperator-= (const U &rad)
 
template<class U >
KisRadianoperator/= (const U &rad)
 
template<class U >
KisRadianoperator= (const KisRadian< U > &rad)
 
template<class U >
KisRadianoperator= (const U &rad)
 
TReal scaled (const TReal &min, const TReal &max) const
 
const TReal & value () const
 

Static Public Member Functions

static KisRadian from180Deg ()
 
static KisRadian from270Deg ()
 
static KisRadian from90Deg ()
 
static KisRadian fromDegrees (const TReal &deg)
 
static TReal normalizeDegrees (TReal deg)
 
static TReal normalizeRadians (TReal rad)
 
static TReal toDegrees (const TReal &rad)
 
static TReal toRadians (const TReal &deg)
 

Private Attributes

TReal m_value
 

Friends

KisRadian operator% (const KisRadian &l, const KisRadian &r)
 
KisRadian operator* (const KisRadian &l, const KisRadian &r)
 
KisRadian operator+ (const KisRadian &l, const KisRadian &r)
 
KisRadian operator- (const KisRadian &l, const KisRadian &r)
 
KisRadian operator/ (const KisRadian &l, const KisRadian &r)
 

Detailed Description

template<class TReal>
class KisRadian< TReal >

Definition at line 37 of file kis_radian.h.

Constructor & Destructor Documentation

◆ KisRadian() [1/3]

template<class TReal >
KisRadian< TReal >::KisRadian ( )
inline

Definition at line 41 of file kis_radian.h.

41 :
42 m_value(TReal(0)) { }
TReal m_value
Definition kis_radian.h:179

◆ KisRadian() [2/3]

template<class TReal >
template<class U >
KisRadian< TReal >::KisRadian ( const KisRadian< U > & rad)
inline

Definition at line 45 of file kis_radian.h.

45 :
46 m_value(rad.m_value) { }

◆ KisRadian() [3/3]

template<class TReal >
template<class U >
KisRadian< TReal >::KisRadian ( const U & rad)
inline

Definition at line 49 of file kis_radian.h.

49 {
51 }
static TReal normalizeRadians(TReal rad)
Definition kis_radian.h:53
static const T & get(const T &value)
Definition kis_radian.h:29

References _Private::Value::get(), KisRadian< TReal >::m_value, and KisRadian< TReal >::normalizeRadians().

Member Function Documentation

◆ degrees()

template<class TReal >
TReal KisRadian< TReal >::degrees ( ) const
inline

Definition at line 86 of file kis_radian.h.

86{ return m_value * TO_DEG; }
#define TO_DEG
Definition kis_radian.h:14

References KisRadian< TReal >::m_value, and TO_DEG.

◆ from180Deg()

template<class TReal >
static KisRadian KisRadian< TReal >::from180Deg ( )
inlinestatic

Definition at line 69 of file kis_radian.h.

69 {
70 KisRadian rad;
71 rad.m_value = RAD_180;
72 return rad;
73 }
#define RAD_180
Definition kis_radian.h:18

References KisRadian< TReal >::m_value, and RAD_180.

◆ from270Deg()

template<class TReal >
static KisRadian KisRadian< TReal >::from270Deg ( )
inlinestatic

Definition at line 75 of file kis_radian.h.

75 {
76 KisRadian rad;
77 rad.m_value = RAD_270;
78 return rad;
79 }
#define RAD_270
Definition kis_radian.h:17

References KisRadian< TReal >::m_value, and RAD_270.

◆ from90Deg()

template<class TReal >
static KisRadian KisRadian< TReal >::from90Deg ( )
inlinestatic

Definition at line 63 of file kis_radian.h.

63 {
64 KisRadian rad;
65 rad.m_value = RAD_90;
66 return rad;
67 }
#define RAD_90
Definition kis_radian.h:19

References KisRadian< TReal >::m_value, and RAD_90.

◆ fromDegrees()

template<class TReal >
static KisRadian KisRadian< TReal >::fromDegrees ( const TReal & deg)
inlinestatic

Definition at line 81 of file kis_radian.h.

81{ return KisRadian(deg * TO_RAD); }
#define TO_RAD
Definition kis_radian.h:15

References KisRadian< TReal >::KisRadian(), and TO_RAD.

◆ normalizeDegrees()

template<class TReal >
static TReal KisRadian< TReal >::normalizeDegrees ( TReal deg)
inlinestatic

Definition at line 58 of file kis_radian.h.

58 {
59 deg = std::fmod(deg, TReal(360));
60 return deg < TReal(0) ? (deg + TReal(360)) : deg;
61 }

◆ normalizeRadians()

template<class TReal >
static TReal KisRadian< TReal >::normalizeRadians ( TReal rad)
inlinestatic

Definition at line 53 of file kis_radian.h.

53 {
54 rad = std::fmod((TReal)rad, (TReal)PI2);
55 return rad < TReal(0) ? (rad + PI2) : rad;
56 }
#define PI2
Definition kis_radian.h:13

References PI2.

◆ operator%=()

template<class TReal >
template<class U >
KisRadian & KisRadian< TReal >::operator%= ( const U & rad)
inline

Definition at line 166 of file kis_radian.h.

166 {
167 m_value = normalizeRadians(std::fmod(m_value, TReal(_Private::Value::get(rad))));
168 return *this;
169 }

References _Private::Value::get(), KisRadian< TReal >::m_value, and KisRadian< TReal >::normalizeRadians().

◆ operator*=()

template<class TReal >
template<class U >
KisRadian & KisRadian< TReal >::operator*= ( const U & rad)
inline

◆ operator+=()

template<class TReal >
template<class U >
KisRadian & KisRadian< TReal >::operator+= ( const U & rad)
inline

◆ operator-=()

template<class TReal >
template<class U >
KisRadian & KisRadian< TReal >::operator-= ( const U & rad)
inline

◆ operator/=()

template<class TReal >
template<class U >
KisRadian & KisRadian< TReal >::operator/= ( const U & rad)
inline

◆ operator=() [1/2]

template<class TReal >
template<class U >
KisRadian & KisRadian< TReal >::operator= ( const KisRadian< U > & rad)
inline

Definition at line 101 of file kis_radian.h.

101 {
102 m_value = rad.m_value;
103 return *this;
104 }

References KisRadian< TReal >::m_value.

◆ operator=() [2/2]

template<class TReal >
template<class U >
KisRadian & KisRadian< TReal >::operator= ( const U & rad)
inline

◆ scaled()

template<class TReal >
TReal KisRadian< TReal >::scaled ( const TReal & min,
const TReal & max ) const
inline

Definition at line 88 of file kis_radian.h.

88 {
89 return min + (m_value / PI2) * (max - min);
90 }
T min(T a, T b, T c)

References KisRadian< TReal >::m_value, and PI2.

◆ toDegrees()

template<class TReal >
static TReal KisRadian< TReal >::toDegrees ( const TReal & rad)
inlinestatic

Definition at line 83 of file kis_radian.h.

83{ return normalizeRadians(rad) * TO_DEG; }

References KisRadian< TReal >::normalizeRadians(), and TO_DEG.

◆ toRadians()

template<class TReal >
static TReal KisRadian< TReal >::toRadians ( const TReal & deg)
inlinestatic

Definition at line 82 of file kis_radian.h.

82{ return normalizeDegrees(deg) * TO_RAD; }
static TReal normalizeDegrees(TReal deg)
Definition kis_radian.h:58

References KisRadian< TReal >::normalizeDegrees(), and TO_RAD.

◆ value()

template<class TReal >
const TReal & KisRadian< TReal >::value ( ) const
inline

Definition at line 85 of file kis_radian.h.

85{ return m_value; }

References KisRadian< TReal >::m_value.

Friends And Related Symbol Documentation

◆ operator%

template<class TReal >
KisRadian operator% ( const KisRadian< TReal > & l,
const KisRadian< TReal > & r )
friend

Definition at line 172 of file kis_radian.h.

172 {
173 KisRadian rad(l);
174 rad %= r;
175 return rad;
176 }

◆ operator*

template<class TReal >
KisRadian operator* ( const KisRadian< TReal > & l,
const KisRadian< TReal > & r )
friend

Definition at line 143 of file kis_radian.h.

143 {
144 KisRadian rad(l);
145 rad *= r;
146 return rad;
147 }

◆ operator+

template<class TReal >
KisRadian operator+ ( const KisRadian< TReal > & l,
const KisRadian< TReal > & r )
friend

Definition at line 115 of file kis_radian.h.

115 {
116 KisRadian rad(l);
117 rad += r;
118 return rad;
119 }

◆ operator-

template<class TReal >
KisRadian operator- ( const KisRadian< TReal > & l,
const KisRadian< TReal > & r )
friend

Definition at line 129 of file kis_radian.h.

129 {
130 KisRadian rad(l);
131 rad -= r;
132 return rad;
133 }

◆ operator/

template<class TReal >
KisRadian operator/ ( const KisRadian< TReal > & l,
const KisRadian< TReal > & r )
friend

Definition at line 157 of file kis_radian.h.

157 {
158 KisRadian rad(l);
159 rad /= r;
160 return rad;
161 }

Member Data Documentation

◆ m_value

template<class TReal >
TReal KisRadian< TReal >::m_value
private

Definition at line 179 of file kis_radian.h.


The documentation for this class was generated from the following file: