LuciadCPillar 2024.0.04
luciad::Transformation Class Referenceabstract

Provides transformations between a source and a target coordinate reference. More...

#include <luciad/geodesy/Transformation.h>

Public Member Functions

virtual ~Transformation ()=default
 
virtual const std::shared_ptr< CoordinateReference > & getSourceReference () const =0
 Returns the source coordinate reference. More...
 
virtual const std::shared_ptr< CoordinateReference > & getTargetReference () const =0
 Returns the target coordinate reference. More...
 
virtual bool isIdentity () const =0
 Returns whether this transformation is an identity transformation, i.e. More...
 
virtual std::optional< Boundstransform (const Bounds &bounds) const =0
 Transforms the bounds from the source reference to the target reference. More...
 
virtual std::optional< Coordinatetransform (const Coordinate &point) const =0
 Transforms a point from the source reference to the target reference. More...
 
virtual std::optional< Pointtransform (const Point &point) const =0
 Transforms a point from the source reference to the target reference. More...
 

Static Public Member Functions

static std::shared_ptr< Transformationcreate (std::shared_ptr< CoordinateReference > source, std::shared_ptr< CoordinateReference > target)
 Creates a transformation for the given references. More...
 

Detailed Description

Provides transformations between a source and a target coordinate reference.

Constructor & Destructor Documentation

◆ ~Transformation()

virtual luciad::Transformation::~Transformation ( )
virtualdefault

Member Function Documentation

◆ create()

static std::shared_ptr< Transformation > luciad::Transformation::create ( std::shared_ptr< CoordinateReference source,
std::shared_ptr< CoordinateReference target 
)
static

Creates a transformation for the given references.

Parameters
sourceSource coordinate reference.
targetTarget coordinate reference.
Returns
transformation for the given references.
Exceptions
luciad::InvalidArgumentExceptionwhen no transformation can be set up.

◆ getSourceReference()

virtual const std::shared_ptr< CoordinateReference > & luciad::Transformation::getSourceReference ( ) const
pure virtual

Returns the source coordinate reference.

Returns
the source coordinate reference.

◆ getTargetReference()

virtual const std::shared_ptr< CoordinateReference > & luciad::Transformation::getTargetReference ( ) const
pure virtual

Returns the target coordinate reference.

Returns
the target coordinate reference.

◆ isIdentity()

virtual bool luciad::Transformation::isIdentity ( ) const
pure virtual

Returns whether this transformation is an identity transformation, i.e.

if the output to the transform methods is exactly the same as the input.

Returns
whether this transformation is an identity transformation.
Since
2022.0

◆ transform() [1/3]

virtual std::optional< Bounds > luciad::Transformation::transform ( const Bounds bounds) const
pure virtual

Transforms the bounds from the source reference to the target reference.

Parameters
boundsBounds.
Returns
transformed bounds in the target reference, std::nullopt if the bounds does not exist in the target reference, std::nullopt if the bounds is not defined in the source reference.

◆ transform() [2/3]

virtual std::optional< Coordinate > luciad::Transformation::transform ( const Coordinate point) const
pure virtual

Transforms a point from the source reference to the target reference.

Parameters
pointPoint.
Returns
transformed point in the target reference, std::nullopt if the point does not exist in the target reference.

◆ transform() [3/3]

virtual std::optional< Point > luciad::Transformation::transform ( const Point point) const
pure virtual

Transforms a point from the source reference to the target reference.

Parameters
pointPoint.
Returns
transformed point in the target reference, std::nullopt if the point does not exist in the target reference, std::nullopt if the point is not defined in the source reference