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
std::vector< TiePoint > m_tiePoints
Tie points.
2D Geometric transformation parameters.
An utility struct for representing 2D coordinates.
std::pair< Coord2D, Coord2D > TiePoint
Tie point type definition.
2D Geometric transformation tie-points filter (outliers remotion).
#define TEGEOMEXPORT
You can use this macro in order to export/import classes and functions from this module.
2D Geometric transformation parameters.
Configuration flags for the Vector Geometry Model of TerraLib.