/usr/include/ossim/imaging/ossimCcfHead.h is in libossim-dev 1.7.21-3ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 | //*******************************************************************
//
// License: See top level LICENSE.txt file.
//
// Author: David Burken
//
// Description:
//
// Contains class declaration for CcfHead.
//
// Notes:
// - This is not a full blown CCF header class as it only captures the
// data needed for loading.
// - Currently only version 6 is supported.
//
//*******************************************************************
// $Id: ossimCcfHead.h 10265 2007-01-14 19:18:43Z dburken $
#ifndef ossimCcfHead_HEADER
#define ossimCcfHead_HEADER
#include <iosfwd>
#include <vector>
#include <ossim/base/ossimConstants.h>
#include <ossim/base/ossimErrorStatusInterface.h>
#include <ossim/base/ossimString.h>
#include <ossim/base/ossimIpt.h>
class ossimIrect;
//***************************************************************************
// CLASS: ossimCcfHead
//***************************************************************************
class OSSIM_DLL ossimCcfHead : public ossimErrorStatusInterface
{
public:
ossimCcfHead();
ossimCcfHead(const char* ccf_file);
~ossimCcfHead ();
/*!
* Reads the ccf header and initializes data members. Returns true on
* successful read, false on error.
*/
bool parseCcfHeader(const char* ccf_file);
virtual std::ostream& print(std::ostream& out) const;
ossim_uint32 numberOfReducedResSets() const { return theNumberOfRLevels; }
ossim_uint32 numberOfLines(ossim_uint32 reduced_res_level) const;
ossim_uint32 numberOfSamples(ossim_uint32 reduced_res_level) const;
ossim_uint32 chunksInLineDir(ossim_uint32 reduced_res_level) const;
ossim_uint32 chunksInSampleDir(ossim_uint32 reduced_res_level) const;
std::streampos startOfData(ossim_uint32 reduced_res_level) const;
/*!
* Returns the highest available reduced resolution level.
* Zero based.
*/
ossim_uint32 highestReducedResSet() const
{ return !theNumberOfRLevels ? 0 : (theNumberOfRLevels - 1); }
/*!
* Returns the zero based image rectangle for the reduced resolution
* level passed in. Returns a rectangle of (0,0,0,0) if reduced_res_level
* is out of range.
*/
ossimIrect imageRect(ossim_uint32 reduced_res_level) const;
/*!
* Returns the ccf file name as a String.
*/
ossimString imageFile() const { return theCcfFile; }
/*!
* Returns the radiometry string.
*/
ossimString radiometry() const { return theRadiometryString; }
/*!
* Returns the number of bands.
*/
ossim_uint32 numberOfBands() const { return theNumberOfBands; }
/*!
* Returns the enumerated pixel type.
*/
ossimScalarType pixelType() const { return thePixelType; }
/*!
* Returns the bytes per chunk.
*/
ossim_uint32 bytesPerChunk() const { return theBytesPerChunk; }
/*!
* Returns the bytes per chip.
*/
ossim_uint32 bytesPerChip() const { return theBytesPerChip; }
/*!
* Returns the number of chips in sample direction of a chunk.
*/
ossim_uint32 sampleChipsPerChunk() const { return theSampleChipsPerChunk; }
/*!
* Returns the number of chips in line direction of a chunk.
*/
ossim_uint32 lineChipsPerChunk() const { return theLineChipsPerChunk; }
/*!
* Returns the samples per chip.
*/
ossim_uint32 samplesPerChip() const { return theSamplesPerChip; }
/*!
* Returns the lines per chip.
*/
ossim_uint32 linesPerChip() const { return theLinesPerChip; }
/*!
* Returns the number of pixels in a single band of a chip.
* Note: This is not in bytes but in pixels.
*/
ossim_uint32 chipSizePerBand() const
{ return theLinesPerChip * theSamplesPerChip; }
const std::vector<ossimIpt>& getValidImageVertices()const
{
return theValidImageVertices;
}
private:
/*!
* Parses a version five header.
*/
bool parseV5CcfHeader(std::istream& is);
/*!
* Parses a version six header.
*/
bool parseV6CcfHeader(std::istream& is);
/*!
* Parses the radiometry string and initializes "theNumberOfBands" and
* "thePixelType".
*/
void parseRadString();
ossimString theCcfFile;
ossim_uint32 theNumberOfBands;
ossimScalarType thePixelType;
ossimString theFileType;
ossim_uint32 theVersionNumber;
ossim_uint32 theLinesPerChip;
ossim_uint32 theSamplesPerChip;
ossim_uint32 theLineChipsPerChunk;
ossim_uint32 theSampleChipsPerChunk;
ossim_uint32 theRectInFullImageStartLine;
ossim_uint32 theRectInFuleImageStartSample;
ossim_uint32 theRectInFullImageStopLine;
ossim_uint32 theRectInFuleImageStopSample;
ossim_uint32 theNumberOfValidImageVertices;
std::vector<ossimIpt> theValidImageVertices;
ossim_uint32 theFirstBandHeaderPointer;
ossimString theRadiometryString;
ossim_uint32 theBytesPerPixel;
ossim_uint32 theBytesPerChip;
ossim_uint32 theBytesPerChunk;
ossimString theCompressionType;
ossim_uint32 theNumberOfRLevels;
std::vector<bool> theOccupiedFlag;
std::vector<std::streampos> theStartOfData;
std::vector<ossim_uint32> theNumberOfLines;
std::vector<ossim_uint32> theNumberOfSamples;
std::vector<ossim_uint32> theChunksInLineDir;
std::vector<ossim_uint32> theChunksInSampleDir;
};
#endif // #ifndef CcfHead_HEADER
|