LSST Applications g0f08755f38+9c285cab97,g1635faa6d4+13f3999e92,g1653933729+a8ce1bb630,g1a0ca8cf93+bf6eb00ceb,g28da252d5a+0829b12dee,g29321ee8c0+5700dc9eac,g2bbee38e9b+9634bc57db,g2bc492864f+9634bc57db,g2cdde0e794+c2c89b37c4,g3156d2b45e+41e33cbcdc,g347aa1857d+9634bc57db,g35bb328faa+a8ce1bb630,g3a166c0a6a+9634bc57db,g3e281a1b8c+9f2c4e2fc3,g414038480c+077ccc18e7,g41af890bb2+fde0dd39b6,g5fbc88fb19+17cd334064,g781aacb6e4+a8ce1bb630,g80478fca09+55a9465950,g82479be7b0+d730eedb7d,g858d7b2824+9c285cab97,g9125e01d80+a8ce1bb630,g9726552aa6+10f999ec6a,ga5288a1d22+2a84bb7594,gacf8899fa4+c69c5206e8,gae0086650b+a8ce1bb630,gb58c049af0+d64f4d3760,gc28159a63d+9634bc57db,gcf0d15dbbd+4b7d09cae4,gda3e153d99+9c285cab97,gda6a2b7d83+4b7d09cae4,gdaeeff99f8+1711a396fd,ge2409df99d+5e831397f4,ge79ae78c31+9634bc57db,gf0baf85859+147a0692ba,gf3967379c6+41c94011de,gf3fb38a9a8+8f07a9901b,gfb92a5be7c+9c285cab97,w.2024.46
LSST Data Management Base Package
|
A class representing an angle. More...
#include <Angle.h>
Public Member Functions | |
constexpr | Angle (double val, AngleUnit units=radians) noexcept |
Construct an Angle with the specified value (interpreted in the given units). | |
constexpr | Angle () noexcept |
Construct the zero angle. | |
Angle (sphgeom::Angle const &sgAngle) noexcept | |
Convert from a sphgeom::Angle instance. | |
constexpr | Angle (Angle const &other) noexcept=default |
Copy constructor. | |
constexpr | Angle (Angle &&other) noexcept=default |
Move constructor. | |
Angle & | operator= (Angle const &other) noexcept=default |
Copy assignment. | |
Angle & | operator= (Angle &&other) noexcept=default |
Move assignment. | |
~Angle ()=default | |
constexpr | operator double () const noexcept |
Convert an Angle to a double in radians. | |
operator sphgeom::Angle () const noexcept | |
Convert to a sphgeom::Angle instance. | |
constexpr double | asAngularUnits (AngleUnit const &units) const noexcept |
Return an Angle's value in the specified units. | |
constexpr double | asRadians () const noexcept |
Return an Angle's value in radians. | |
constexpr double | asDegrees () const noexcept |
Return an Angle's value in degrees. | |
constexpr double | asHours () const noexcept |
Return an Angle's value in hours. | |
constexpr double | asArcminutes () const noexcept |
Return an Angle's value in arcminutes. | |
constexpr double | asArcseconds () const noexcept |
Return an Angle's value in arcseconds. | |
constexpr double | asMilliarcseconds () const noexcept |
Return an Angle's value in milliarcseconds. | |
Angle | wrap () const noexcept |
Wrap this angle to the range [0, 2π). | |
Angle | wrapCtr () const noexcept |
Wrap this angle to the range [-π, π). | |
Angle | wrapNear (Angle const &refAng) const noexcept |
Wrap this angle to a value x such that -π ≤ x - refAng ≤ π, approximately. | |
Angle | separation (Angle const &other) const noexcept |
The signed difference between two Angles. | |
Angle & | operator*= (double const &d) noexcept |
Multiply this angle by the given factor. | |
Angle & | operator*= (int const &d) noexcept |
Angle & | operator+= (double const &d) noexcept |
Increase this angle by the given number of radians. | |
Angle & | operator+= (int const &d) noexcept |
Angle & | operator-= (double const &d) noexcept |
Decrease this angle by the given number of radians. | |
Angle & | operator-= (int const &d) noexcept |
constexpr bool | operator== (const Angle &rhs) const noexcept |
Test if two Angles represent the same angle (without wrapping). | |
constexpr bool | operator!= (const Angle &rhs) const noexcept |
constexpr bool | operator<= (const Angle &rhs) const noexcept |
Compare the sizes of two Angles (without wrapping). | |
constexpr bool | operator>= (const Angle &rhs) const noexcept |
constexpr bool | operator< (const Angle &rhs) const noexcept |
constexpr bool | operator> (const Angle &rhs) const noexcept |
std::size_t | hash_value () const noexcept |
Return a hash of this object. | |
Friends | |
class | AngleUnit |
Related Symbols | |
(Note that these are not member symbols.) | |
constexpr Angle | operator+ (Angle a, Angle d) noexcept |
Sum of two angles. | |
constexpr Angle | operator- (Angle a, Angle d) noexcept |
Difference of two angles. | |
constexpr Angle | operator* (Angle a, Angle d) noexcept |
Product of two angles. | |
constexpr Angle | operator* (Angle a, double d) noexcept |
Product of an angle and a scalar. | |
constexpr Angle | operator- (Angle angle) |
An angle in the opposite sense. | |
constexpr Angle | operator/ (Angle a, int d) noexcept |
Ratio of an angle and a scalar. | |
constexpr Angle | operator/ (Angle a, double d) noexcept |
Ratio of an angle and a scalar. | |
std::ostream & | operator<< (std::ostream &s, Angle a) |
Print an Angle to a stream. | |
template<typename T > | |
constexpr Angle | operator* (T lhs, AngleUnit rhs) noexcept |
Use AngleUnit to convert a POD (e.g. int, double) to an Angle; e.g. 180*degrees. | |
A class representing an angle.
Angles may be manipulated like doubles, and automatically converted to doubles, but they may not be constructed from doubles without calling a constructor or multiplying by an AngleUnit. Angles can be modified only by assignment; all other operations that transform an Angle return a new Angle instead.
Unless otherwise specified, all methods and associated operators shall not throw exceptions.
|
inlineconstexprnoexcept |
|
inlineexplicitnoexcept |
Convert from a sphgeom::Angle instance.
Definition at line 143 of file Angle.h.
|
constexprdefaultnoexcept |
Copy constructor.
|
constexprdefaultnoexcept |
Move constructor.
|
default |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
Return an Angle's value in arcminutes.
Definition at line 182 of file Angle.h.
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
Return an Angle's value in milliarcseconds.
Definition at line 188 of file Angle.h.
|
inlineconstexprnoexcept |
|
inlinenoexcept |
|
inlineconstexprnoexcept |
|
inlinenoexcept |
|
inlineconstexprnoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlinenoexcept |
Wrap this angle to the range [0, 2π).
Definition at line 410 of file Angle.h.
|
inlinenoexcept |
Wrap this angle to the range [-π, π).
Definition at line 419 of file Angle.h.
Wrap this angle to a value x
such that -π ≤ x - refAng
≤ π, approximately.
refAng | reference angle to match |
x - refAng
in radians. The upper limit in radians and both limits in other units are somewhat squishy, due to roundoff error. Definition at line 438 of file Angle.h.
Use AngleUnit to convert a POD (e.g. int, double) to an Angle; e.g. 180*degrees.
lhs | the value to convert |
rhs | the conversion coefficient |
Definition at line 402 of file Angle.h.
|
related |
Print an Angle to a stream.
The exact details of the string representation are unspecified and subject to change, but the following may be regarded as typical: "0.567 rad"
.
s | The output stream. |
a | The angle. |
Definition at line 29 of file Angle.cc.