30#ifndef LSST_SPHGEOM_NORMALIZEDANGLE_H_
31#define LSST_SPHGEOM_NORMALIZEDANGLE_H_
96 _a =
Angle(std::fmod(a, 2.0 * PI) + 2.0 * PI);
97 }
else if (a > 2 * PI) {
98 _a =
Angle(std::fmod(a, 2.0 * PI));
115 operator Angle const & ()
const {
return _a; }
118 bool operator==(
Angle const & a)
const {
return _a == a; }
119 bool operator!=(Angle
const & a)
const {
return _a != a; }
120 bool operator<(Angle
const & a)
const {
return _a < a; }
121 bool operator>(Angle
const & a)
const {
return _a > a; }
122 bool operator<=(Angle
const & a)
const {
return _a <= a; }
123 bool operator>=(Angle
const & a)
const {
return _a >= a; }
126 Angle operator-()
const {
return Angle(-_a); }
127 Angle operator+(Angle
const & a)
const {
return _a + a; }
128 Angle operator-(Angle
const & a)
const {
return _a - a; }
129 Angle operator*(
double a)
const {
return _a * a; }
130 Angle operator/(
double a)
const {
return _a / a; }
131 double operator/(Angle
const & a)
const {
return _a / a; }
151 x._a =
Angle((d < 0.0) ? 2.0 * PI + d : d);
159inline NormalizedAngle
const & abs(NormalizedAngle
const & a) {
return a; }
This file declares a class for representing angles.
bool isNan() const
isNan returns true if the angle value is NaN.
Definition Angle.h:98
double asDegrees() const
asDegrees returns the value of this angle in units of degrees.
Definition Angle.h:89
double asRadians() const
asRadians returns the value of this angle in units of radians.
Definition Angle.h:92
Definition NormalizedAngle.h:50
bool isNan() const
isNan returns true if the angle value is NaN.
Definition NormalizedAngle.h:140
NormalizedAngle(double a)
Definition NormalizedAngle.h:92
double asRadians() const
asRadians returns the value of this angle in units of radians.
Definition NormalizedAngle.h:137
NormalizedAngle getAngleTo(NormalizedAngle const &a) const
Definition NormalizedAngle.h:148
NormalizedAngle(Angle const &a)
This constructor creates a normalized copy of a.
Definition NormalizedAngle.h:86
NormalizedAngle()=default
This constructor creates a NormalizedAngle with a value of zero.
double asDegrees() const
asDegrees returns the value of this angle in units of degrees.
Definition NormalizedAngle.h:134
static NormalizedAngle between(NormalizedAngle const &a, NormalizedAngle const &b)
Definition NormalizedAngle.cc:42
static NormalizedAngle center(NormalizedAngle const &a, NormalizedAngle const &b)
Definition NormalizedAngle.cc:52
NormalizedAngle(NormalizedAngle const &a)=default
This constructor creates a copy of a.
Vector3d is a vector in ℝ³ with components stored in double precision.
Definition Vector3d.h:51