26 #ifndef __TERRALIB_GEOMETRY_INTERNAL_GEOMETRICTRANSFORMATION_H
27 #define __TERRALIB_GEOMETRY_INTERNAL_GEOMETRICTRANSFORMATION_H
37 #include <boost/noncopyable.hpp>
70 virtual const std::string& getName()
const = 0;
79 virtual bool isValid(
const GTParameters& params)
const = 0;
88 return isValid(m_internalParameters);
107 return m_internalParameters;
123 double& pt2Y)
const = 0;
138 assert(isValid(m_internalParameters));
140 directMap(m_internalParameters, pt1X, pt1Y, pt2X, pt2Y);
152 directMap(params, pt1.
x, pt1.
y, pt2.
x, pt2.
y);
163 assert(isValid(m_internalParameters));
165 directMap(m_internalParameters, pt1.
x, pt1.
y, pt2.
x, pt2.
y);
181 double& pt1Y)
const = 0;
196 assert(isValid(m_internalParameters));
198 inverseMap(m_internalParameters, pt2X, pt2Y, pt1X, pt1Y);
210 inverseMap(params, pt2.
x, pt2.
y, pt1.
x, pt1.
y);
221 assert(isValid(m_internalParameters));
223 inverseMap(m_internalParameters, pt2.
x, pt2.
y, pt1.
x, pt1.
y);
233 double getMaxDirectMappingError(
const GTParameters& params)
const;
242 return getMaxDirectMappingError(m_internalParameters);
252 double getMaxInverseMappingError(
const GTParameters& params)
const;
261 return getMaxInverseMappingError( m_internalParameters );
273 double getDirectMapRMSE(
const std::vector< GTParameters::TiePoint >& tiePoints,
285 return getDirectMapRMSE( params.
m_tiePoints, params );
297 return getDirectMapRMSE( tiePoints, m_internalParameters );
307 return getDirectMapRMSE( m_internalParameters );
319 double getInverseMapRMSE(
const std::vector< GTParameters::TiePoint >& tiePoints,
331 return getInverseMapRMSE( params.
m_tiePoints, params );
343 return getInverseMapRMSE( tiePoints, m_internalParameters );
353 return getInverseMapRMSE( m_internalParameters );
376 return getDirectMappingError( tiePoint, m_internalParameters );
399 return getInverseMappingError( tiePoint, m_internalParameters );
407 virtual unsigned int getMinRequiredTiePoints()
const = 0;
428 virtual bool computeParameters(
GTParameters& params )
const = 0;
438 #endif // __TERRALIB_GEOMETRY_INTERNAL_GEOMETRICTRANSFORMATION_H
double getDirectMapRMSE(const std::vector< GTParameters::TiePoint > &tiePoints) const
Calculates root mean square direct mapping error for the supplied tie-points.
void inverseMap(const Coord2D &pt2, Coord2D &pt1) const
Inverse mapping (from pt2 space into pt1 space).
#define TEGEOMEXPORT
You can use this macro in order to export/import classes and functions from this module.
void inverseMap(const GTParameters ¶ms, const Coord2D &pt2, Coord2D &pt1) const
Inverse mapping ( from pt2 space into pt1 space ).
double getInverseMapRMSE(const GTParameters ¶ms) const
Calculates root mean square inverse mapping error for the supplied parameters.
double getDirectMapRMSE() const
Calculates root mean square direct mapping error.
void inverseMap(const double &pt2X, const double &pt2Y, double &pt1X, double &pt1Y) const
Inverse mapping (from pt2 space into pt1 space).
double getMaxInverseMappingError() const
Calculates the current transformation maximum inverse mapping error.
double getDirectMapRMSE(const GTParameters ¶ms) const
Calculates root mean square direct mapping error for the supplied parameters.
An utility struct for representing 2D coordinates.
2D Geometric transformation parameters.
bool isValid() const
Tells if the current instance has a valid transformation.
2D Geometric transformation tie-points filter (outliers remotion).
std::vector< TiePoint > m_tiePoints
Tie points.
double getInverseMappingError(const GTParameters::TiePoint &tiePoint) const
Calculates the inverse mapping error for the supplied tie-point.
const GTParameters & getParameters() const
Returns a reference of the current internal transformation parameters.
GTParameters m_internalParameters
The current internal parameters.
double getMaxDirectMappingError() const
Calculates the current transformation maximum direct mapping error.
Configuration flags for the Vector Geometry Model of TerraLib.
void directMap(const Coord2D &pt1, Coord2D &pt2) const
Direct mapping (from pt1 space into pt2 space).
2D Geometric transformation base class.
double getInverseMapRMSE() const
Calculates root mean square inverse mapping error.
double getInverseMapRMSE(const std::vector< GTParameters::TiePoint > &tiePoints) const
Calculates root mean square inverse mapping error for the supplied tie-points.
2D Geometric transformation parameters.
std::pair< Coord2D, Coord2D > TiePoint
Tie point type definition.
void directMap(const double &pt1X, const double &pt1Y, double &pt2X, double &pt2Y) const
Direct mapping ( from pt1 space into pt2 space ).
double getDirectMappingError(const GTParameters::TiePoint &tiePoint) const
Calculates the direct mapping error for the supplied tie-point.
void directMap(const GTParameters ¶ms, const Coord2D &pt1, Coord2D &pt2) const
Direct mapping (from pt1 space into pt2 space).