diff --git a/include/mcc/mcc_angle.h b/include/mcc/mcc_angle.h index 4d9d056..53cdfb2 100644 --- a/include/mcc/mcc_angle.h +++ b/include/mcc/mcc_angle.h @@ -477,88 +477,102 @@ std::string MccAngleFancyString(std::convertible_to auto const& ang, /* HELPER TYPES TO REPERESENT ANGLES ON THE CELESTIAL SPHERE */ template -class MccCelestialAngle : public MccAngle +class MccNormalizedAngle : public MccAngle { public: template - MccCelestialAngle(CtorArgTs&&... args) : MccAngle(std::forward(args)...) + MccNormalizedAngle(CtorArgTs&&... args) : MccAngle(std::forward(args)...) { normalize(); } - MccCelestialAngle(MccCelestialAngle const&) = default; - MccCelestialAngle(MccCelestialAngle&&) = default; + MccNormalizedAngle(MccNormalizedAngle const&) = default; + MccNormalizedAngle(MccNormalizedAngle&&) = default; - MccCelestialAngle& operator=(MccCelestialAngle const&) = default; - MccCelestialAngle& operator=(MccCelestialAngle&&) = default; + MccNormalizedAngle& operator=(MccNormalizedAngle const&) = default; + MccNormalizedAngle& operator=(MccNormalizedAngle&&) = default; }; -class MccAngleRA_ICRS : public MccCelestialAngle +class MccAngleRA_ICRS : public MccNormalizedAngle { public: - using MccCelestialAngle::MccCelestialAngle; + using MccNormalizedAngle::MccNormalizedAngle; }; -class MccAngleDEC_ICRS : public MccCelestialAngle +class MccAngleDEC_ICRS : public MccNormalizedAngle { public: - using MccCelestialAngle::MccCelestialAngle; + using MccNormalizedAngle::MccNormalizedAngle; }; -class MccAngleRA_APP : public MccCelestialAngle +class MccAngleRA_APP : public MccNormalizedAngle { public: - using MccCelestialAngle::MccCelestialAngle; + using MccNormalizedAngle::MccNormalizedAngle; }; -class MccAngleDEC_APP : public MccCelestialAngle +class MccAngleDEC_APP : public MccNormalizedAngle { public: - using MccCelestialAngle::MccCelestialAngle; + using MccNormalizedAngle::MccNormalizedAngle; }; -class MccAngleRA_OBS : public MccCelestialAngle +class MccAngleRA_OBS : public MccNormalizedAngle { public: - using MccCelestialAngle::MccCelestialAngle; + using MccNormalizedAngle::MccNormalizedAngle; }; -class MccAngleDEC_OBS : public MccCelestialAngle +class MccAngleDEC_OBS : public MccNormalizedAngle { public: - using MccCelestialAngle::MccCelestialAngle; + using MccNormalizedAngle::MccNormalizedAngle; }; -class MccAngleHA_APP : public MccCelestialAngle +class MccAngleHA_APP : public MccNormalizedAngle { public: - using MccCelestialAngle::MccCelestialAngle; + using MccNormalizedAngle::MccNormalizedAngle; }; -class MccAngleHA_OBS : public MccCelestialAngle +class MccAngleHA_OBS : public MccNormalizedAngle { public: - using MccCelestialAngle::MccCelestialAngle; + using MccNormalizedAngle::MccNormalizedAngle; }; -class MccAngleAZ : public MccCelestialAngle +class MccAngleAZ : public MccNormalizedAngle { public: - using MccCelestialAngle::MccCelestialAngle; + using MccNormalizedAngle::MccNormalizedAngle; }; -class MccAngleZD : public MccCelestialAngle +class MccAngleZD : public MccNormalizedAngle { public: - using MccCelestialAngle::MccCelestialAngle; + using MccNormalizedAngle::MccNormalizedAngle; }; -class MccAngleALT : public MccCelestialAngle +class MccAngleALT : public MccNormalizedAngle { public: - using MccCelestialAngle::MccCelestialAngle; + using MccNormalizedAngle::MccNormalizedAngle; +}; + + +class MccAngleLON : public MccNormalizedAngle +{ +public: + using MccNormalizedAngle::MccNormalizedAngle; +}; + + +class MccAngleLAT : public MccNormalizedAngle +{ +public: + using MccNormalizedAngle::MccNormalizedAngle; }; @@ -676,17 +690,17 @@ public: -class MccAngleLAT : public MccAngle -{ -public: - using MccAngle::MccAngle; -}; +// class MccAngleLAT : public MccAngle +// { +// public: +// using MccAngle::MccAngle; +// }; -class MccAngleLON : public MccAngle -{ -public: - using MccAngle::MccAngle; -}; +// class MccAngleLON : public MccAngle +// { +// public: +// using MccAngle::MccAngle; +// }; class MccAngleUnknown : public MccAngle { diff --git a/include/mcc/mcc_coordinate.h b/include/mcc/mcc_coordinate.h index 85fa3f9..6a061a4 100644 --- a/include/mcc/mcc_coordinate.h +++ b/include/mcc/mcc_coordinate.h @@ -69,7 +69,7 @@ public: template MccCoordPair(CO_LON_T const& x, CO_LAT_T const& y, EpT const& epoch = EpT::now()) : _x(x), _y(y), _epoch(epoch) { - normalize(); + // normalize(); } MccCoordPair(const MccCoordPair&) = default; @@ -87,7 +87,9 @@ public: setY((double)other.y()); setEpoch(other.epoch()); - normalize(); + if constexpr (T::pairKind != pairKind) { + normalize(); + } } @@ -100,7 +102,9 @@ public: setY((double)other.y()); setEpoch(other.epoch()); - normalize(); + if constexpr (T::pairKind != pairKind) { + normalize(); + } } @@ -113,7 +117,9 @@ public: setY((double)other.y()); setEpoch(other.epoch()); - normalize(); + if constexpr (T::pairKind != pairKind) { + normalize(); + } } @@ -126,7 +132,9 @@ public: setY((double)other.y()); setEpoch(other.epoch()); - normalize(); + if constexpr (T::pairKind != pairKind) { + normalize(); + } } @@ -171,14 +179,14 @@ public: { _x = x; - normalize(); + // normalize(); } void setY(const CO_LAT_T& y) { _y = y; - normalize(); + // normalize(); } void setEpoch(mcc_coord_epoch_c auto const& ep) @@ -194,6 +202,9 @@ protected: void normalize() { + _x = CO_LON_T{_x}; + _y = CO_LAT_T{_y}; + /* if constexpr (pairKind != MccCoordPairKind::COORDS_KIND_GENERIC && pairKind != MccCoordPairKind::COORDS_KIND_XY) { // if constexpr (pairKind == MccCoordPairKind::COORDS_KIND_HADEC_APP || @@ -216,6 +227,7 @@ protected: _y = (double)MccAngle(_y).normalize(); } } + */ } };