All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
te::rp::Blender Class Reference

Blended pixel value calculation for two overlaped rasters. More...

#include <Blender.h>

Inheritance diagram for te::rp::Blender:

Classes

class  BlendIntoRaster1ThreadParams
 The parameters passed to blendIntoRaster1Thread method. More...
 
struct  RasterBlockInfo
 Raster block info. More...
 

Public Types

enum  BlendMethod { InvalidBlendMethod = 0, NoBlendMethod = 1, EuclideanDistanceMethod = 2 }
 

Public Member Functions

 Blender ()
 
bool blendIntoRaster1 ()
 Execute blending of the given input rasters and write the result into raster1. More...
 
void getBlendedValues (const double &line, const double &col, double *const values)
 Blend a pixel value using the current parameters. More...
 
bool initialize (te::rst::Raster &raster1, const std::vector< unsigned int > &raster1Bands, const te::rst::Raster &raster2, const std::vector< unsigned int > &raster2Bands, const BlendMethod &blendMethod, const te::rst::Interpolator::Method &interpMethod1, const te::rst::Interpolator::Method &interpMethod2, const double &noDataValue, const bool forceInputNoDataValue, const std::vector< double > &pixelOffsets1, const std::vector< double > &pixelScales1, const std::vector< double > &pixelOffsets2, const std::vector< double > &pixelScales2, te::gm::MultiPolygon const *const r1ValidDataDelimiterPtr, te::gm::MultiPolygon const *const r2ValidDataDelimiterPtr, const te::gm::GeometricTransformation &geomTransformation, const unsigned int threadsNumber, const bool enableProgressInterface)
 Inititate the blender instance. More...
 
 ~Blender ()
 

Protected Types

typedef void(Blender::* BlendFunctPtr )(const double &line, const double &col, double *const values)
 Type definition for the a bleding function pointer. More...
 

Protected Member Functions

void clear ()
 Clear all internal allocated resources. More...
 
void euclideanDistanceMethodImp (const double &line1, const double &col1, double *const values)
 Implementation for EuclideanDistanceMethod. More...
 
void initState ()
 Reset the instance to its initial default state. More...
 
void noBlendMethodImp (const double &line1, const double &col1, double *const values)
 Implementation for NoBlendMethod. More...
 
void setBlendFunctionPonter (const BlendMethod blendMethod)
 Set the value of m_blendFuncPtr following the given blend method. More...
 

Static Protected Member Functions

static void blendIntoRaster1Thread (BlendIntoRaster1ThreadParams *paramsPtr)
 Thread entry for the method blendIntoRaster1. More...
 

Protected Attributes

BlendFunctPtr m_blendFuncPtr
 The current blend function. More...
 
BlendMethod m_blendMethod
 The blend method to apply. More...
 
bool m_enableProgressInterface
 Enable progress interface. More...
 
double m_euclideanDistanceMethodImp_aux1
 
double m_euclideanDistanceMethodImp_aux2
 
te::gm::Point m_euclideanDistanceMethodImp_auxPoint
 
unsigned int m_euclideanDistanceMethodImp_BandIdx
 
double m_euclideanDistanceMethodImp_currDist
 
std::complex< double > m_euclideanDistanceMethodImp_cValue1
 
std::complex< double > m_euclideanDistanceMethodImp_cValue2
 
double m_euclideanDistanceMethodImp_dist1
 
double m_euclideanDistanceMethodImp_dist2
 
double m_euclideanDistanceMethodImp_Point2Col
 
double m_euclideanDistanceMethodImp_Point2Line
 
std::size_t m_euclideanDistanceMethodImp_vecIdx
 
bool m_forceInputNoDataValue
 Use noDataValue as the input rasters no-data value (The original rasters no-data values will be ignored) More...
 
te::gm::GeometricTransformationm_geomTransformationPtr
 A transformation mapping raster 1 pixels ( te::gm::GTParameters::TiePoint::first ) to raster 2 ( te::gm::GTParameters::TiePoint::second ) (Note: all coords are indexed by lines/columns). More...
 
te::rst::Interpolatorm_interp1
 Raster 1 interpolator instance pointer. More...
 
te::rst::Interpolatorm_interp2
 Raster 2 interpolator instance pointer. More...
 
te::rst::Interpolator::Method m_interpMethod1
 The interpolation method to use when reading raster 1 data. More...
 
