/usr/include/ossim/imaging/ossimImageSourceSequencer.h is in libossim-dev 2.2.2-1.
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 | //*******************************************************************
// Copyright (C) 2000 ImageLinks Inc.
//
// License: MIT
//
// See LICENSE.txt file in the top level directory for more details.
//
// Author: Garrett Potts
//
//*******************************************************************
// $Id: ossimImageSourceSequencer.h 23081 2015-01-14 21:38:42Z dburken $
#ifndef ossimImageSourceSequencer_HEADER
#define ossimImageSourceSequencer_HEADER 1
#include <ossim/imaging/ossimImageSource.h>
#include <ossim/base/ossimIpt.h>
#include <ossim/base/ossimConnectableObjectListener.h>
#include <ossim/base/ossimHistogramSource.h>
#include <ossim/base/ossimMultiResLevelHistogram.h>
class OSSIMDLLEXPORT ossimImageSourceSequencer
:
public ossimImageSource,
public ossimConnectableObjectListener
{
public:
ossimImageSourceSequencer(ossimImageSource* inputSource=NULL,
ossimObject* owner=NULL);
virtual ~ossimImageSourceSequencer();
/*!
* This will return the number of tiles within the
* area of interest.
*/
ossim_int64 getNumberOfTiles()const;
/*!
* Will return the number of tiles along the
* x or horizontal direction.
*/
ossim_int64 getNumberOfTilesHorizontal()const;
/*!
* Will return the number of tiles along the
* y or vertical direction.
*/
ossim_int64 getNumberOfTilesVertical()const;
/*!
* This must be called. We can only initialize this
* object completely if we know all connections
* are valid. Some other object drives this and so the
* connection's initialize will be called after. The job
* of this connection is to set up the sequence. It will
* default to the bounding rect. The area of interest can be
* set to some other rectagle (use setAreaOfInterest).
*/
virtual void initialize();
/*!
* Will set the current area of interest.
*/
virtual void setAreaOfInterest(const ossimIrect& areaOfInterest);
/*!
* Just returns the current area of interest.
*/
const ossimIrect& getAreaOfInterest()const;
/*!
* Will set the internal pointers to the upperleft
* tile number. To go to the next tile in the sequence
* just call getNextTile.
*/
virtual void setToStartOfSequence();
virtual ossimRefPtr<ossimImageData> getTile(const ossimIrect& rect,
ossim_uint32 resLevel=0);
/*!
* Will allow you to get the next tile in the sequence.
* Note the last tile returned will be an invalid
* ossimRefPtr<ossimImageData>. Callers should be able to do:
*
* ossimRefPtr<ossimImageData> id = sequencer->getNextTile();
* while (id.valid())
* {
* doSomething;
* id = sequencer->getNextTile();
* }
*
*/
virtual ossimRefPtr<ossimImageData> getNextTile(ossim_uint32 resLevel=0);
virtual bool getNextTileStream(std::ostream& bos);
virtual bool getTileOrigin(ossim_int64 id, ossimIpt& origin)const;
/*!
* @brief Establishes a tile rect given tile ID.
* @param tile_id
* @param rect Rectangle to initialize.
* @return true if valid; else, false.
*/
bool getTileRect(ossim_int64 tile_id, ossimIrect& rect) const;
virtual ossimRefPtr<ossimImageData> getTile(ossim_int64 id,
ossim_uint32 resLevel=0);
virtual ossimIrect getBoundingRect(ossim_uint32 resLevel=0)const;
virtual void getDecimationFactor(ossim_uint32 resLevel,
ossimDpt& result) const;
virtual void getDecimationFactors(vector<ossimDpt>& decimations) const;
virtual ossim_uint32 getNumberOfDecimationLevels()const;
/*!
* Returns the number of bands available from the input.
*/
virtual ossim_uint32 getNumberOfInputBands()const;
virtual ossimScalarType getOutputScalarType() const;
virtual ossim_uint32 getTileWidth() const;
virtual ossim_uint32 getTileHeight() const;
virtual void slaveProcessTiles();
virtual bool isMaster()const;
virtual ossimIpt getTileSize()const;
virtual void setTileSize(const ossimIpt& tileSize);
virtual void setTileSize(ossim_int32 width, ossim_int32 height);
virtual void connectInputEvent(ossimConnectionEvent& event);
virtual void disconnectInputEvent(ossimConnectionEvent& event);
virtual bool canConnectMyInputTo(ossim_int32 inputIndex,
const ossimConnectableObject* object)const;
virtual double getNullPixelValue(ossim_uint32 band=0)const;
virtual double getMinPixelValue(ossim_uint32 band=0)const;
virtual double getMaxPixelValue(ossim_uint32 band=0)const;
void setCreateHistogram(bool create_histogram);
bool loadState(const ossimKeywordlist& kwl, const char* prefix);
void getBinInformation(ossim_uint32& numberOfBins,
ossim_float64& minValue,
ossim_float64& maxValue, ossimScalarType stype)const;
protected:
ossimImageSource* theInputConnection;
ossimRefPtr<ossimImageData> theBlankTile;
ossimRefPtr<ossimMultiResLevelHistogram> theHistogram;
/*!
* Is the area of interest. The default will
*
*/
ossimIrect theAreaOfInterest;
/*!
* Called during initialize.
*/
ossimIpt theTileSize;
//---
// These need to be big(64 bit) for high resolution tile servers. Made
// signed for ease of going to/from ipt and irect which are both signed.
//---
ossim_int64 theNumberOfTilesHorizontal;
ossim_int64 theNumberOfTilesVertical;
ossim_int64 theCurrentTileNumber;
bool theCreateHistogram;
virtual void updateTileDimensions();
TYPE_DATA
};
#endif
|