67 explicit Dec(
double inDegrees) :
71 if (inDegrees < -90 || inDegrees > 90)
77 const double absDegrees =
std::abs(degrees_);
80 const double decMinutes = (absDegrees -
static_cast<double>(degreesWhole_)) * 60.;
82 seconds_ = (decMinutes -
static_cast<double>(minutes_)) * 60.;
95 degreesWhole_(inDegrees),
99 degrees_ =
static_cast<double>(degreesWhole_) +
static_cast<double>(minutes_) / 60. + seconds_ / 3600.;
142 return degreesWhole_;
173 std::string out =
"Dec dms: " + strSign +
utils::num2str(degreesWhole_) +
" degrees, " +
208 return !(*
this == inRhs);
221 inStream << inDec.
str();
228 uint8 degreesWhole_{ 0 };
230 double seconds_{ 0. };
231 double degrees_{ 0. };
232 double radians_{ 0. };
#define THROW_INVALID_ARGUMENT_ERROR(msg)
Definition: Error.hpp:36
Holds a Declination object.
Definition: Dec.hpp:55
double seconds() const noexcept
Definition: Dec.hpp:160
bool operator==(const Dec &inRhs) const noexcept
Definition: Dec.hpp:194
bool operator!=(const Dec &inRhs) const noexcept
Definition: Dec.hpp:206
Dec(double inDegrees)
Definition: Dec.hpp:67
friend std::ostream & operator<<(std::ostream &inStream, const Dec &inDec)
Definition: Dec.hpp:219
std::string str() const
Definition: Dec.hpp:170
void print() const
Definition: Dec.hpp:182
uint8 degreesWhole() const noexcept
Definition: Dec.hpp:140
Sign sign() const noexcept
Definition: Dec.hpp:110
double degrees() const noexcept
Definition: Dec.hpp:120
uint8 minutes() const noexcept
Definition: Dec.hpp:150
Dec(Sign inSign, uint8 inDegrees, uint8 inMinutes, double inSeconds) noexcept
Definition: Dec.hpp:93
double radians() const noexcept
Definition: Dec.hpp:130
Sign
Struct Enum for positive or negative Dec angle.
Definition: Dec.hpp:47
std::string num2str(dtype inNumber)
Definition: num2str.hpp:46
bool essentiallyEqual(dtype inValue1, dtype inValue2) noexcept
Definition: essentiallyEqual.hpp:51
Definition: Coordinate.hpp:45
constexpr auto deg2rad(dtype inValue) noexcept
Definition: deg2rad.hpp:47
auto abs(dtype inValue) noexcept
Definition: abs.hpp:49
dtype floor(dtype inValue) noexcept
Definition: floor.hpp:48
std::uint8_t uint8
Definition: Types.hpp:42