#include #include #include #include using namespace mcc::impl; typedef MccAltLimitPZ pz_minalt_t; typedef MccAltLimitPZ pz_maxalt_t; static MccSkyPoint::ccte_t::engine_state_t saoras{.meteo{.temperature = 0.0, .humidity = 0.5, .pressure = 1010.0}, .wavelength = 0.5, .lat = 43.646711_degs, .lon = 41.440732_degs, .elev = 2100.0}; int main() { MccSkyPoint::cctEngine.setStateERFA(saoras); pz_minalt_t MinAltPZ(10.0_degs, 43.646711_degs); pz_maxalt_t MaxAltPZ(85.0_degs, 43.646711_degs); MccPZoneContainer cont; cont.addPZone(MinAltPZ); auto sz = cont.addPZone(MaxAltPZ); std::cout << sz << " pzones were added\n"; MccSkyPoint sp; MccAngleAZ az = 125.1_degs; MccAngleZD zd = 4.2_degs; sp.from(MccSkyAZZD{az, zd}); std::vector inzone; bool flag; std::cout << "Sky point AZ-ZD: [" << az.degrees() << ", " << zd.degrees() << "]\n"; auto err = cont.inPZone(sp, &flag, &inzone); if (!err) { std::cout << "Check 'in zone' flag: common flag = " << std::boolalpha << flag << " :\n"; for (int i = 0; i < sz; ++i) { std::cout << "\t" << i + 1 << "-th pzone: " << std::boolalpha << inzone[i] << "\n"; } } else { std::cout << "ERR: " << err.message() << "\n"; } std::cout << "\n\n"; // inzone.clear(); zd = 82.4356_degs; sp.from(MccSkyAZZD{az, zd}); std::cout << "Sky point AZ-ZD: [" << az.degrees() << ", " << zd.degrees() << "]\n"; err = cont.inPZone(sp, &flag, &inzone); if (!err) { std::cout << "Check 'in zone' flag: common flag = " << std::boolalpha << flag << " :\n"; for (int i = 0; i < sz; ++i) { std::cout << "\t" << i + 1 << "-th pzone: " << std::boolalpha << inzone[i] << "\n"; } } else { std::cout << "ERR: " << err.message() << "\n"; } return 0; }