te::rst::Interpolator::Method m_interpMethod2
 The interpolation method to use when reading raster 2 data. More...
 
std::auto_ptr
< te::gm::MultiPolygon
m_intersectionPtr
 The Intersection geometry ( raster 1 indexed coods). More...
 
unsigned int m_noBlendMethodImp_BandIdx
 
std::complex< double > m_noBlendMethodImp_cValue
 
double m_noBlendMethodImp_Point1XProj1
 Raster 2 no-data values (on value per band). More...
 
double m_noBlendMethodImp_Point1XProj2
 
double m_noBlendMethodImp_Point1YProj1
 
double m_noBlendMethodImp_Point1YProj2
 
double m_noBlendMethodImp_Point2Col
 
double m_noBlendMethodImp_Point2Line
 
double m_noBlendMethodImp_Value
 
double m_outputNoDataValue
 The output raster no-data value. More...
 
std::vector< double > m_pixelOffsets1
 The values offset to be applied to raster 1 pixel values before the blended value calcule (one element for each used raster channel/band). More...
 
std::vector< double > m_pixelOffsets2
 The values offset to be applied to raster 2 pixel values before the blended value calcule (one element for each used raster channel/band). More...
 
std::vector< double > m_pixelScales1
 The values scale to be applied to raster 1 pixel values before the blended value calcule (one element for each used raster channel/band). More...
 
std::vector< double > m_pixelScales2
 The values scale to be applied to raster 2 pixel values before the blended value calcule (one element for each used raster channel/band). More...
 
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 coods). More...
 
std::size_t m_r1IntersectionSegmentsPointsSize
 Size of m_r1IntersectionSegmentsPoints;. More...
 
std::auto_ptr
< te::gm::MultiPolygon
m_r1ValidDataDelimiterPtr
 A pointer to a geometry (raster 1 world/projected coords) delimiting the raster region with valid data, or null if all raster data area is valid. More...
 
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 coods). More...
 
std::size_t m_r2IntersectionSegmentsPointsSize
 Size of m_r2IntersectionSegmentsPoints;. More...
 
std::auto_ptr
< te::gm::MultiPolygon
m_r2ValidDataDelimiterPtr
 A pointer to a geometry (raster 2 world/projected coords) delimiting the raster region with valid data, or null if all raster data area is valid. More...
 
std::vector< unsigned int > m_raster1Bands
 Input raster 1 band indexes to use. More...
 
std::vector< double > m_raster1NoDataValues
 
te::rst::Rasterm_raster1Ptr
 Input raster 1. More...
 
std::vector< unsigned int > m_raster2Bands
 Input raster 2 band indexes to use. More...
 
std::vector< double > m_raster2NoDataValues
 Raster 1 no-data values (on value per band). More...
 
te::rst::Raster const * m_raster2Ptr
 Input raster 2. More...
 
unsigned int m_threadsNumber
 The number of threads to use (0:automatic , 1:disabled, any other integer dictates the number of threads).. More...
 

Detailed Description

Blended pixel value calculation for two overlaped rasters.

The overlap between the two images is modeled by the given geometric transformation direct mapping input raster 1 indexed coords (line, column) to input raster 2 indexed coords.

Note
Optimized for rasters where all bands have the same blocking scheme.

Definition at line 56 of file Blender.h.

Member Typedef Documentation

typedef void(Blender::* te::rp::Blender::BlendFunctPtr)(const double &line, const double &col, double *const values)
protected

Type definition for the a bleding function pointer.

Parameters
lineRaster 1 Line.
colRaster 1 Column.
valuesA pointer to a pre-allocated vector where the blended values will be stored.
Note
The caller of this method must be aware that the returned blended value may be outside the original input rasters valid values range.
Raster 1 values have precedence over raster 2 values (when applicable).

Definition at line 148 of file Blender.h.

Member Enumeration Documentation

Pixel Blend methods.

Enumerator
InvalidBlendMethod 

Invalid blending method.

NoBlendMethod 

No blending performed.

EuclideanDistanceMethod 

Euclidean distance method.

Definition at line 61 of file Blender.h.

Constructor & Destructor Documentation

te::rp::Blender::Blender ( )

Default constructor.

Definition at line 159 of file Blender.cpp.

References initState().

te::rp::Blender::~Blender ( )

Default destructor.

Definition at line 164 of file Blender.cpp.

References clear().

Member Function Documentation

