25 #ifndef __TERRALIB_RP_INTERNAL_BLENDER_H
26 #define __TERRALIB_RP_INTERNAL_BLENDER_H
30 #include "../raster/Grid.h"
31 #include "../raster/Raster.h"
32 #include "../raster/Interpolator.h"
33 #include "../geometry/Polygon.h"
34 #include "../geometry/MultiPolygon.h"
35 #include "../geometry/Point.h"
36 #include "../geometry/GeometricTransformation.h"
38 #include <boost/noncopyable.hpp>
60 InvalidBlendMethod = 0,
62 EuclideanDistanceMethod = 2
93 const std::vector< unsigned int >& raster1Bands,
95 const std::vector< unsigned int >& raster2Bands,
96 const BlendMethod& blendMethod,
99 const double& noDataValue,
100 const bool forceInputNoDataValue,
101 const std::vector< double >& pixelOffsets1,
102 const std::vector< double >& pixelScales1,
103 const std::vector< double >& pixelOffsets2,
104 const std::vector< double >& pixelScales2,
119 std::vector< double >& values )
122 (this->*m_blendFuncPtr)( line, col, values );
133 typedef void (
Blender::*BlendFunctPtr)(
const double& line,
134 const double& col, std::vector< double >& values );
198 void noBlendMethodImp(
const double& line1,
const double& col1,
199 std::vector< double >& values );
207 void euclideanDistanceMethodImp(
const double& line1,
const double& col1,
208 std::vector< double >& values );
214 #endif // __TERRALIB_RP_INTERNAL_ALGORITHM_H
std::vector< unsigned int > m_raster1Bands
Input raster 1 band indexes to use.
te::rst::Interpolator * m_interp1
Raster 1 interpolator instance pointer.
#define TERP_DEBUG_TRUE_OR_THROW(value, message)
Checks if value is true and throws an exception if not.
std::vector< double > m_pixelOffsets2
The values offset to be applied to raster 2 pixel values before the blended value calcule (one elemen...
std::vector< std::pair< te::gm::Coord2D, te::gm::Coord2D > > m_r1IntersectionSegmentsPoints
A sub-set of the intersection polygon wich is part of raster 1 valid data polygon ( raster 1 indexed ...
std::vector< unsigned int > m_raster2Bands
Input raster 2 band indexes to use.
double m_euclideanDistanceMethodImp_aux1
Polygon is a subclass of CurvePolygon whose rings are defined by linear rings.
std::size_t m_euclideanDistanceMethodImp_vecIdx
std::vector< double > m_pixelScales2
The values scale to be applied to raster 2 pixel values before the blended value calcule (one element...
std::complex< double > m_euclideanDistanceMethodImp_cValue2
te::rst::Interpolator * m_interp2
Raster 2 interpolator instance pointer.
te::rst::Interpolator::Method m_interpMethod1
The interpolation method to use when reading raster 1 data.
double m_noBlendMethodImp_Point2Col
Blended pixel value calculation for two overlaped rasters.
It interpolates one pixel based on a selected algorithm. Methods currently available are Nearest Neig...
te::gm::GeometricTransformation * m_geomTransformationPtr
A transformation mapping raster 1 pixels ( te::gm::GTParameters::TiePoint::first ) to raster 2 ( te::...
BlendMethod m_blendMethod
The blend method to apply.
void getBlendedValues(const double &line, const double &col, std::vector< double > &values)
Blend a pixel value using the current parameters.
Method
Allowed interpolation methods.
double m_noBlendMethodImp_Point1XProj1
Raster 2 no-data values (on value per band).
std::complex< double > m_euclideanDistanceMethodImp_cValue1
te::rst::Raster const * m_raster1Ptr
Input raster 1.
double m_euclideanDistanceMethodImp_Point2Line
unsigned int m_euclideanDistanceMethodImp_BandIdx
std::vector< double > m_raster1NoDataValues
te::rst::Raster const * m_raster2Ptr
Input raster 2.
double m_euclideanDistanceMethodImp_Point2Col
std::size_t m_r2IntersectionSegmentsPointsSize
Size of m_r2IntersectionSegmentsPoints;.
std::auto_ptr< te::gm::MultiPolygon > m_intersectionPtr
The Intersection geometry ( Multipolygon geometry - raster 1 indexed coods).
A point with x and y coordinate values.
double m_outputNoDataValue
The output raster no-data value.
std::vector< double > m_raster2NoDataValues
Raster 1 no-data values (on value per band).
te::gm::Point m_euclideanDistanceMethodImp_auxPoint
std::size_t m_r1IntersectionSegmentsPointsSize
Size of m_r1IntersectionSegmentsPoints;.
double m_euclideanDistanceMethodImp_currDist
double m_noBlendMethodImp_Value
Configuration flags for the Raster Processing module of TerraLib.
double m_euclideanDistanceMethodImp_aux2
unsigned int m_noBlendMethodImp_BandIdx
2D Geometric transformation base class.
double m_noBlendMethodImp_Point1XProj2
te::rst::Interpolator::Method m_interpMethod2
The interpolation method to use when reading raster 2 data.
std::vector< std::pair< te::gm::Coord2D, te::gm::Coord2D > > m_r2IntersectionSegmentsPoints
A sub-set of the intersection polygon wich is part of raster 2 valid data polygon ( raster 1 indexed ...
std::vector< double > m_pixelOffsets1
The values offset to be applied to raster 1 pixel values before the blended value calcule (one elemen...
An abstract class for raster data strucutures.
double m_noBlendMethodImp_Point1YProj2
double m_euclideanDistanceMethodImp_dist2
double m_noBlendMethodImp_Point1YProj1
std::vector< double > m_pixelScales1
The values scale to be applied to raster 1 pixel values before the blended value calcule (one element...
double m_noBlendMethodImp_Point2Line
BlendFunctPtr m_blendFuncPtr
The current blend function.
std::complex< double > m_noBlendMethodImp_cValue
#define TERPEXPORT
You can use this macro in order to export/import classes and functions from this module.
double m_euclideanDistanceMethodImp_dist1