Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
libnest2d::Radians Class Reference

Data type representing radians. It supports conversion to degrees. More...

#include <src/libnest2d/include/libnest2d/common.hpp>

+ Inheritance diagram for libnest2d::Radians:
+ Collaboration diagram for libnest2d::Radians:

Public Member Functions

 Radians (double rads=Double())
 
 Radians (const Degrees &degs)
 
 operator Degrees ()
 
double toDegrees ()
 
double sin () const
 
double cos () const
 
 operator double () const BP2D_NOEXCEPT
 
 operator double & () BP2D_NOEXCEPT
 

Protected Attributes

double val_
 

Private Attributes

double sin_ = std::nan("")
 
double cos_ = std::nan("")
 

Detailed Description

Data type representing radians. It supports conversion to degrees.

Constructor & Destructor Documentation

◆ Radians() [1/2]

libnest2d::Radians::Radians ( double  rads = Double())
inline
122: Double(rads) {}
Double()
Definition common.hpp:107

◆ Radians() [2/2]

libnest2d::Radians::Radians ( const Degrees degs)
inline
167: Double( degs * Pi/180) {}
const double BP2D_CONSTEXPR Pi
Definition common.hpp:97

Member Function Documentation

◆ cos()

double libnest2d::Radians::cos ( ) const
inline
136 {
137 if(std::isnan(cos_)) {
138 cos_ = std::cos(val_);
139 sin_ = std::sin(val_);
140 }
141 return cos_;
142 }
double val_
Definition common.hpp:105
double sin_
Definition common.hpp:120
double cos_
Definition common.hpp:120

References cos_, sin_, and libnest2d::Double::val_.

◆ operator Degrees()

libnest2d::Radians::operator Degrees ( )
inline
165{ return *this * 180/Pi; }

References libnest2d::Pi.

◆ operator double()

libnest2d::Double::operator double ( ) const
inlineinherited
110{ return val_; }

References libnest2d::Double::val_.

◆ operator double &()

libnest2d::Double::operator double & ( )
inlineinherited
111{ return val_; }

References libnest2d::Double::val_.

◆ sin()

double libnest2d::Radians::sin ( ) const
inline
128 {
129 if(std::isnan(sin_)) {
130 cos_ = std::cos(val_);
131 sin_ = std::sin(val_);
132 }
133 return sin_;
134 }

References cos_, sin_, and libnest2d::Double::val_.

◆ toDegrees()

double libnest2d::Radians::toDegrees ( )
inline
169{ return operator Degrees(); }

Member Data Documentation

◆ cos_

double libnest2d::Radians::cos_ = std::nan("")
private

Referenced by cos(), and sin().

◆ sin_

double libnest2d::Radians::sin_ = std::nan("")
mutableprivate

Referenced by cos(), and sin().

◆ val_

double libnest2d::Double::val_
protectedinherited

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