71 lines
2.2 KiB
C++
71 lines
2.2 KiB
C++
#include <iostream>
|
|
|
|
#include <mcc_coordinate.h>
|
|
#include <mcc_pzone.h>
|
|
#include <mcc_pzone_container.h>
|
|
|
|
using namespace mcc::impl;
|
|
|
|
typedef MccAltLimitPZ<MccAltLimitKind::MIN_ALT_LIMIT> pz_minalt_t;
|
|
typedef MccAltLimitPZ<MccAltLimitKind::MAX_ALT_LIMIT> 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<bool> 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;
|
|
}
|