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 | Friends | List of all members
lsst::geom::AngleUnit Class Referencefinal

A class used to convert scalar POD types such as double to Angle. More...

#include <Angle.h>

Public Member Functions

constexpr AngleUnit (double val)
 Define a new angle unit. More...
 
constexpr bool operator== (AngleUnit const &rhs) const noexcept
 Test if two units are the same. More...
 
std::size_t hash_value () const noexcept
 Return a hash of this object. More...
 

Friends

class Angle
 
template<typename T >
constexpr friend 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...
 

Detailed Description

A class used to convert scalar POD types such as double to Angle.

For example, given the predefined AngleUnit degrees:

Angle pi = 180*degrees;

is equivalent to

Angle pi(180, degrees);

Definition at line 70 of file Angle.h.

Constructor & Destructor Documentation

◆ AngleUnit()

constexpr lsst::geom::AngleUnit::AngleUnit ( double  val)
inlineexplicitconstexpr

Define a new angle unit.

Parameters
valthe number of radians in one unit. See degrees for an example.
Exception Safety
Provides strong exception safety.

Definition at line 85 of file Angle.h.

85 : _val(val) {}
ImageT val
Definition: CR.cc:146

Member Function Documentation

◆ hash_value()

std::size_t lsst::geom::AngleUnit::hash_value ( ) const
inlinenoexcept

Return a hash of this object.

Definition at line 98 of file Angle.h.

98 { return std::hash<double>()(_val); }

◆ operator==()

constexpr bool lsst::geom::AngleUnit::operator== ( AngleUnit const &  rhs) const
inlineconstexprnoexcept

Test if two units are the same.

Parameters
rhsthe unit to compare this to
Returns
true if the two units have the same size, false otherwise.
Exception Safety
Shall not throw exceptions.

Definition at line 104 of file Angle.h.

104  {
105  return (_val == rhs._val);
106 }

Friends And Related Function Documentation

◆ Angle

friend class Angle
friend

Definition at line 71 of file Angle.h.

◆ operator*

template<typename T >
constexpr friend Angle operator* ( lhs,
AngleUnit  rhs 
)
friend

Use AngleUnit to convert a POD (e.g. int, double) to an Angle; e.g. 180*degrees.

Parameters
lhsthe value to convert
rhsthe conversion coefficient
Exception Safety
Shall not throw exceptions.

Definition at line 395 of file Angle.h.

395  {
396  static_assert(std::is_arithmetic<T>::value,
397  "Only numeric types may be multiplied by an AngleUnit to create an Angle!");
398  return Angle(lhs * rhs._val);
399 }
friend class Angle
Definition: Angle.h:71

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