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
|
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). More... | |
constexpr | Angle () noexcept |
Construct the zero angle. More... | |
constexpr | Angle (Angle const &other) noexcept=default |
Copy constructor. More... | |
constexpr | Angle (Angle &&other) noexcept=default |
Move constructor. More... | |
Angle & | operator= (Angle const &other) noexcept=default |
Copy assignment. More... | |
Angle & | operator= (Angle &&other) noexcept=default |
Move assignment. More... | |
~Angle ()=default | |
constexpr | operator double () const noexcept |
Convert an Angle to a double in radians. More... | |
constexpr double | asAngularUnits (AngleUnit const &units) const noexcept |
Return an Angle's value in the specified units. More... | |
constexpr double | asRadians () const noexcept |
Return an Angle's value in radians. More... | |
constexpr double | asDegrees () const noexcept |
Return an Angle's value in degrees. More... | |
constexpr double | asHours () const noexcept |
Return an Angle's value in hours. More... | |
constexpr double | asArcminutes () const noexcept |
Return an Angle's value in arcminutes. More... | |
constexpr double | asArcseconds () const noexcept |
Return an Angle's value in arcseconds. More... | |
constexpr double | asMilliarcseconds () const noexcept |
Return an Angle's value in milliarcseconds. More... | |
Angle | wrap () const noexcept |
Wrap this angle to the range [0, 2π). More... | |
Angle | wrapCtr () const noexcept |
Wrap this angle to the range [-π, π). More... | |
Angle | wrapNear (Angle const &refAng) const noexcept |
Wrap this angle to a value x such that -π ≤ x - refAng ≤ π, approximately. More... | |
Angle | separation (Angle const &other) const noexcept |
The signed difference between two Angles. More... | |
Angle & | operator*= (double const &d) noexcept |
Multiply this angle by the given factor. More... | |
Angle & | operator*= (int const &d) noexcept |
Angle & | operator+= (double const &d) noexcept |
Increase this angle by the given number of radians. More... | |
Angle & | operator+= (int const &d) noexcept |
Angle & | operator-= (double const &d) noexcept |
Decrease this angle by the given number of radians. More... | |
Angle & | operator-= (int const &d) noexcept |
constexpr bool | operator== (const Angle &rhs) const noexcept |
Test if two Angles represent the same angle (without wrapping). More... | |
constexpr bool | operator!= (const Angle &rhs) const noexcept |
constexpr bool | operator<= (const Angle &rhs) const noexcept |
Compare the sizes of two Angles (without wrapping). More... | |
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. More... | |
Friends | |
class | AngleUnit |
Related Functions | |
(Note that these are not member functions.) | |
constexpr Angle | operator+ (Angle a, Angle d) noexcept |
Sum of two angles. More... | |
constexpr Angle | operator- (Angle a, Angle d) noexcept |
Difference of two angles. More... | |
constexpr Angle | operator* (Angle a, Angle d) noexcept |
Product of two angles. More... | |
constexpr Angle | operator* (Angle a, double d) noexcept |
Product of an angle and a scalar. More... | |
constexpr Angle | operator- (Angle angle) |
An angle in the opposite sense. More... | |
constexpr Angle | operator/ (Angle a, int d) noexcept |
Ratio of an angle and a scalar. More... | |
constexpr Angle | operator/ (Angle a, double d) noexcept |
Ratio of an angle and a scalar. More... | |
std::ostream & | operator<< (std::ostream &s, Angle a) |
Print an Angle to a stream. More... | |
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. More... | |
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 |
|
constexprdefaultnoexcept |
Copy constructor.
|
constexprdefaultnoexcept |
Move constructor.
|
default |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
Return an Angle's value in arcminutes.
Definition at line 175 of file Angle.h.
|
inlineconstexprnoexcept |
Return an Angle's value in arcseconds.
Definition at line 178 of file Angle.h.
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
Return an Angle's value in milliarcseconds.
Definition at line 181 of file Angle.h.
|
inlineconstexprnoexcept |
|
inlinenoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlineconstexprnoexcept |
|
inlinenoexcept |
Wrap this angle to the range [0, 2π).
Definition at line 403 of file Angle.h.
|
inlinenoexcept |
Wrap this angle to the range [-π, π).
Definition at line 412 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 431 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.