Program Listing for File occultation.h¶
↰ Return to documentation for file (environment/occultation.h)
#pragma once
#include <cmath>
#include <map>
#include "lupnt/conversions/frame_converter.h"
#include "lupnt/core/constants.h"
#include "lupnt/numerics/math_utils.h"
#pragma once
namespace lupnt {
class Occultation {
private:
static constexpr double r_atmos_ = R_EARTH + 100.0e3; // [m] Atmospheric mask
static constexpr double r_ionos_ = R_EARTH + 965.0e3; // [m] Ionospheric mask
public:
static std::map<std::string, bool> ComputeOccultation(
Real epoch, const Vec3& r1, const Vec3& r2, Frame frame1, Frame frame2,
const std::vector<BodyId>& bodies, const VecXd& height_atm, const VecXd& min_elevation,
const bool use_elev_mask1, const bool use_elev_mask2);
static std::vector<std::map<std::string, bool>> ComputeOccultation(
Real epoch, const Mat<-1, 3>& r1, const Mat<-1, 3>& r2, Frame frame1, Frame frame2,
const std::vector<BodyId>& bodies, const VecXd& height_atm, const VecXd& min_elevation,
const bool use_elev_mask1, const bool use_elev_mask2);
static std::vector<std::map<std::string, bool>> ComputeOccultation(
const VecX& epoch, const Mat<-1, 3>& r1, const Mat<-1, 3>& r2, Frame frame1, Frame frame2,
const std::vector<BodyId>& bodies, const VecXd& height_atm, const VecXd& min_elevation,
const bool use_elev_mask1, const bool use_elev_mask2);
};
} // namespace lupnt