24 static ossimTrace traceDebug(
"ossimShiftFilter:debug");
37 <<
"ossimShiftFilter::ossimShiftFilter entered...\n";
50 <<
"ossimShiftFilter::initialize entered..." << endl;
62 <<
"ossimShiftFilter::initialize exited..." << endl;
147 <<
"ossimShiftFilter::getTile ERROR Unhandled scalar!" << endl;
166 if ( !result && inputTile.
get() )
182 std::vector<double> inNull(BANDS);
183 std::vector<double> inMin(BANDS);
184 std::vector<double> inMax(BANDS);
185 std::vector<double> coef(BANDS);
188 for( ; band < BANDS; ++band )
191 inMin[band] = inputTile->
getMinPix(band);
192 inMax[band] = inputTile->
getMaxPix(band);
193 coef[band] = (
m_max-
m_min)/(inMax[band]-inMin[band]);
197 for( band = 0; band < BANDS; ++band )
199 const T* inBuf =
static_cast<const T*
>(inputTile->
getBuf(band));
200 T* outBuf =
static_cast<T*
>(outputTile->
getBuf(band));
205 if ( pix == inNull[band] )
212 pix =
m_min + (pix - inMin[band]) * coef[band];
218 outBuf[i] =
static_cast<T
>(pix);
305 : m_min(0),m_max(0),m_null(0)
16 bit unsigned integer (15 bits used)
virtual bool isSourceEnabled() const
virtual const ossim_float64 * getMaxPix() const
virtual ossim_uint32 getNumberOfBands() const
virtual ossimString getShortName() const
virtual void setImageRectangle(const ossimIrect &rect)
virtual double getMinPixelValue(ossim_uint32 band) const
ossimShiftFilter & operator=(const ossimShiftFilter &)
Private to disallow use...
double nan()
Method to return ieee floating point double precision NAN.
This code was derived from https://gist.github.com/mshockwave.
void setNullPixelValue(double null)
Set the null output pixel.
virtual ossimDataObjectStatus getDataObjectStatus() const
16 bit unsigned integer (14 bits used)
16 bit unsigned integer (13 bits used)
unsigned short ossim_uint16
Class to shift/stretch input values to given min/max.
virtual void initialize()
Initialize the data buffer.
virtual ~ossimShiftFilter()
virtual protected destructor
virtual void initialize()
virtual double getMinPixelValue(ossim_uint32 band=0) const
Returns the min pixel of the band.
virtual double getNullPixelValue(ossim_uint32 band) const
static ossimImageDataFactory * instance()
virtual ossimString getClassName() const
ossimRefPtr< ossimImageData > m_tile
virtual ossimDataObjectStatus validate() const
signed short ossim_sint16
virtual ossim_uint32 getSizePerBand() const
Returns the number of pixels in a single band in a tile.
void setMaxPixelValue(double max)
Set the max output pixel.
ossimImageSource * theInputConnection
unsigned int ossim_uint32
virtual const ossim_float64 * getNullPix() const
32 bit normalized floating point
void allocate()
Allocates the tile.
virtual double getMaxPixelValue(ossim_uint32 band) const
virtual ossimRefPtr< ossimImageData > getTile(const ossimIrect &tileRect, ossim_uint32 resLevel=0)
virtual ossimRefPtr< ossimImageData > create(ossimSource *owner, ossimScalarType scalar, ossim_uint32 bands=1) const
void setMinPixelValue(double min)
Set the min output pixel.
virtual const ossim_float64 * getMinPix() const
virtual ossimScalarType getScalarType() const
virtual void makeBlank()
Initializes data to null pixel values.
64 bit normalized floating point
16 bit unsigned integer (11 bits used)
virtual double getMaxPixelValue(ossim_uint32 band=0) const
Returns the max pixel of the band.
virtual const void * getBuf() const
virtual void initialize()
virtual ossimString getLongName() const
ossimShiftFilter()
default constructor
#define RTTI_DEF1(cls, name, b1)
ossimDataObjectStatus
Definitions for data object status.
void fillTile(T dummy, const ossimImageData *inputTile, ossimImageData *outputTile) const
Template to fill the tile.
unsigned char ossim_uint8
virtual double getNullPixelValue(ossim_uint32 band=0) const
Each band has a null pixel associated with it.
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
virtual ossimRefPtr< ossimImageData > getTile(const ossimIpt &origin, ossim_uint32 resLevel=0)
16 bit unsigned integer (12 bits used)
bool isnan(const float &v)
isnan Test for floating point Not A Number (NAN) value.