LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Public Member Functions | Static Public Member Functions | List of all members
lsst::sphgeom::Angle Class Reference

Angle represents an angle in radians. More...

#include <Angle.h>

Public Member Functions

 Angle ()
 This constructor creates an Angle with a value of zero. More...
 
 Angle (double a)
 This constructor creates an Angle with the given value in radians. More...
 
bool operator== (Angle const &a) const
 
bool operator!= (Angle const &a) const
 
bool operator< (Angle const &a) const
 
bool operator> (Angle const &a) const
 
bool operator<= (Angle const &a) const
 
bool operator>= (Angle const &a) const
 
Angle operator- () const
 
Angle operator+ (Angle const &a) const
 
Angle operator- (Angle const &a) const
 
Angle operator* (double a) const
 
Angle operator/ (double a) const
 
double operator/ (Angle const &a) const
 
Angleoperator+= (Angle const &a)
 
Angleoperator-= (Angle const &a)
 
Angleoperator*= (double a)
 
Angleoperator/= (double a)
 
double asDegrees () const
 asDegrees returns the value of this angle in units of degrees. More...
 
double asRadians () const
 asRadians returns the value of this angle in units of radians. More...
 
bool isNormalized () const
 isNormalized returns true if this angle lies in the range [0, 2π). More...
 
bool isNan () const
 isNan returns true if the angle value is NaN. More...
 

Static Public Member Functions

static Angle nan ()
 
static Angle fromDegrees (double a)
 
static Angle fromRadians (double a)
 

Detailed Description

Angle represents an angle in radians.

It provides methods for angle comparison and arithmetic, as well as unit conversion. An angle is said to be normalized if it lies in the range [0, 2π).

Definition at line 43 of file Angle.h.

Constructor & Destructor Documentation

◆ Angle() [1/2]

lsst::sphgeom::Angle::Angle ( )
inline

This constructor creates an Angle with a value of zero.

Definition at line 54 of file Angle.h.

54 : _rad(0.0) {}

◆ Angle() [2/2]

lsst::sphgeom::Angle::Angle ( double  a)
inlineexplicit

This constructor creates an Angle with the given value in radians.

Definition at line 57 of file Angle.h.

57 : _rad(a) {}
table::Key< int > a

Member Function Documentation

◆ asDegrees()

double lsst::sphgeom::Angle::asDegrees ( ) const
inline

asDegrees returns the value of this angle in units of degrees.

Definition at line 82 of file Angle.h.

82 { return _rad * DEG_PER_RAD; }
constexpr double DEG_PER_RAD
Definition: constants.h:39

◆ asRadians()

double lsst::sphgeom::Angle::asRadians ( ) const
inline

asRadians returns the value of this angle in units of radians.

Definition at line 85 of file Angle.h.

85 { return _rad; }

◆ fromDegrees()

static Angle lsst::sphgeom::Angle::fromDegrees ( double  a)
inlinestatic

Definition at line 49 of file Angle.h.

49 { return Angle(a * RAD_PER_DEG); }
Angle()
This constructor creates an Angle with a value of zero.
Definition: Angle.h:54
constexpr double RAD_PER_DEG
Definition: constants.h:38

◆ fromRadians()

static Angle lsst::sphgeom::Angle::fromRadians ( double  a)
inlinestatic

Definition at line 51 of file Angle.h.

51 { return Angle(a); }

◆ isNan()

bool lsst::sphgeom::Angle::isNan ( ) const
inline

isNan returns true if the angle value is NaN.

Definition at line 91 of file Angle.h.

91 { return std::isnan(_rad); }
T isnan(T... args)

◆ isNormalized()

bool lsst::sphgeom::Angle::isNormalized ( ) const
inline

isNormalized returns true if this angle lies in the range [0, 2π).

Definition at line 88 of file Angle.h.

88 { return _rad >= 0.0 && _rad <= 2.0 * PI; }
constexpr double PI
Definition: constants.h:36

◆ nan()

static Angle lsst::sphgeom::Angle::nan ( )
inlinestatic

Definition at line 45 of file Angle.h.

◆ operator!=()

bool lsst::sphgeom::Angle::operator!= ( Angle const &  a) const
inline

Definition at line 61 of file Angle.h.

61 { return _rad != a._rad; }

◆ operator*()

Angle lsst::sphgeom::Angle::operator* ( double  a) const
inline

Definition at line 71 of file Angle.h.

71 { return Angle(_rad * a); }

◆ operator*=()

Angle& lsst::sphgeom::Angle::operator*= ( double  a)
inline

Definition at line 78 of file Angle.h.

78 { *this = *this * a; return *this; }

◆ operator+()

Angle lsst::sphgeom::Angle::operator+ ( Angle const &  a) const
inline

Definition at line 69 of file Angle.h.

69 { return Angle(_rad + a._rad); }

◆ operator+=()

Angle& lsst::sphgeom::Angle::operator+= ( Angle const &  a)
inline

Definition at line 76 of file Angle.h.

76 { *this = *this + a; return *this; }

◆ operator-() [1/2]

Angle lsst::sphgeom::Angle::operator- ( ) const
inline

Definition at line 68 of file Angle.h.

68 { return Angle(-_rad); }

◆ operator-() [2/2]

Angle lsst::sphgeom::Angle::operator- ( Angle const &  a) const
inline

Definition at line 70 of file Angle.h.

70 { return Angle(_rad - a._rad); }

◆ operator-=()

Angle& lsst::sphgeom::Angle::operator-= ( Angle const &  a)
inline

Definition at line 77 of file Angle.h.

77 { *this = *this - a; return *this; }

◆ operator/() [1/2]

double lsst::sphgeom::Angle::operator/ ( Angle const &  a) const
inline

Definition at line 73 of file Angle.h.

73 { return _rad / a._rad; }

◆ operator/() [2/2]

Angle lsst::sphgeom::Angle::operator/ ( double  a) const
inline

Definition at line 72 of file Angle.h.

72 { return Angle(_rad / a); }

◆ operator/=()

Angle& lsst::sphgeom::Angle::operator/= ( double  a)
inline

Definition at line 79 of file Angle.h.

79 { *this = *this / a; return *this; }

◆ operator<()

bool lsst::sphgeom::Angle::operator< ( Angle const &  a) const
inline

Definition at line 62 of file Angle.h.

62 { return _rad < a._rad; }

◆ operator<=()

bool lsst::sphgeom::Angle::operator<= ( Angle const &  a) const
inline

Definition at line 64 of file Angle.h.

64 { return _rad <= a._rad; }

◆ operator==()

bool lsst::sphgeom::Angle::operator== ( Angle const &  a) const
inline

Definition at line 60 of file Angle.h.

60 { return _rad == a._rad; }

◆ operator>()

bool lsst::sphgeom::Angle::operator> ( Angle const &  a) const
inline

Definition at line 63 of file Angle.h.

63 { return _rad > a._rad; }

◆ operator>=()

bool lsst::sphgeom::Angle::operator>= ( Angle const &  a) const
inline

Definition at line 65 of file Angle.h.

65 { return _rad >= a._rad; }

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