bool te::rp::Blender::blendIntoRaster1 ( )

Execute blending of the given input rasters and write the result into raster1.

Note
Raster 1 values have precedence over raster 2 values (when applicable).

Definition at line 942 of file Blender.cpp.

References blendIntoRaster1Thread(), te::gm::GeometricTransformation::clone(), te::rst::Raster::getAccessPolicy(), te::rst::Raster::getBand(), te::rst::Band::getBlockSize(), te::rst::Raster::getNumberOfColumns(), te::rst::Raster::getNumberOfRows(), te::rst::Band::getProperty(), te::common::GetTotalPhysicalMemory(), te::common::GetTotalVirtualMemory(), te::common::GetUsedVirtualMemory(), te::gm::GeometricTransformation::inverseMap(), te::rp::Blender::BlendIntoRaster1ThreadParams::m_abortValuePtr, te::rp::Blender::BlendIntoRaster1ThreadParams::m_blendMethod, m_blendMethod, te::rst::BandProperty::m_blkh, te::rp::Blender::RasterBlockInfo::m_blkTotalPixelsNumber, te::rst::BandProperty::m_blkw, te::rp::Blender::RasterBlockInfo::m_blkX, te::rp::Blender::RasterBlockInfo::m_blkY, te::rp::Blender::BlendIntoRaster1ThreadParams::m_blockProcessedSignalMutexPtr, te::rp::Blender::BlendIntoRaster1ThreadParams::m_blockProcessedSignalPtr, m_enableProgressInterface, te::rp::Blender::RasterBlockInfo::m_firstRasterCol2Process, te::rp::Blender::RasterBlockInfo::m_firstRasterRow2Process, te::rp::Blender::BlendIntoRaster1ThreadParams::m_forceInputNoDataValue, m_forceInputNoDataValue, m_geomTransformationPtr, te::rp::Blender::BlendIntoRaster1ThreadParams::m_interpMethod1, m_interpMethod1, te::rp::Blender::BlendIntoRaster1ThreadParams::m_interpMethod2, m_interpMethod2, te::rp::Blender::BlendIntoRaster1ThreadParams::m_mutexPtr, te::rst::BandProperty::m_nblocksx, te::rst::BandProperty::m_nblocksy, te::rp::Blender::BlendIntoRaster1ThreadParams::m_noDataValue, m_outputNoDataValue, te::rp::Blender::BlendIntoRaster1ThreadParams::m_pixelOffsets1, m_pixelOffsets1, te::rp::Blender::BlendIntoRaster1ThreadParams::m_pixelOffsets2, m_pixelOffsets2, te::rp::Blender::BlendIntoRaster1ThreadParams::m_pixelScales1, m_pixelScales1, te::rp::Blender::BlendIntoRaster1ThreadParams::m_pixelScales2, m_pixelScales2, m_r1ValidDataDelimiterPtr, m_r2ValidDataDelimiterPtr, te::rp::Blender::BlendIntoRaster1ThreadParams::m_raster1Bands, m_raster1Bands, te::rp::Blender::BlendIntoRaster1ThreadParams::m_raster1BlocksInfosPtr, m_raster1Ptr, te::rp::Blender::BlendIntoRaster1ThreadParams::m_raster2Bands, m_raster2Bands, m_raster2Ptr, te::rp::Blender::RasterBlockInfo::m_rasterCols2ProcessBound, te::rp::Blender::RasterBlockInfo::m_rasterRows2ProcessBound, te::rp::Blender::BlendIntoRaster1ThreadParams::m_returnValuePtr, te::rp::Blender::BlendIntoRaster1ThreadParams::m_runningThreadsCounterPtr, te::rp::Blender::BlendIntoRaster1ThreadParams::m_sync1Ptr, te::rp::Blender::BlendIntoRaster1ThreadParams::m_sync2Ptr, m_threadsNumber, te::rp::Blender::RasterBlockInfo::m_wasProcessed, MIN, te::common::RAccess, te::common::RWAccess, TERP_TRUE_OR_RETURN_FALSE, and te::common::WAccess.

Referenced by te::rp::GeoMosaic::execute(), te::rp::TiePointsMosaic::execute(), and te::rp::SequenceMosaic::execute().

void te::rp::Blender::blendIntoRaster1Thread ( BlendIntoRaster1ThreadParams paramsPtr)
staticprotected

