Skip to content

File FieldOfView.hpp

File List > astrea > trace > trace > platforms > sensors > fov > FieldOfView.hpp

Go to the documentation of this file

#pragma once

#include <numbers>
#include <unordered_map>

#include <units/units.hpp>

#include <astro/astro.fwd.hpp>
#include <astro/frames/dynamic_frames.hpp>

namespace astrea {
namespace trace {

Angle calculate_angle_between_vectors(
    const astro::CartesianVector<Distance, astro::frames::earth::icrf>& vector1,
    const astro::CartesianVector<Distance, astro::frames::earth::icrf>& vector2
);

class FieldOfView {
  public:
    FieldOfView() = default;

    ~FieldOfView() = default;

    virtual bool contains(
        const astro::CartesianVector<Distance, astro::frames::earth::icrf>& boresight,
        const astro::CartesianVector<Distance, astro::frames::earth::icrf>& target
    ) const = 0;
};

} // namespace trace
} // namespace astrea