65 explicit Dec(
double inDegrees) :
69 if (inDegrees < -90 || inDegrees > 90)
75 const double absDegrees =
std::abs(degrees_);
78 const double decMinutes = (absDegrees -
static_cast<double>(degreesWhole_)) * 60.;
80 seconds_ = (decMinutes -
static_cast<double>(minutes_)) * 60.;
93 degreesWhole_(inDegrees),
97 degrees_ =
static_cast<double>(degreesWhole_) +
static_cast<double>(minutes_) / 60. + seconds_ / 3600.;
140 return degreesWhole_;
168 [[nodiscard]] std::string
str()
const
171 std::string out =
"Dec dms: " + strSign +
utils::num2str(degreesWhole_) +
" degrees, " +
206 return !(*
this == inRhs);
219 inStream << inDec.
str();
226 uint8 degreesWhole_{ 0 };
228 double seconds_{ 0. };
229 double degrees_{ 0. };
230 double radians_{ 0. };
#define THROW_INVALID_ARGUMENT_ERROR(msg)
Definition: Error.hpp:37
Holds a Declination object.
Definition: Dec.hpp:53
double seconds() const noexcept
Definition: Dec.hpp:158
bool operator==(const Dec &inRhs) const noexcept
Definition: Dec.hpp:192
bool operator!=(const Dec &inRhs) const noexcept
Definition: Dec.hpp:204
Dec(double inDegrees)
Definition: Dec.hpp:65
friend std::ostream & operator<<(std::ostream &inStream, const Dec &inDec)
Definition: Dec.hpp:217
std::string str() const
Definition: Dec.hpp:168
void print() const
Definition: Dec.hpp:180
uint8 degreesWhole() const noexcept
Definition: Dec.hpp:138
Sign sign() const noexcept
Definition: Dec.hpp:108
double degrees() const noexcept
Definition: Dec.hpp:118
uint8 minutes() const noexcept
Definition: Dec.hpp:148
Dec(Sign inSign, uint8 inDegrees, uint8 inMinutes, double inSeconds) noexcept
Definition: Dec.hpp:91
double radians() const noexcept
Definition: Dec.hpp:128
Definition: Coordinate.hpp:45
Sign
Struct Enum for positive or negative Dec angle.
Definition: Dec.hpp:45
std::string num2str(dtype inNumber)
Definition: num2str.hpp:44
bool essentiallyEqual(dtype inValue1, dtype inValue2) noexcept
Definition: essentiallyEqual.hpp:48
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