Thread entry for the method blendIntoRaster1.

Definition at line 1299 of file Blender.cpp.

References te::rst::SynchronizedRaster::getBand(), getBlendedValues(), te::rst::GetDataTypeRanges(), te::rst::Band::getProperty(), initialize(), te::rp::Blender::BlendIntoRaster1ThreadParams::m_abortValuePtr, te::rp::Blender::BlendIntoRaster1ThreadParams::m_blendMethod, te::rp::Blender::RasterBlockInfo::m_blkTotalPixelsNumber, te::rp::Blender::BlendIntoRaster1ThreadParams::m_blockProcessedSignalMutexPtr, te::rp::Blender::BlendIntoRaster1ThreadParams::m_blockProcessedSignalPtr, te::rp::Blender::RasterBlockInfo::m_firstRasterCol2Process, te::rp::Blender::RasterBlockInfo::m_firstRasterRow2Process, te::rp::Blender::BlendIntoRaster1ThreadParams::m_forceInputNoDataValue, te::rp::Blender::BlendIntoRaster1ThreadParams::m_geomTransformationPtr, te::rp::Blender::BlendIntoRaster1ThreadParams::m_interpMethod1, te::rp::Blender::BlendIntoRaster1ThreadParams::m_interpMethod2, te::rp::Blender::BlendIntoRaster1ThreadParams::m_maxRasterCachedBlocks, te::rp::Blender::BlendIntoRaster1ThreadParams::m_mutexPtr, te::rp::Blender::BlendIntoRaster1ThreadParams::m_noDataValue, te::rp::Blender::BlendIntoRaster1ThreadParams::m_pixelOffsets1, te::rp::Blender::BlendIntoRaster1ThreadParams::m_pixelOffsets2, te::rp::Blender::BlendIntoRaster1ThreadParams::m_pixelScales1, te::rp::Blender::BlendIntoRaster1ThreadParams::m_pixelScales2, te::rp::Blender::BlendIntoRaster1ThreadParams::m_r1ValidDataDelimiterPtr, te::rp::Blender::BlendIntoRaster1ThreadParams::m_r2ValidDataDelimiterPtr, te::rp::Blender::BlendIntoRaster1ThreadParams::m_raster1Bands, te::rp::Blender::BlendIntoRaster1ThreadParams::m_raster1BlocksInfosPtr, te::rp::Blender::BlendIntoRaster1ThreadParams::m_raster2Bands, te::rp::Blender::RasterBlockInfo::m_rasterCols2ProcessBound, te::rp::Blender::RasterBlockInfo::m_rasterRows2ProcessBound, te::rp::Blender::BlendIntoRaster1ThreadParams::m_returnValuePtr, te::rp::Blender::BlendIntoRaster1ThreadParams::m_runningThreadsCounterPtr, te::rp::Blender::BlendIntoRaster1ThreadParams::m_sync1Ptr, te::rp::Blender::BlendIntoRaster1ThreadParams::m_sync2Ptr, te::rst::BandProperty::m_type, te::rp::Blender::BlendIntoRaster1ThreadParams::m_useProgress, te::rp::Blender::RasterBlockInfo::m_wasProcessed, and te::rst::Raster::setValue().

Referenced by blendIntoRaster1().

void te::rp::Blender::getBlendedValues ( const double &  line,
const double &  col,
double *const  values 
)
inline

Blend a pixel value using the current parameters.

Parameters
lineLine (raster 1 reference).
colColumn (raster 1 reference).
valuesA pointer to a pre-allocated vector where the blended values will be stored.
Note
The caller of this method must be aware that the returned blended value may be outside the original input rasters valid values range.
Raster 1 values have precedence over raster 2 values (when applicable).

Definition at line 125 of file Blender.h.

References TERP_DEBUG_TRUE_OR_THROW.

Referenced by blendIntoRaster1Thread().

bool te::rp::Blender::initialize ( te::rst::Raster raster1,
const std::vector< unsigned int > &  raster1Bands,
const te::rst::Raster raster2,
const std::vector< unsigned int > &  raster2Bands,
const BlendMethod blendMethod,
const te::rst::Interpolator::Method interpMethod1,
const te::rst::Interpolator::Method interpMethod2,
const double &  noDataValue,
const bool  forceInputNoDataValue,
const std::vector< double > &  pixelOffsets1,
const std::vector< double > &  pixelScales1,
const std::vector< double > &  pixelOffsets2,
const std::vector< double > &  pixelScales2,
te::gm::MultiPolygon const *const  r1ValidDataDelimiterPtr,
te::gm::MultiPolygon const *const  r2ValidDataDelimiterPtr,
const te::gm::GeometricTransformation geomTransformation,
const unsigned int  threadsNumber,
const bool  enableProgressInterface 
)

