LSST Applications g063fba187b+fee0456c91,g0f08755f38+ea96e5a5a3,g1653933729+a8ce1bb630,g168dd56ebc+a8ce1bb630,g1a2382251a+90257ff92a,g20f6ffc8e0+ea96e5a5a3,g217e2c1bcf+937a289c59,g28da252d5a+daa7da44eb,g2bbee38e9b+253935c60e,g2bc492864f+253935c60e,g3156d2b45e+6e55a43351,g32e5bea42b+31359a2a7a,g347aa1857d+253935c60e,g35bb328faa+a8ce1bb630,g3a166c0a6a+253935c60e,g3b1af351f3+a8ce1bb630,g3e281a1b8c+c5dd892a6c,g414038480c+416496e02f,g41af890bb2+afe91b1188,g599934f4f4+0db33f7991,g7af13505b9+e36de7bce6,g80478fca09+da231ba887,g82479be7b0+a4516e59e3,g858d7b2824+ea96e5a5a3,g89c8672015+f4add4ffd5,g9125e01d80+a8ce1bb630,ga5288a1d22+bc6ab8dfbd,gb58c049af0+d64f4d3760,gc28159a63d+253935c60e,gcab2d0539d+3f2b72788c,gcf0d15dbbd+4ea9c45075,gda6a2b7d83+4ea9c45075,gdaeeff99f8+1711a396fd,ge79ae78c31+253935c60e,gef2f8181fd+3031e3cf99,gf0baf85859+c1f95f4921,gfa517265be+ea96e5a5a3,gfa999e8aa5+17cd334064,w.2024.50
LSST Data Management Base Package
Loading...
Searching...
No Matches
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.
 
constexpr bool operator== (AngleUnit const &rhs) const noexcept
 Test if two units are the same.
 
std::size_t hash_value () const noexcept
 Return a hash of this object.
 

Friends

class Angle
 
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.
 

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 71 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 86 of file Angle.h.

86: _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 99 of file Angle.h.

99{ 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 105 of file Angle.h.

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

Friends And Related Symbol Documentation

◆ Angle

friend class Angle
friend

Definition at line 72 of file Angle.h.

◆ operator*

template<typename T >
constexpr Angle operator* ( T 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 402 of file Angle.h.

402 {
403 static_assert(std::is_arithmetic<T>::value,
404 "Only numeric types may be multiplied by an AngleUnit to create an Angle!");
405 return Angle(lhs * rhs._val);
406}
friend class Angle
Definition Angle.h:72

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