Program Listing for File occultation.h¶
↰ Return to documentation for file (include/lupnt/physics/occultation.h
)
#pragma once
#include <cmath>
#include <map>
#include "lupnt/core/constants.h"
#include "lupnt/numerics/math_utils.h"
#include "lupnt/physics/frame_converter.h"
#pragma once
namespace lupnt {
class Occultation {
private:
static constexpr double min_elevation_ = 10.0 * RAD;
static constexpr double r_atmos_ = R_EARTH + 100.0; // atmospheric mask
static constexpr double r_ionos_ = R_EARTH + 965.0; // ionospheric mask
public:
static std::map<std::string, bool> ComputeOccultationGnss(const Vec3d tx_eci,
const Vec3d tx_mci,
const Vec3d rx_eci,
const Vec3d rx_mci,
const std::string tx_planet);
static std::map<std::string, bool> ComputeOccultation(Real epoch, const Vec3& r1,
const Vec3& r2, Frame cs1, Frame cs2,
const std::vector<NaifId>& bodies,
const VecXd& atm_h);
static std::vector<std::map<std::string, bool>> ComputeOccultation(
Real epoch, const Mat<-1, 3>& r1, const Mat<-1, 3>& r2, Frame cs1, Frame cs2,
const std::vector<NaifId>& bodies, const VecXd& atm_h);
static std::vector<std::map<std::string, bool>> ComputeOccultation(
const VecX& epoch, const Mat<-1, 3>& r1, const Mat<-1, 3>& r2, Frame cs1, Frame cs2,
const std::vector<NaifId>& bodies, const VecXd& atm_h);
};
} // namespace lupnt