16 static const ossimTrace traceDebug(
"ossimElevationMosaic:debug");
50 return getNextTile(layerIdx, 0, tileRect, resLevel);
77 if((w*h)!=(tileW*tileH))
102 return combine(static_cast<ossim_uint8>(0),
117 return combine(static_cast<ossim_sint8>(0),
133 return combine(static_cast<float>(0),
153 return combine(static_cast<ossim_uint16>(0),
168 return combine(static_cast<ossim_sint16>(0),
183 return combine(static_cast<ossim_sint32>(0),
198 return combine(static_cast<ossim_uint32>(0),
214 return combine(static_cast<double>(0),
230 <<
" Not supported by ossimElevationMosaic" << endl;
255 const char* prefix)
const 278 if(!currentImageData)
297 for(band = 0; band < minNumberOfBands; ++band)
299 srcBands[band] =
static_cast<float*
>(currentImageData->
getBuf(band));
300 srcBandsNullPix[band] =
static_cast<float>(currentImageData->
getNullPix(band));
312 srcBands[band] =
static_cast<float*
>(srcBands[minNumberOfBands - 1]);
313 srcBandsNullPix[band] =
static_cast<float>(currentImageData->
getNullPix(minNumberOfBands - 1));
322 while(currentImageData.
valid())
338 for(band = 0; band < minNumberOfBands; ++band)
340 srcBands[band] =
static_cast<float*
>(currentImageData->
getBuf(band));
341 srcBandsNullPix[band] =
static_cast<float>(currentImageData->
getNullPix(band));
347 srcBands[band] = srcBands[minNumberOfBands - 1];
348 srcBandsNullPix[band] =
static_cast<T
>(currentImageData->
getNullPix(minNumberOfBands - 1));
357 float delta = destBandsMaxPix[band] - destBandsMinPix[band];
358 float minP = destBandsMinPix[band];
360 for(
ossim_uint32 offset = 0; offset < upperBound; ++offset)
362 destBands[band][offset] =
363 (T)( minP + delta*srcBands[band][offset]);
371 float delta = destBandsMaxPix[band] - destBandsMinPix[band];
372 float minP = destBandsMinPix[band];
374 for(
ossim_uint32 offset = 0; offset < upperBound; ++offset)
376 if (destBands[band][offset] < MIN_ELEVATION || destBands[band][offset] > MAX_ELEVATION)
378 if (srcBands[band][offset] > MIN_ELEVATION && srcBands[band][offset] < MAX_ELEVATION)
380 destBands[band][offset] =
381 (T)(minP + delta*srcBands[band][offset]);
389 destinationStatus = destination->
validate();
403 delete [] srcBandsNullPix;
404 delete [] destBandsNullPix;
405 delete [] destBandsMinPix;
406 delete [] destBandsMaxPix;
417 bool hasInvalidElevations =
false;
424 if (!currentImageData)
440 for(band = 0; band < minNumberOfBands; ++band)
442 srcBands[band] =
static_cast<T*
>(currentImageData->
getBuf(band));
444 srcBandsNullPix[band] =
static_cast<T
>(currentImageData->
getNullPix(band));
451 srcBands[band] =
static_cast<T*
>(srcBands[minNumberOfBands - 1]);
453 srcBandsNullPix[band] =
static_cast<T
>(currentImageData->
getNullPix(minNumberOfBands - 1));
458 while(currentImageData.
valid())
474 for(band = 0; band < minNumberOfBands; ++band)
476 srcBands[band] =
static_cast<T*
>(currentImageData->
getBuf(band));
477 srcBandsNullPix[band] =
static_cast<T
>(currentImageData->
getNullPix(band));
483 srcBands[band] = srcBands[minNumberOfBands - 1];
484 srcBandsNullPix[band] =
static_cast<T
>(currentImageData->
getNullPix(minNumberOfBands - 1));
493 for(
ossim_uint32 offset = 0; offset < upperBound; ++offset)
495 destBands[band][offset] = srcBands[band][offset];
496 if(destBands[band][offset] < MIN_ELEVATION || destBands[band][offset] > MAX_ELEVATION)
498 hasInvalidElevations =
true;
508 for(
ossim_uint32 offset = 0; offset < upperBound; ++offset)
510 if(destBands[band][offset] < MIN_ELEVATION || destBands[band][offset] > MAX_ELEVATION)
512 hasInvalidElevations =
true;
513 destBands[band][offset] = srcBands[band][offset];
520 destinationStatus = destination->
validate();
521 if (!hasInvalidElevations)
531 currentImageData =
getNextTile(layerIdx, tileRect, resLevel);
537 delete [] srcBandsNullPix;
538 delete [] destBandsNullPix;
16 bit unsigned integer (15 bits used)
virtual ossim_uint32 getWidth() const
virtual const ossim_float64 * getMaxPix() const
virtual ossim_uint32 getNumberOfBands() const
This will be a base for all combiners.
Represents serializable keyword/value map.
virtual ossimRefPtr< ossimImageData > getNextNormTile(ossim_uint32 &returnedIdx, const ossim_uint32 index, const ossimIrect &tileRect, ossim_uint32 resLevel=0)
ossim_uint32 height() const
virtual ~ossimElevationMosaic()
ossimRefPtr< ossimImageData > combine(T, const ossimIrect &tileRect, ossim_uint32 resLevel=0)
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of an object from a keyword list.
virtual ossimRefPtr< ossimImageData > getTile(const ossimIrect &origin, ossim_uint32 resLevel=0)
virtual void initialize()
const ossimIpt & ul() const
virtual ossimDataObjectStatus getDataObjectStatus() const
virtual ossim_uint32 getHeight() const
16 bit unsigned integer (14 bits used)
16 bit unsigned integer (13 bits used)
virtual void initialize()
Initialize the data buffer.
ossimConnectableObject * getInput(ossim_uint32 index=0)
returns the object at the specified index.
virtual void setHeight(ossim_uint32 height)
virtual ossimRefPtr< ossimImageData > getNextTile(ossim_uint32 &returnedIdx, const ossim_uint32 startIdx, const ossimIrect &tileRect, ossim_uint32 resLevel=0)
std::vector< ossimRefPtr< ossimConnectableObject > > ConnectableObjectList
static ossimImageDataFactory * instance()
ossimRefPtr< ossimImageData > theTile
ossim_uint32 theLargestNumberOfInputBands
virtual ossimDataObjectStatus validate() const
virtual void initialize()
unsigned int ossim_uint32
virtual const ossim_float64 * getNullPix() const
32 bit normalized floating point
virtual void setWidth(ossim_uint32 width)
ossimRefPtr< ossimImageData > combineNorm(T, const ossimIrect &tileRect, ossim_uint32 resLevel=0)
virtual ossimRefPtr< ossimImageData > create(ossimSource *owner, ossimScalarType scalar, ossim_uint32 bands=1) const
ossim_uint32 width() const
virtual bool hasDifferentInputs() const
virtual void setOrigin(const ossimIpt &origin)
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save the state of an object to a keyword list.
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 const void * getBuf() const
virtual ossim_uint32 getNumberOfInputs() const
Returns the number of input objects.
void allocate()
Called on first getTile, will initialize all data needed.
#define RTTI_DEF1(cls, name, b1)
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=NULL)
Method to the load (recreate) the state of an object from a keyword list.
ossimDataObjectStatus
Definitions for data object status.
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=NULL) const
Method to save the state of an object to a keyword list.
An image mosaic is a simple combiner that will just do a simple mosaic.
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
16 bit unsigned integer (12 bits used)