Inititate the blender instance.

Parameters
raster1Input raster 1.
raster1BandsInput raster 1 band indexes to use.
raster2Input raster 2.
raster2BandsInput raster 2 band indexes to use (this vector has the same size as raster1Bands).
blendMethodThe blend method to apply.
interpMethod1The interpolation method to use when reading raster 1 data.
interpMethod2The interpolation method to use when reading raster 2 data.
noDataValueThe value returned where there is no pixel data bo blend.
forceInputNoDataValueUse noDataValue as the input rasters no-data value (The original rasters no-data values will be ignored)
pixelOffsets1The values offset to be applied to raster 1 pixel values before the blended value calcule (one element for each used raster channel/band).
pixelScales1The values scale to be applied to raster 1 pixel values before the blended value calcule (one element for each used raster channel/band).
pixelOffsets2The values offset to be applied to raster 2 pixel values before the blended value calcule (one element for each used raster channel/band).
pixelScales2The values scale to be applied to raster 2 pixel values before the blended value calcule (one element for each used raster channel/band).
r1ValidDataDelimiterPtrA pointer to a geometry (raster 1 world/projected coords) delimiting the raster region with valid data, or null if all raster data area is valid.
r2ValidDataDelimiterPtrA pointer to a geometry (raster 2 world/projected coords) delimiting the raster region with valid data, or null if all raster data area is valid.
geomTransformationA transformation mapping raster 1 pixels ( te::gm::GTParameters::TiePoint::first ) to raster 2 pixels ( te::gm::GTParameters::TiePoint::second ) (Note: all coords are indexed by lines/columns).
threadsNumberEnable/disable the use of threads when applicable (0:automatic , 1:disabled, any other integer dictates the number of threads).
enableProgressInterfaceEnable/disable the use of a progress interface when applicable.
Returns
true if ok, false on errors

Definition at line 169 of file Blender.cpp.

References te::gm::CurvePolygon::add(), clear(), te::gm::MultiPolygon::clone(), te::gm::GeometricTransformation::clone(), EuclideanDistanceMethod, te::rst::Grid::geoToGrid(), te::rst::Raster::getAccessPolicy(), te::rst::Raster::getBand(), te::gm::LineString::getCoordinates(), te::gm::GeometryCollection::getGeometryN(), te::rst::Raster::getGrid(), te::gm::LineString::getNPoints(), te::rst::Raster::getNumberOfBands(), te::rst::Raster::getNumberOfColumns(), te::rst::Raster::getNumberOfRows(), te::gm::GeometryCollection::getNumGeometries(), te::gm::CurvePolygon::getNumRings(), te::common::GetPhysProcNumber(), te::rst::Band::getProperty(), te::gm::CurvePolygon::getRingN(), te::gm::GeometricTransformation::inverseMap(), te::gm::GeometricTransformation::isValid(), te::gm::LineStringType, m_blendMethod, m_enableProgressInterface, m_forceInputNoDataValue, m_geomTransformationPtr, m_interp1, m_interp2, m_interpMethod1, m_interpMethod2, m_intersectionPtr, te::rst::BandProperty::m_noDataValue, m_outputNoDataValue, m_pixelOffsets1, m_pixelOffsets2, m_pixelScales1, m_pixelScales2, m_r1IntersectionSegmentsPoints, m_r1IntersectionSegmentsPointsSize, m_r1ValidDataDelimiterPtr, m_r2IntersectionSegmentsPoints, m_r2IntersectionSegmentsPointsSize, m_r2ValidDataDelimiterPtr, m_raster1Bands, m_raster1NoDataValues, m_raster1Ptr, m_raster2Bands, m_raster2NoDataValues, m_raster2Ptr, m_threadsNumber, te::gm::MultiLineStringType, te::gm::MultiPolygonType, NoBlendMethod, te::gm::PolygonType, te::common::RAccess, setBlendFunctionPonter(), te::gm::LineString::setPoint(), te::gm::LineString::size(), TERP_DEBUG_TRUE_OR_THROW, TERP_LOG_AND_THROW, TERP_TRUE_OR_RETURN_FALSE, te::gm::Coord2D::x, and te::gm::Coord2D::y.

