12#include <isce3/core/Ellipsoid.h>
13#include <isce3/core/forward.h>
15namespace isce3 {
namespace cuda {
namespace core {
24 typedef isce3::core::Vec3 Vec3;
40 CUDA_HOST
int forward_h(
const Vec3& llh, Vec3& xyz)
const;
46 CUDA_DEV
virtual int forward(
const Vec3& llh, Vec3& xyz)
const = 0;
52 CUDA_HOST
int inverse_h(
const Vec3& xyz, Vec3& llh)
const;
58 CUDA_DEV
virtual int inverse(
const Vec3& xyz, Vec3& llh)
const = 0 ;
66 CUDA_DEV
int forward(
const Vec3&, Vec3&)
const;
68 CUDA_DEV
int inverse(
const Vec3&, Vec3&)
const;
76 CUDA_DEV
int forward(
const Vec3&, Vec3&)
const;
79 CUDA_DEV
int inverse(
const Vec3&, Vec3&)
const;
92 double cgb[6], cbg[6], utg[6], gtu[6];
96 CUDA_HOSTDEV UTM(
int);
99 CUDA_DEV
int forward(
const Vec3&, Vec3&)
const;
102 CUDA_DEV
int inverse(
const Vec3&, Vec3&)
const;
112 double lon0, lat_ts, akm1, e;
116 CUDA_HOSTDEV PolarStereo(
int);
118 CUDA_DEV
int forward(
const Vec3&, Vec3&)
const;
120 CUDA_DEV
int inverse(
const Vec3&, Vec3&)
const;
129 double lat_ts, k0, e, one_es, qp;
135 CUDA_DEV
int forward(
const Vec3&, Vec3&)
const;
138 CUDA_DEV
int inverse(
const Vec3&, Vec3&)
const;
150 CUDA_DEV
int projInverse(
int code,
const double* in,
double* out_llh);
151 CUDA_DEV
int projInverse(
int code,
const isce3::core::Vec3& in, isce3::core::Vec3& out_llh);
Data structure to store Ellipsoid information.
Definition Ellipsoid.h:20
base interpolator is an abstract base class
Definition BinarySearchFunc.cpp:5
CUDA_DEV int forward(const Vec3 &, Vec3 &) const
Transform from llh (rad) to CEA (m)
Definition gpuProjections.cu:423
CUDA_DEV int inverse(const Vec3 &, Vec3 &) const
Transform from CEA (m) to LLH (rad)
Definition gpuProjections.cu:433
CUDA_DEV int forward(const Vec3 &, Vec3 &) const
Same as Ellipsoid::lonLatToXyz.
Definition gpuProjections.cu:130
CUDA_DEV int inverse(const Vec3 &, Vec3 &) const
Same as Ellipsoid::xyzTolonLat.
Definition gpuProjections.cu:139
CUDA_DEV int forward(const Vec3 &, Vec3 &) const
Device function for transform from LLH.
Definition gpuProjections.cu:108
CUDA_DEV int inverse(const Vec3 &, Vec3 &) const
Device function for transforming to LLH.
Definition gpuProjections.cu:119
CUDA_DEV int inverse(const Vec3 &, Vec3 &) const
Transform from Polar Stereo to LLH.
Definition gpuProjections.cu:378
CUDA_DEV int forward(const Vec3 &, Vec3 &) const
Transform from LLH to Polar Stereo.
Definition gpuProjections.cu:363
Abstract base class for individual projections.
Definition gpuProjections.h:23
virtual CUDA_DEV int inverse(const Vec3 &xyz, Vec3 &llh) const =0
Device function for transforming to LLH.
virtual CUDA_DEV int forward(const Vec3 &llh, Vec3 &xyz) const =0
Device function for transform from LLH.
CUDA_HOSTDEV ProjectionBase(int code)
Value constructor with EPSG code as input.
Definition gpuProjections.h:33
CUDA_HOST int forward_h(const Vec3 &llh, Vec3 &xyz) const
Host function for transforming from LLH.
Definition gpuProjections.cu:48
isce3::core::Ellipsoid ellipse
Ellipsoid object for projections - currently only WGS84.
Definition gpuProjections.h:27
CUDA_HOST int inverse_h(const Vec3 &xyz, Vec3 &llh) const
Host function for transforming to LLH.
Definition gpuProjections.cu:79
int _epsgcode
Type of projection system.
Definition gpuProjections.h:30
CUDA_DEV int forward(const Vec3 &, Vec3 &) const
Transform from llh (rad) to UTM (m)
Definition gpuProjections.cu:267
CUDA_DEV int inverse(const Vec3 &, Vec3 &) const
Transform from UTM(m) to llh (rad)
Definition gpuProjections.cu:298