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.0;
82 seconds_ = (decMinutes -
static_cast<double>(minutes_)) * 60.0;
95 degreesWhole_(inDegrees),
100 static_cast<double>(degreesWhole_) +
static_cast<double>(minutes_) / 60.0 + seconds_ / 3600.0;
143 return degreesWhole_;
174 std::string out =
"Dec dms: " + strSign +
utils::num2str(degreesWhole_) +
" degrees, " +
209 return !(*
this == inRhs);
222 inStream << inDec.
str();
229 uint8 degreesWhole_{ 0 };
231 double seconds_{ 0.0 };
232 double degrees_{ 0.0 };
233 double radians_{ 0.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:161
bool operator==(const Dec &inRhs) const noexcept
Definition: Dec.hpp:195
bool operator!=(const Dec &inRhs) const noexcept
Definition: Dec.hpp:207
Dec(double inDegrees)
Definition: Dec.hpp:67
friend std::ostream & operator<<(std::ostream &inStream, const Dec &inDec)
Definition: Dec.hpp:220
std::string str() const
Definition: Dec.hpp:171
void print() const
Definition: Dec.hpp:183
uint8 degreesWhole() const noexcept
Definition: Dec.hpp:141
Sign sign() const noexcept
Definition: Dec.hpp:111
double degrees() const noexcept
Definition: Dec.hpp:121
uint8 minutes() const noexcept
Definition: Dec.hpp:151
Dec(Sign inSign, uint8 inDegrees, uint8 inMinutes, double inSeconds) noexcept
Definition: Dec.hpp:93
double radians() const noexcept
Definition: Dec.hpp:131
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