Referenced by blendIntoRaster1Thread(), te::rp::GeoMosaic::execute(), te::rp::TiePointsMosaic::execute(), and te::rp::SequenceMosaic::execute().

void te::rp::Blender::noBlendMethodImp ( const double &  line1,
const double &  col1,
double *const  values 
)
protected
void te::rp::Blender::setBlendFunctionPonter ( const BlendMethod  blendMethod)
protected

Set the value of m_blendFuncPtr following the given blend method.

Definition at line 710 of file Blender.cpp.

References EuclideanDistanceMethod, euclideanDistanceMethodImp(), m_blendFuncPtr, NoBlendMethod, noBlendMethodImp(), and TERP_LOG_AND_THROW.

Referenced by initialize().

Member Data Documentation

BlendFunctPtr te::rp::Blender::m_blendFuncPtr
protected

The current blend function.

Definition at line 212 of file Blender.h.

Referenced by initState(), and setBlendFunctionPonter().

BlendMethod te::rp::Blender::m_blendMethod
protected

The blend method to apply.

Definition at line 211 of file Blender.h.

Referenced by blendIntoRaster1(), initialize(), initState(), and te::rp::Blender::BlendIntoRaster1ThreadParams::operator=().

bool te::rp::Blender::m_enableProgressInterface
protected

Enable progress interface.

Definition at line 208 of file Blender.h.

Referenced by blendIntoRaster1(), initialize(), and initState().

double te::rp::Blender::m_euclideanDistanceMethodImp_aux1
protected

Definition at line 259 of file Blender.h.

Referenced by euclideanDistanceMethodImp().

double te::rp::Blender::m_euclideanDistanceMethodImp_aux2
protected

Definition at line 260 of file Blender.h.

Referenced by euclideanDistanceMethodImp().

te::gm::Point te::rp::Blender::m_euclideanDistanceMethodImp_auxPoint
protected

Definition at line 249 of file Blender.h.

Referenced by euclideanDistanceMethodImp().

unsigned int te::rp::Blender::m_euclideanDistanceMethodImp_BandIdx
protected

Definition at line 254 of file Blender.h.

Referenced by euclideanDistanceMethodImp().

double te::rp::Blender::m_euclideanDistanceMethodImp_currDist
protected

Definition at line 255 of file Blender.h.

Referenced by euclideanDistanceMethodImp().

std::complex< double > te::rp::Blender::m_euclideanDistanceMethodImp_cValue1
protected

Definition at line 252 of file Blender.h.

Referenced by euclideanDistanceMethodImp().

std::complex< double > te::rp::Blender::m_euclideanDistanceMethodImp_cValue2
protected

Definition at line 253 of file Blender.h.

Referenced by euclideanDistanceMethodImp().

double te::rp::Blender::m_euclideanDistanceMethodImp_dist1
protected

Definition at line 256 of file Blender.h.

Referenced by euclideanDistanceMethodImp().

double te::rp::Blender::m_euclideanDistanceMethodImp_dist2
protected

Definition at line 257 of file Blender.h.

Referenced by euclideanDistanceMethodImp().

double te::rp::Blender::m_euclideanDistanceMethodImp_Point2Col
protected

Definition at line 251 of file Blender.h.

Referenced by euclideanDistanceMethodImp().

double te::rp::Blender::m_euclideanDistanceMethodImp_Point2Line
protected

Definition at line 250 of file Blender.h.

Referenced by euclideanDistanceMethodImp().

std::size_t te::rp::Blender::m_euclideanDistanceMethodImp_vecIdx
protected

Definition at line 258 of file Blender.h.

Referenced by euclideanDistanceMethodImp().

bool te::rp::Blender::m_forceInputNoDataValue
protected

Use noDataValue as the input rasters no-data value (The original rasters no-data values will be ignored)

Definition at line 209 of file Blender.h.

Referenced by blendIntoRaster1(), initialize(), initState(), and te::rp::Blender::BlendIntoRaster1ThreadParams::operator=().

te::gm::GeometricTransformation* te::rp::Blender::m_geomTransformationPtr
protected

