candlewick 0.1.0
A renderer
Loading...
Searching...
No Matches
Angle strong types

Strong types for angle quantities. More...

Classes

struct  candlewick::Rad< T >
 Strong type for floating-point variables representing angles (in radians). More...
 
struct  candlewick::Deg< T >
 Strong type for floating-point variables representing angles (in degrees). More...
 

Typedefs

using candlewick::Radf = Rad<float>
 
using candlewick::Degf = Deg<float>
 

Functions

template<std::floating_point T>
 candlewick::Rad (T) -> Rad< T >
 
template<std::floating_point T>
 candlewick::Deg (T) -> Deg< T >
 
template<std::floating_point T>
constexpr Rad< T > candlewick::operator* (const Rad< T > &left, const T &right)
 
template<std::floating_point T>
constexpr Rad< T > candlewick::operator* (const T &left, const Rad< T > &right)
 
constexpr auto candlewick::operator""_radf (long double t)
 
constexpr auto candlewick::operator""_rad (long double t)
 
constexpr auto candlewick::operator""_deg (long double t)
 
constexpr auto candlewick::operator""_degf (long double t)
 

Detailed Description

Strong types for angle quantities.

These are used to explicitly mark a floating point value as being degrees or radians. This avoids passing values in degrees to functions expecting radians (which use e.g. trigonometric functions internally).

Typedef Documentation

◆ Degf

using candlewick::Degf = Deg<float>

◆ Radf

using candlewick::Radf = Rad<float>

Function Documentation

◆ Deg()

template<std::floating_point T>
candlewick::Deg ( T ) -> Deg< T >

◆ operator""_deg()

auto candlewick::operator""_deg ( long double t)
inlineconstexpr

◆ operator""_degf()

auto candlewick::operator""_degf ( long double t)
inlineconstexpr

◆ operator""_rad()

auto candlewick::operator""_rad ( long double t)
inlineconstexpr

◆ operator""_radf()

auto candlewick::operator""_radf ( long double t)
inlineconstexpr

◆ operator*() [1/2]

template<std::floating_point T>
Rad< T > candlewick::operator* ( const Rad< T > & left,
const T & right )
constexpr

◆ operator*() [2/2]

template<std::floating_point T>
Rad< T > candlewick::operator* ( const T & left,
const Rad< T > & right )
constexpr

◆ Rad()

template<std::floating_point T>
candlewick::Rad ( T ) -> Rad< T >