diff --git a/include/mcc/mcc_angle.h b/include/mcc/mcc_angle.h index a15ac1f..4d9d056 100644 --- a/include/mcc/mcc_angle.h +++ b/include/mcc/mcc_angle.h @@ -476,6 +476,93 @@ std::string MccAngleFancyString(std::convertible_to auto const& ang, /* HELPER TYPES TO REPERESENT ANGLES ON THE CELESTIAL SPHERE */ +template +class MccCelestialAngle : public MccAngle +{ +public: + template + MccCelestialAngle(CtorArgTs&&... args) : MccAngle(std::forward(args)...) + { + normalize(); + } + + MccCelestialAngle(MccCelestialAngle const&) = default; + MccCelestialAngle(MccCelestialAngle&&) = default; + + MccCelestialAngle& operator=(MccCelestialAngle const&) = default; + MccCelestialAngle& operator=(MccCelestialAngle&&) = default; +}; + +class MccAngleRA_ICRS : public MccCelestialAngle +{ +public: + using MccCelestialAngle::MccCelestialAngle; +}; + +class MccAngleDEC_ICRS : public MccCelestialAngle +{ +public: + using MccCelestialAngle::MccCelestialAngle; +}; + +class MccAngleRA_APP : public MccCelestialAngle +{ +public: + using MccCelestialAngle::MccCelestialAngle; +}; + +class MccAngleDEC_APP : public MccCelestialAngle +{ +public: + using MccCelestialAngle::MccCelestialAngle; +}; + +class MccAngleRA_OBS : public MccCelestialAngle +{ +public: + using MccCelestialAngle::MccCelestialAngle; +}; + +class MccAngleDEC_OBS : public MccCelestialAngle +{ +public: + using MccCelestialAngle::MccCelestialAngle; +}; + + +class MccAngleHA_APP : public MccCelestialAngle +{ +public: + using MccCelestialAngle::MccCelestialAngle; +}; + +class MccAngleHA_OBS : public MccCelestialAngle +{ +public: + using MccCelestialAngle::MccCelestialAngle; +}; + + +class MccAngleAZ : public MccCelestialAngle +{ +public: + using MccCelestialAngle::MccCelestialAngle; +}; + +class MccAngleZD : public MccCelestialAngle +{ +public: + using MccCelestialAngle::MccCelestialAngle; +}; + +class MccAngleALT : public MccCelestialAngle +{ +public: + using MccCelestialAngle::MccCelestialAngle; +}; + + +/* class MccNamedAngle : public MccAngle { public: @@ -573,7 +660,7 @@ public: using MccNamedAngle::MccNamedAngle; // using MccAngle::MccAngle; }; - +*/ class MccAngleX : public MccAngle // some co-longitude coordinate {