isce3  0.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
Public Types | Public Member Functions | Public Attributes | List of all members
isce3::cuda::core::ProjectionBase Struct Referenceabstract

Abstract base class for individual projections. More...

#include <gpuProjections.h>

Inheritance diagram for isce3::cuda::core::ProjectionBase:
isce3::cuda::core::CEA isce3::cuda::core::Geocent isce3::cuda::core::LonLat isce3::cuda::core::PolarStereo isce3::cuda::core::UTM

Public Types

typedef isce3::core::Vec3 Vec3
 

Public Member Functions

CUDA_HOSTDEV ProjectionBase (int code)
 Value constructor with EPSG code as input. More...
 
CUDA_HOST int forward_h (const Vec3 &llh, Vec3 &xyz) const
 Host function for transforming from LLH. More...
 
virtual CUDA_DEV int forward (const Vec3 &llh, Vec3 &xyz) const =0
 Device function for transform from LLH. More...
 
CUDA_HOST int inverse_h (const Vec3 &xyz, Vec3 &llh) const
 Host function for transforming to LLH. More...
 
virtual CUDA_DEV int inverse (const Vec3 &xyz, Vec3 &llh) const =0
 Device function for tranforming to LLH. More...
 

Public Attributes

isce3::core::Ellipsoid ellipse
 Ellipsoid object for projections - currently only WGS84.
 
int _epsgcode
 Type of projection system. More...
 

Detailed Description

Abstract base class for individual projections.

Internally, every derived class is expected to provide two functions. forward - To convert llh (radians) to expected projection system inverse - To convert expected projection system to llh (radians)

Constructor & Destructor Documentation

CUDA_HOSTDEV isce3::cuda::core::ProjectionBase::ProjectionBase ( int  code)
inline

Value constructor with EPSG code as input.

Ellipsoid is always initialized to standard WGS84 ellipse.

Member Function Documentation

virtual CUDA_DEV int isce3::cuda::core::ProjectionBase::forward ( const Vec3 llh,
Vec3 xyz 
) const
pure virtual

Device function for transform from LLH.

Parameters
[in]llhLon/Lat/Height - Lon and Lat are in radians
[out]xyzCoordinates in specified coordinate system

Implemented in isce3::cuda::core::CEA, isce3::cuda::core::PolarStereo, isce3::cuda::core::UTM, isce3::cuda::core::Geocent, and isce3::cuda::core::LonLat.

CUDA_HOST int isce3::cuda::core::ProjectionBase::forward_h ( const Vec3 llh,
Vec3 xyz 
) const

Host function for transforming from LLH.

This is similar to fwd or fwd3d in PROJ.4

Parameters
[in]llhLon/Lat/Height - Lon and Lat are in radians
[out]xyzCoordinates in specified projection system
virtual CUDA_DEV int isce3::cuda::core::ProjectionBase::inverse ( const Vec3 xyz,
Vec3 llh 
) const
pure virtual

Device function for tranforming to LLH.

Parameters
[in]xyzCoordinates in specified projection system
[out]llhLon/Lat/Height - Lon and Lat are in radians

Implemented in isce3::cuda::core::CEA, isce3::cuda::core::PolarStereo, isce3::cuda::core::UTM, isce3::cuda::core::Geocent, and isce3::cuda::core::LonLat.

CUDA_HOST int isce3::cuda::core::ProjectionBase::inverse_h ( const Vec3 xyz,
Vec3 llh 
) const

Host function for transforming to LLH.

This is similar to inv or inv3d in PROJ.4

Parameters
[in]xyzCoordinates in specified projection system
[out]llhLon/Lat/Height - Lon and Lat are in radians

Member Data Documentation

int isce3::cuda::core::ProjectionBase::_epsgcode

Type of projection system.

This can be used to check if projection systems are equal Private member and should not be modified after initialization


The documentation for this struct was generated from the following file:

Generated for ISCE3.0 by doxygen 1.8.5.