9#include "../centers.hpp"
10#include "../ffi_core.hpp"
11#include "../frames.hpp"
13#include <qtty/qtty.hpp>
17template <
typename C,
typename F,
typename U>
34 :
lon(qtty::Degree(0)),
lat(qtty::Degree(0)),
height(qtty::Meter(0)) {}
36 Geodetic(qtty::Degree lon_, qtty::Degree lat_, qtty::Meter h = qtty::Meter(0))
40 Geodetic(
double lon_deg,
double lat_deg,
double height_m = 0.0)
41 :
lon(qtty::Degree(lon_deg)),
lat(qtty::Degree(lat_deg)),
42 height(qtty::Meter(height_m)) {}
45 siderust_geodetic_t
to_c()
const {
51 return Geodetic(c.lon_deg, c.lat_deg, c.height_m);
59 template <
typename U = qtty::Meter>
Geodetic position (WGS84 ellipsoid).
qtty::Degree lon
Longitude (east positive).
cartesian::Position< centers::Geocentric, frames::ECEF, U > to_cartesian() const
Convert geodetic (WGS84/ECEF) to cartesian position.
Geodetic(qtty::Degree lon_, qtty::Degree lat_, qtty::Meter h=qtty::Meter(0))
qtty::Degree lat
Latitude (north positive).
Geodetic(double lon_deg, double lat_deg, double height_m=0.0)
Raw-double convenience constructor (degrees, metres).
qtty::Meter height
Height above ellipsoid.
siderust_geodetic_t to_c() const
Convert to C FFI struct.
static Geodetic from_c(const siderust_geodetic_t &c)
Create from C FFI struct.
A 3D Cartesian position, compile-time tagged by center, frame, unit.