.. _program_listing_file_measurements_antenna.h: Program Listing for File antenna.h ================================== |exhale_lsh| :ref:`Return to documentation for file ` (``measurements/antenna.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include #include "lupnt/core/definitions.h" #include "lupnt/numerics/vector_macros.h" namespace lupnt { class Antenna { public: Antenna() = default; Antenna(const std::string& name) : name_(name) { LoadAntennaPattern(); }; void LoadAntennaPattern(); Real ComputeGain(Real theta, Real phi) const; VEC_DEF_REAL_REAL(ComputeGain) std::string GetName() { return name_; } Real ComputeGain(const Vec3& direction) const; MatXd GetGainMatrix() { return gain_; } VecXd GetPhiVector() { return phi_; } VecXd GetThetaVector() { return theta_; } private: int n_dim_; // Number of dimensions (1 or 2) std::string name_; // Name (e.g., Block-IIR_ACE) double phi_max_; // Minimum phiation angle [deg] MatXd gain_; // Gain pattern [dB] VecXd phi_; // Phi angles [deg] VecXd theta_; // Theta angles [deg] void FormatAntennaPattern(std::vector& phi, std::vector& theta, std::vector>& gain); }; } // namespace lupnt