A transformation mapping raster 1 pixels ( te::gm::GTParameters::TiePoint::first ) to raster 2 ( te::gm::GTParameters::TiePoint::second ) (Note: all coords are indexed by lines/columns).

Definition at line 222 of file Blender.h.

Referenced by blendIntoRaster1(), clear(), euclideanDistanceMethodImp(), initialize(), initState(), noBlendMethodImp(), and te::rp::Blender::BlendIntoRaster1ThreadParams::operator=().

te::rst::Interpolator* te::rp::Blender::m_interp1
protected

Raster 1 interpolator instance pointer.

Definition at line 226 of file Blender.h.

Referenced by clear(), euclideanDistanceMethodImp(), initialize(), initState(), and noBlendMethodImp().

te::rst::Interpolator* te::rp::Blender::m_interp2
protected

Raster 2 interpolator instance pointer.

Definition at line 227 of file Blender.h.

Referenced by clear(), euclideanDistanceMethodImp(), initialize(), initState(), and noBlendMethodImp().

te::rst::Interpolator::Method te::rp::Blender::m_interpMethod1
protected

The interpolation method to use when reading raster 1 data.

Definition at line 223 of file Blender.h.

Referenced by blendIntoRaster1(), initialize(), initState(), and te::rp::Blender::BlendIntoRaster1ThreadParams::operator=().

te::rst::Interpolator::Method te::rp::Blender::m_interpMethod2
protected

The interpolation method to use when reading raster 2 data.

Definition at line 224 of file Blender.h.

Referenced by blendIntoRaster1(), initialize(), initState(), and te::rp::Blender::BlendIntoRaster1ThreadParams::operator=().

std::auto_ptr< te::gm::MultiPolygon > te::rp::Blender::m_intersectionPtr
protected

The Intersection geometry ( raster 1 indexed coods).

Definition at line 217 of file Blender.h.

Referenced by clear(), euclideanDistanceMethodImp(), and initialize().

unsigned int te::rp::Blender::m_noBlendMethodImp_BandIdx
protected

Definition at line 246 of file Blender.h.

Referenced by noBlendMethodImp().

std::complex< double > te::rp::Blender::m_noBlendMethodImp_cValue
protected

Definition at line 244 of file Blender.h.

Referenced by noBlendMethodImp().

double te::rp::Blender::m_noBlendMethodImp_Point1XProj1
protected

Raster 2 no-data values (on value per band).

Definition at line 238 of file Blender.h.

double te::rp::Blender::m_noBlendMethodImp_Point1XProj2
protected

Definition at line 240 of file Blender.h.

double te::rp::Blender::m_noBlendMethodImp_Point1YProj1
protected

Definition at line 239 of file Blender.h.

double te::rp::Blender::m_noBlendMethodImp_Point1YProj2
protected

Definition at line 241 of file Blender.h.

double te::rp::Blender::m_noBlendMethodImp_Point2Col
protected

Definition at line 243 of file Blender.h.

Referenced by noBlendMethodImp().

double te::rp::Blender::m_noBlendMethodImp_Point2Line
protected

Definition at line 242 of file Blender.h.

Referenced by noBlendMethodImp().

double te::rp::Blender::m_noBlendMethodImp_Value
protected

Definition at line 245 of file Blender.h.

Referenced by noBlendMethodImp().

double te::rp::Blender::m_outputNoDataValue
protected

The output raster no-data value.

Definition at line 225 of file Blender.h.

Referenced by blendIntoRaster1(), euclideanDistanceMethodImp(), initialize(), initState(), and noBlendMethodImp().

std::vector< double > te::rp::Blender::m_pixelOffsets1
protected

The values offset to be applied to raster 1 pixel values before the blended value calcule (one element for each used raster channel/band).

Definition at line 230 of file Blender.h.

Referenced by blendIntoRaster1(), clear(), euclideanDistanceMethodImp(), initialize(), noBlendMethodImp(), and te::rp::Blender::BlendIntoRaster1ThreadParams::operator=().

std::vector< double > te::rp::Blender::m_pixelOffsets2
protected

The values offset to be applied to raster 2 pixel values before the blended value calcule (one element for each used raster channel/band).

Definition at line 232 of file Blender.h.

Referenced by blendIntoRaster1(), clear(), euclideanDistanceMethodImp(), initialize(), noBlendMethodImp(), and te::rp::Blender::BlendIntoRaster1ThreadParams::operator=().

std::vector< double > te::rp::Blender::m_pixelScales1
protected

