LSST Applications g0265f82a02+0e5473021a,g02d81e74bb+0dd8ce4237,g1470d8bcf6+3ea6592b6f,g2079a07aa2+86d27d4dc4,g2305ad1205+5ca4c0b359,g295015adf3+d10818ec9d,g2a9a014e59+6f9be1b9cd,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g3ddfee87b4+703ba97ebf,g487adcacf7+4fa16da234,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+ffa42b374e,g5a732f18d5+53520f316c,g64a986408d+0dd8ce4237,g858d7b2824+0dd8ce4237,g8a8a8dda67+585e252eca,g99cad8db69+d39438377f,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+f1d96605c8,gb0e22166c9+60f28cb32d,gb6a65358fc+0e5473021a,gba4ed39666+c2a2e4ac27,gbb8dafda3b+e5339d463f,gc120e1dc64+da31e9920e,gc28159a63d+0e5473021a,gcf0d15dbbd+703ba97ebf,gdaeeff99f8+f9a426f77a,ge6526c86ff+889fc9d533,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gf18bd8381d+7268b93478,gff1a9f87cc+0dd8ce4237,w.2024.16
LSST Data Management Base Package
Loading...
Searching...
No Matches
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.
 
 Angle (double a)
 This constructor creates an Angle with the given value in radians.
 
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.
 
double asRadians () const
 asRadians returns the value of this angle in units of radians.
 
bool isNormalized () const
 isNormalized returns true if this angle lies in the range [0, 2π).
 
bool isNan () const
 isNan returns true if the angle value is NaN.
 

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 50 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 61 of file Angle.h.

61: _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 64 of file Angle.h.

64: _rad(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 89 of file Angle.h.

89{ return _rad * DEG_PER_RAD; }
constexpr double DEG_PER_RAD
Definition constants.h:46

◆ asRadians()

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

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

Definition at line 92 of file Angle.h.

92{ return _rad; }

◆ fromDegrees()

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

Definition at line 56 of file Angle.h.

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

◆ fromRadians()

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

Definition at line 58 of file Angle.h.

58{ return Angle(a); }

◆ isNan()

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

isNan returns true if the angle value is NaN.

Definition at line 98 of file Angle.h.

98{ 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 95 of file Angle.h.

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

◆ nan()

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

Definition at line 52 of file Angle.h.

◆ operator!=()

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

Definition at line 68 of file Angle.h.

68{ return _rad != a._rad; }

◆ operator*()

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

Definition at line 78 of file Angle.h.

78{ return Angle(_rad * a); }

◆ operator*=()

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

Definition at line 85 of file Angle.h.

85{ *this = *this * a; return *this; }
table::Key< int > a

◆ operator+()

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

Definition at line 76 of file Angle.h.

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

◆ operator+=()

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

Definition at line 83 of file Angle.h.

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

◆ operator-() [1/2]

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

Definition at line 75 of file Angle.h.

75{ return Angle(-_rad); }

◆ operator-() [2/2]

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

Definition at line 77 of file Angle.h.

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

◆ operator-=()

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

Definition at line 84 of file Angle.h.

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

◆ operator/() [1/2]

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

Definition at line 80 of file Angle.h.

80{ return _rad / a._rad; }

◆ operator/() [2/2]

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

Definition at line 79 of file Angle.h.

79{ return Angle(_rad / a); }

◆ operator/=()

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

Definition at line 86 of file Angle.h.

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

◆ operator<()

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

Definition at line 69 of file Angle.h.

69{ return _rad < a._rad; }

◆ operator<=()

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

Definition at line 71 of file Angle.h.

71{ return _rad <= a._rad; }

◆ operator==()

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

Definition at line 67 of file Angle.h.

67{ return _rad == a._rad; }

◆ operator>()

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

Definition at line 70 of file Angle.h.

70{ return _rad > a._rad; }

◆ operator>=()

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

Definition at line 72 of file Angle.h.

72{ return _rad >= a._rad; }

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