#pragma once #include "minivec.hh" #include int ephAge(int tow, int t0e); template void getCoordinates(int wn, double tow, const T& iod, Point* p, bool quiet=true) { using namespace std; // here goes const double mu = iod.getMu(); const double omegaE = iod.getOmegaE(); const double sqrtA = iod.getSqrtA(); const double deltan = iod.getDeltan(); const double t0e = iod.getT0e(); const double m0 = iod.getM0(); const double e = iod.getE(); const double omega = iod.getOmega(); const double cuc = iod.getCuc(); const double cus = iod.getCus(); const double crc = iod.getCrc(); const double crs = iod.getCrs(); const double cic = iod.getCic(); const double cis = iod.getCis(); const double idot = iod.getIdot(); const double i0 = iod.getI0(); const double Omegadot = iod.getOmegadot(); const double Omega0 = iod.getOmega0(); // NO IOD BEYOND THIS POINT! if(!quiet) { auto todeg = [](double rad) { return 360 * rad/(2*M_PI); }; cerr << "sqrtA = "<< sqrtA << endl; cerr << "deltan = "<< deltan << endl; cerr << "t0e = "<< t0e << endl; cerr << "m0 = "<< m0 << " ("<x = xprime * cos(Omega) - yprime * cos(i) * sin(Omega); p->y = xprime * sin(Omega) + yprime * cos(i) * cos(Omega); p->z = yprime * sin(i); if(!quiet) { Point core(0.0, .0, .0); Vector radius(core, *p); cerr << radius.length() << " calculated r "<