/usr/include/ossim/imaging/ossimBandSelector.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 | //*******************************************************************
// Copyright (C) 2000 ImageLinks Inc.
//
// License: See top level LICENSE.txt.
//
// Author: Garrett Potts
//
// Description: Contains class declaration for ossimBandSelector.
//
//*******************************************************************
// $Id: ossimBandSelector.h 13486 2008-08-22 17:07:13Z gpotts $
#ifndef ossimBandSelector_HEADER
#define ossimBandSelector_HEADER
#include <vector>
#include <ossim/imaging/ossimImageSourceFilter.h>
class ossimImageData;
class OSSIM_DLL ossimBandSelector : public ossimImageSourceFilter
{
public:
enum ossimBandSelectorWithinRangeFlagState
{
ossimBandSelectorWithinRangeFlagState_NOT_SET = 0,
ossimBandSelectorWithinRangeFlagState_IN_RANGE = 1,
ossimBandSelectorWithinRangeFlagState_OUT_OF_RANGE = 2,
};
ossimBandSelector();
virtual ~ossimBandSelector();
virtual ossimString getLongName() const;
virtual ossimString getShortName() const;
virtual ossimRefPtr<ossimImageData> getTile(const ossimIrect& tileRect,
ossim_uint32 resLevel=0);
/**
* Initializes bandList to the zero based order of output bands.
*/
virtual void getOutputBandList(std::vector<ossim_uint32>& bandList) const;
/**
* Sets the output band list.
*
* @param outputBandList List of zero based bands.
*
* @note The input connection should be established prior to calling this.
*
* @note Bands can be duplicated. So if you have a single band input you
* can do a band list like "1, 1, 1". Any band within the list must be
* available from the input. So if you have a 3 band input bands must be
* constrained to zero based bands "0, 1, or 2".
*
* @note Calling this method does not enable filter so callers should do:
* theBandSelector->enableSource();
* theBandSelector->setOutputBandList(bandList);
*/
virtual void setOutputBandList(const vector<ossim_uint32>& outputBandList);
/**
* Returns the number of bands in a tile returned from this TileSource.
*/
virtual ossim_uint32 getNumberOfOutputBands() const;
virtual void initialize();
virtual double getMinPixelValue(ossim_uint32 band=0)const;
virtual double getMaxPixelValue(ossim_uint32 band=0)const;
virtual double getNullPixelValue(ossim_uint32 band=0)const;
/**
* Method to save the state of an object to a keyword list.
* Return true if ok or false on error.
*/
virtual bool saveState(ossimKeywordlist& kwl,
const char* prefix=NULL)const;
/**
* Method to the load (recreate) the state of an object from a keyword
* list. Return true if ok or false on error.
*/
virtual bool loadState(const ossimKeywordlist& kwl,
const char* prefix=NULL);
/**
* Override base class so that a disableSource event does not
* reinitialize the object and enable itself.
*/
//virtual void propertyEvent(ossimPropertyEvent& event);
//virtual void refreshEvent(ossimRefreshEvent& event);
virtual void setProperty(ossimRefPtr<ossimProperty> property);
virtual ossimRefPtr<ossimProperty> getProperty(const ossimString& name)const;
virtual void getPropertyNames(std::vector<ossimString>& propertyNames)const;
private:
/**
* Called on first getTile, will initialize all data needed.
*/
void allocate();
/**
* @return true if theInputConnection->getOutputBandList is equal to
* this->theOutputBandList, false if not.
*/
bool isOrderedCorrectly() const;
/**
* @return true if all bands in theOutputBandList are less than the
* number of input's bands.
*/
bool outputBandsWithinInputRange() const;
ossimRefPtr<ossimImageData> theTile;
vector<ossim_uint32> theOutputBandList;
mutable ossimBandSelectorWithinRangeFlagState theWithinRangeFlag;
bool theOrderedCorrectlyFlag;
TYPE_DATA
};
#endif
|