ITrafo Class Referenceabstract

Interface for generic geometry object coordinate transformation. More...

#include "Transformation.hpp"

+ Inheritance diagram for ITrafo:

Public Member Functions

virtual int trafoDim () const =0
 returns the dimension of transformation. This info helps to optimize the actual transformation process of the geometry objects More...
 
virtual bool usedChunkedTrafo () const =0
 returns flag if the chunked transform function should be use the chunked transformation may results in high performance
 
virtual void transform (double &x, double &y, double &z, bool inv=false) const =0
 performs single point coordinate transformation (mandatory interface) please note that coordinates must not be changed if not effected by the transformation More...
 
virtual void transform (size_t count, double *x, double *y, double *z, bool inv=false) const =0
 performs chunked coordinate transformation (optional interface) please note that coordinates must not be changed if not effected by the transformation More...
 
- Public Member Functions inherited from ObjectBase
virtual void Delete ()
 

Static Public Member Functions

static ITrafoNew (const char *sourceCRS, const char *targetCRS, LogFn logFn=0)
 
static ITrafoNew (const char *sourceCRS, const char *targetCRS, const char *dbPath, LogFn logFn=0)
 

Detailed Description

Interface for generic geometry object coordinate transformation.

Member Function Documentation

◆ trafoDim()

virtual int trafoDim ( ) const
pure virtual

returns the dimension of transformation. This info helps to optimize the actual transformation process of the geometry objects

Returns
1 if only z values are changed
2 for 2d transformations
3 if all coordinate values may be changed

◆ transform() [1/2]

virtual void transform ( double &  x,
double &  y,
double &  z,
bool  inv = false 
) const
pure virtual

performs single point coordinate transformation (mandatory interface) please note that coordinates must not be changed if not effected by the transformation

Parameters
[in,out]xx-coordinate
[in,out]yy-coordinate
[in,out]zz-coordinate
[in]invinversion flag if transformation should be inverted

◆ transform() [2/2]

virtual void transform ( size_t  count,
double *  x,
double *  y,
double *  z,
bool  inv = false 
) const
pure virtual

performs chunked coordinate transformation (optional interface) please note that coordinates must not be changed if not effected by the transformation

Parameters
[in]countnumber of points
[in,out]xx-coordinate array
[in,out]yy-coordinate array
[in,out]zz-coordinate array
[in]invinversion flag if transformation should be inverted