23#ifndef LSST_SPHGEOM_NORMALIZEDANGLE_H_
24#define LSST_SPHGEOM_NORMALIZEDANGLE_H_
89 _a =
Angle(std::fmod(a, 2.0 * PI) + 2.0 * PI);
90 }
else if (a > 2 * PI) {
91 _a =
Angle(std::fmod(a, 2.0 * PI));
108 operator Angle const & ()
const {
return _a; }
111 bool operator==(
Angle const & a)
const {
return _a == a; }
112 bool operator!=(Angle
const & a)
const {
return _a != a; }
113 bool operator<(Angle
const & a)
const {
return _a < a; }
114 bool operator>(Angle
const & a)
const {
return _a > a; }
115 bool operator<=(Angle
const & a)
const {
return _a <= a; }
116 bool operator>=(Angle
const & a)
const {
return _a >= a; }
119 Angle operator-()
const {
return Angle(-_a); }
120 Angle operator+(Angle
const & a)
const {
return _a + a; }
121 Angle operator-(Angle
const & a)
const {
return _a - a; }
122 Angle operator*(
double a)
const {
return _a * a; }
123 Angle operator/(
double a)
const {
return _a / a; }
124 double operator/(Angle
const & a)
const {
return _a / a; }
144 x._a =
Angle((d < 0.0) ? 2.0 * PI + d : d);
152inline 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:91
double asDegrees() const
asDegrees returns the value of this angle in units of degrees.
Definition: Angle.h:82
double asRadians() const
asRadians returns the value of this angle in units of radians.
Definition: Angle.h:85
Definition: NormalizedAngle.h:43
bool isNan() const
isNan returns true if the angle value is NaN.
Definition: NormalizedAngle.h:133
NormalizedAngle(double a)
Definition: NormalizedAngle.h:85
double asRadians() const
asRadians returns the value of this angle in units of radians.
Definition: NormalizedAngle.h:130
NormalizedAngle getAngleTo(NormalizedAngle const &a) const
Definition: NormalizedAngle.h:141
NormalizedAngle(Angle const &a)
This constructor creates a normalized copy of a.
Definition: NormalizedAngle.h:79
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:127
static NormalizedAngle between(NormalizedAngle const &a, NormalizedAngle const &b)
Definition: NormalizedAngle.cc:35
static NormalizedAngle center(NormalizedAngle const &a, NormalizedAngle const &b)
Definition: NormalizedAngle.cc:45
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:44