Go to the documentation of this file.
5 #ifndef BALL_MATHS_ANGLE_H
6 #define BALL_MATHS_ANGLE_H
8 #ifndef BALL_COMMON_EXCEPTION_H
12 #ifndef BALL_COMMON_DEBUG_H
16 #ifndef BALL_COMMON_CREATE_H
20 #ifndef BALL_MATHS_COMMON_H
36 TAngle<T>
operator * (
const T& val,
const TAngle<T>& angle);
40 TAngle<T>
operator + (
const T& val,
const TAngle<T>& angle);
44 TAngle<T>
operator - (
const T& val,
const TAngle<T>& angle);
100 explicit TAngle(
const T& new_value,
bool radian =
true);
131 void set(
const T& new_value,
bool radian =
true);
158 void get(T& val,
bool radian =
true)
const;
368 void dump(std::ostream& s = std::cout,
Size depth = 0)
const;
383 template <
typename T>
389 template <
typename T>
391 : value((T)angle.value)
395 template <
typename T>
397 : value(radian ? new_value : toRadian(new_value))
401 template <
typename T>
409 template <
typename T>
415 template <
typename T>
418 value = radian ? new_value : toRadian(new_value);
421 template <
typename T>
428 template <
typename T>
435 template <
typename T>
441 template <
typename T>
444 val = radian ? value : toDegree(value);
447 template <
typename T>
453 template <
typename T>
459 template <
typename T>
464 template <
typename T>
467 return toDegree(value);
470 template <
typename T>
473 if (radian == (T) 0.0)
return (T) 0.0;
477 template <
typename T>
480 if (range == RANGE__UNLIMITED)
496 if (range == RANGE__SIGNED)
512 template <
typename T>
518 template <
typename T>
524 template <
typename T>
530 template <
typename T>
533 value += angle.
value;
537 template <
typename T>
544 template <
typename T>
550 template <
typename T>
553 value -= angle.
value;
557 template <
typename T>
564 template <
typename T>
570 template <
typename T>
573 value *= angle.
value;
577 template <
typename T>
584 template <
typename T>
587 if (angle.
value == 0)
591 value /= angle.
value;
596 template <
typename T>
609 template <
typename T>
620 template <
typename T>
626 template <
typename T>
632 template <
typename T>
638 template <
typename T>
644 template <
typename T>
650 template <
typename T>
656 template <
typename T>
663 template <
typename T>
671 return (this_angle == angle);
674 template <
typename T>
680 template <
typename T>
688 s <<
" value: " << value << std::endl;
702 template <
typename T>
712 template <
typename T>
722 template <
typename T>
732 template <
typename T>
745 template <
typename T>
748 s <<
'(' << angle.
value <<
')';
755 #endif // BALL_MATHS_ANGLE_H
TAngle & operator+=(const TAngle &angle)
TAngle operator/(const TAngle &val)
bool isGreater(const T1 &a, const T2 &b)
BALL_INLINE TAngle< T > operator-(const T &val, const TAngle< T > &angle)
bool isNotEqual(const T1 &a, const T2 &b)
static T toDegree(const T &radian)
#define BALL_DUMP_HEADER(os, cl, ob)
bool isGreaterOrEqual(const T1 &a, const T2 &b)
bool operator<(const TAngle &angle) const
#define BALL_DUMP_STREAM_PREFIX(os)
bool isEqual(const T1 &a, const T2 &b)
BALL_INLINE TAngle< T > operator*(const T &val, const TAngle< T > &angle)
TAngle & operator*=(const TAngle &angle)
BALL_EXTERN_VARIABLE const double c
#define BALL_DUMP_DEPTH(os, depth)
void get(TAngle &angle) const
bool isLessOrEqual(const T1 &a, const T2 &b)
bool isEquivalent(TAngle angle) const
TAngle & operator/=(const TAngle &angle)
bool operator!=(const TAngle &angle) const
TAngle(const T &new_value, bool radian=true)
bool operator>=(const TAngle &angle) const
bool operator<=(const TAngle &angle) const
void set(const T &new_value, bool radian=true)
TAngle & operator-=(const TAngle &angle)
void dump(std::ostream &s=std::cout, Size depth=0) const
bool isLess(const T1 &a, const T2 &b)
bool operator>(const TAngle &angle) const
void set(const TAngle &angle)
BALL_EXPORT std::ostream & operator<<(std::ostream &os, const Exception::GeneralException &e)
void get(T &val, bool radian=true) const
BALL_EXTERN_VARIABLE const double PI
PI.
std::istream & operator>>(std::istream &is, TRegularData1D< ValueType > &grid)
Input operator.
bool operator==(const TAngle &angle) const
#define BALL_DUMP_STREAM_SUFFIX(os)
TAngle(const TAngle &angle)
ConstRandomAccessIterator< Container, DataType, Position, Traits > operator+(Distance distance, const ConstRandomAccessIterator< Container, DataType, Position, Traits > &iterator)
#define BALL_CREATE(name)
void normalize(Range range)
TAngle & operator=(const TAngle &angle)
static T toRadian(const T °ree)