The values scale to be applied to raster 1 pixel values before the blended value calcule (one element for each used raster channel/band).

Definition at line 231 of file Blender.h.

Referenced by blendIntoRaster1(), clear(), euclideanDistanceMethodImp(), initialize(), noBlendMethodImp(), and te::rp::Blender::BlendIntoRaster1ThreadParams::operator=().

std::vector< double > te::rp::Blender::m_pixelScales2
protected

The values scale to be applied to raster 2 pixel values before the blended value calcule (one element for each used raster channel/band).

Definition at line 233 of file Blender.h.

Referenced by blendIntoRaster1(), clear(), euclideanDistanceMethodImp(), initialize(), noBlendMethodImp(), and te::rp::Blender::BlendIntoRaster1ThreadParams::operator=().

std::vector< std::pair< te::gm::Coord2D, te::gm::Coord2D > > te::rp::Blender::m_r1IntersectionSegmentsPoints
protected

A sub-set of the intersection polygon wich is part of raster 1 valid data polygon ( raster 1 indexed coods).

Definition at line 218 of file Blender.h.

Referenced by clear(), euclideanDistanceMethodImp(), and initialize().

std::size_t te::rp::Blender::m_r1IntersectionSegmentsPointsSize
protected

Size of m_r1IntersectionSegmentsPoints;.

Definition at line 219 of file Blender.h.

Referenced by euclideanDistanceMethodImp(), initialize(), and initState().

std::auto_ptr< te::gm::MultiPolygon > te::rp::Blender::m_r1ValidDataDelimiterPtr
protected

A pointer to a geometry (raster 1 world/projected coords) delimiting the raster region with valid data, or null if all raster data area is valid.

Definition at line 215 of file Blender.h.

Referenced by blendIntoRaster1(), clear(), initialize(), and te::rp::Blender::BlendIntoRaster1ThreadParams::operator=().

std::vector< std::pair< te::gm::Coord2D, te::gm::Coord2D > > te::rp::Blender::m_r2IntersectionSegmentsPoints
protected

A sub-set of the intersection polygon wich is part of raster 2 valid data polygon ( raster 1 indexed coods).

Definition at line 220 of file Blender.h.

Referenced by clear(), euclideanDistanceMethodImp(), and initialize().

std::size_t te::rp::Blender::m_r2IntersectionSegmentsPointsSize
protected

Size of m_r2IntersectionSegmentsPoints;.

Definition at line 221 of file Blender.h.

Referenced by euclideanDistanceMethodImp(), initialize(), and initState().

std::auto_ptr< te::gm::MultiPolygon > te::rp::Blender::m_r2ValidDataDelimiterPtr
protected

A pointer to a geometry (raster 2 world/projected coords) delimiting the raster region with valid data, or null if all raster data area is valid.

Definition at line 216 of file Blender.h.

Referenced by blendIntoRaster1(), clear(), initialize(), and te::rp::Blender::BlendIntoRaster1ThreadParams::operator=().

std::vector< unsigned int > te::rp::Blender::m_raster1Bands
protected
std::vector< double > te::rp::Blender::m_raster1NoDataValues
protected

Definition at line 234 of file Blender.h.

Referenced by clear(), euclideanDistanceMethodImp(), initialize(), and noBlendMethodImp().

te::rst::Raster* te::rp::Blender::m_raster1Ptr
protected

Input raster 1.

Definition at line 213 of file Blender.h.

Referenced by blendIntoRaster1(), initialize(), and initState().

std::vector< unsigned int > te::rp::Blender::m_raster2Bands
protected
std::vector< double > te::rp::Blender::m_raster2NoDataValues
protected

Raster 1 no-data values (on value per band).

Definition at line 235 of file Blender.h.

Referenced by clear(), euclideanDistanceMethodImp(), initialize(), and noBlendMethodImp().

te::rst::Raster const* te::rp::Blender::m_raster2Ptr
protected

Input raster 2.

Definition at line 214 of file Blender.h.

Referenced by blendIntoRaster1(), initialize(), and initState().

unsigned int te::rp::Blender::m_threadsNumber
protected

The number of threads to use (0:automatic , 1:disabled, any other integer dictates the number of threads)..

Definition at line 210 of file Blender.h.

Referenced by blendIntoRaster1(), initialize(), and initState().


The documentation for this class was generated from the following files: