bool ossimGeneralRasterTileSource::fillBuffer(const ossimIpt& origin, const ossimIpt& size) { static const char MODULE[] = "ossimGeneralRasterTileSource::fillBuffer"; // Note: InterleaveType enumerations in "constants.h" file. bool status = false; switch ( m_rasterInfo.interleaveType() ) { case OSSIM_BIP: { status = fillBIP(origin, size); break; } case OSSIM_BIL: { status = fillBIL(origin, size); break; } case OSSIM_BSQ: { status = fillBSQ(origin, size); break; } case OSSIM_BSQ_MULTI_FILE: { status = fillBsqMultiFile(origin, size); break; } default: { ossimNotify(ossimNotifyLevel_WARN) << MODULE << " ERROR:\n" << " Unsupported interleave type: " << ILUT.getEntryString(m_rasterInfo.interleaveType()) << std::endl; } } if (status && m_swapBytesFlag) { ossimEndian oe; oe.swap(m_rasterInfo.getImageMetaData().getScalarType(), m_buffer, m_bufferSizeInPixels); } return status; }
bool ossimGeneralRasterInfo::saveState(ossimKeywordlist& kwl, const char* prefix) const { for (ossim_uint32 i=0; i<theImageFileList.size(); ++i) { ossimString kw = ossimKeywordNames::FILENAME_KW; kw += ossimString::toString(i+1); kwl.add(prefix, theImageFileList[i].c_str()); } theMetaData.saveState(kwl, prefix); kwl.add(prefix, NUMBER_LINES, ossimString::toString( rawLines() ), true); kwl.add(prefix, NUMBER_SAMPLES, ossimString::toString( rawSamples() ), true); kwl.add(prefix, HEADER_SIZE, ossimString::toString(theHeaderSize), true); kwl.add(prefix, SUB_IMAGE_OFFSET_LINE, theSubImageOffset.line, true); kwl.add(prefix, SUB_IMAGE_OFFSET_SAMP, theSubImageOffset.samp, true); kwl.add(prefix, VALID_START_LINE, theValidImageRect.ul().y, true); kwl.add(prefix, VALID_STOP_LINE, theValidImageRect.lr().y, true); kwl.add(prefix, VALID_START_SAMPLE, theValidImageRect.ul().x, true); kwl.add(prefix, VALID_STOP_SAMPLE, theValidImageRect.ur().x, true); kwl.add(prefix, ossimKeywordNames::INTERLEAVE_TYPE_KW, INTERLEAVE_TYPE_LUT.getEntryString(theInterleaveType), true); kwl.add(prefix, PIXELS_TO_CHOP, thePixelsToChop, true); kwl.add(prefix, SET_NULLS, theSetNullsMode, true); if (bytesPerPixel() > 1) { kwl.add(prefix, ossimKeywordNames::BYTE_ORDER_KW, (theImageDataByteOrder == OSSIM_LITTLE_ENDIAN ? "little_endian" : "big_endian"), true); } return true; }