isce3 0.25.0
Loading...
Searching...
No Matches
Frame.h
1// Antenna frame for Spherical grid
2#pragma once
3
4#include <algorithm>
5#include <cmath>
6#include <string>
7#include <vector>
8
9#include <Eigen/Dense>
10
11#include <isce3/core/Vector.h>
12
13#include "SphGridType.h"
14
15namespace isce3 { namespace antenna {
16
21class Frame {
22public:
23 // type aliases
24 using Vec3_t = isce3::core::Vec3;
25 using Vec2_t = isce3::core::Vector<2>;
26
31 Frame() = default;
32
37 constexpr Frame(const SphGridType& grid_type) : _grid_type(grid_type) {}
38
47 explicit Frame(const std::string& grid_str)
48 : _grid_type(gridTypeFromStr(grid_str))
49 {}
50
56 constexpr SphGridType gridType() const { return _grid_type; }
57
67 Vec3_t sphToCart(double el_theta, double az_phi) const;
68
80 std::vector<Vec3_t> sphToCart(const std::vector<double>& el_theta,
81 const std::vector<double>& az_phi) const;
82
94 std::vector<Vec3_t> sphToCart(
95 const std::vector<double>& el_theta, double az_phi) const;
96
107 std::vector<Vec3_t> sphToCart(
108 double el_theta, const std::vector<double>& az_phi) const;
109
118 Vec2_t cartToSph(Vec3_t vec) const;
119
129 std::vector<Vec2_t> cartToSph(std::vector<Vec3_t> vec) const;
130
131private:
132 SphGridType _grid_type {SphGridType::EL_AND_AZ};
133};
134
141bool operator==(const Frame& lhs, const Frame& rhs);
142
149bool operator!=(const Frame& lhs, const Frame& rhs);
150
151}} // namespace isce3::antenna
152
153#include "Frame.icc"
constexpr SphGridType gridType() const
Get grid type enum value.
Definition Frame.h:56
Vec2_t cartToSph(Vec3_t vec) const
Convert from cartesian into spherical coordinate with unit radius.
Definition Frame.icc:79
constexpr Frame(const SphGridType &grid_type)
Constructor from enum Spherical Grid type.
Definition Frame.h:37
Vec3_t sphToCart(double el_theta, double az_phi) const
Convert from spherical coordinate with unit radius into cartesian.
Definition Frame.icc:3
Frame(const std::string &grid_str)
Constructor from a string grid type.
Definition Frame.h:47
Frame()=default
Default empty Constructor.
Definition Vector.h:14
base interpolator is an abstract base class
Definition BinarySearchFunc.cpp:5

Generated for ISCE3.0 by doxygen 1.13.2.