18 #ifndef QGSRASTERINTERFACE_H 
   19 #define QGSRASTERINTERFACE_H 
   23 #include <QCoreApplication>  
   47       BuildPyramids    = 1 << 4, 
 
   49       IdentifyValue    = 1 << 6, 
 
   50       IdentifyText     = 1 << 7, 
 
   51       IdentifyHtml     = 1 << 8, 
 
   52       IdentifyFeature  = 1 << 9, 
 
   63     virtual int capabilities()
 const 
   71     QString capabilitiesString() 
const;
 
   89     virtual int bandCount() 
const = 0;
 
   92     virtual int xBlockSize()
 const { 
if ( mInput ) 
return mInput->xBlockSize(); 
else return 0; }
 
   93     virtual int yBlockSize()
 const { 
if ( mInput ) 
return mInput->yBlockSize(); 
else return 0; }
 
   96     virtual int xSize()
 const { 
if ( mInput ) 
return mInput->xSize(); 
else return 0; }
 
   97     virtual int ySize()
 const { 
if ( mInput ) 
return mInput->ySize(); 
else return 0; }
 
  100     virtual QString generateBandName( 
int theBandNumber )
 const 
  102       return tr( 
"Band" ) + QString( 
" %1" ) .arg( theBandNumber, 1 + ( 
int ) log10(( 
float ) bandCount() ), 10, QChar( 
'0' ) );
 
  123     virtual bool on()
 const { 
return mOn; }
 
  126     virtual void setOn( 
bool on ) { mOn = on; }
 
  135       return mInput ? mInput->srcInput() : 
this;
 
  140       return mInput ? mInput->srcInput() : 
this;
 
  153         int theSampleSize = 0 );
 
  158     virtual bool hasStatistics( 
int theBandNo,
 
  161                                 int theSampleSize = 0 );
 
  176                                           double theMinimum = std::numeric_limits<double>::quiet_NaN(),
 
  177                                           double theMaximum = std::numeric_limits<double>::quiet_NaN(),
 
  179                                           int theSampleSize = 0,
 
  180                                           bool theIncludeOutOfRange = 
false );
 
  185     virtual bool hasHistogram( 
int theBandNo,
 
  187                                double theMinimum = std::numeric_limits<double>::quiet_NaN(),
 
  188                                double theMaximum = std::numeric_limits<double>::quiet_NaN(),
 
  190                                int theSampleSize = 0,
 
  191                                bool theIncludeOutOfRange = 
false );
 
  202     virtual void cumulativeCut( 
int theBandNo,
 
  203                                 double theLowerCount,
 
  204                                 double theUpperCount,
 
  205                                 double &theLowerValue,
 
  206                                 double &theUpperValue,
 
  208                                 int theSampleSize = 0 );
 
  211     virtual void writeXML( QDomDocument& doc, QDomElement& parentElem )
 const { Q_UNUSED( doc ); Q_UNUSED( parentElem ); }
 
  213     virtual void readXML( 
const QDomElement& filterElem ) { Q_UNUSED( filterElem ); }
 
  233                         double theMinimum = std::numeric_limits<double>::quiet_NaN(),
 
  234                         double theMaximum = std::numeric_limits<double>::quiet_NaN(),
 
  236                         int theSampleSize = 0,
 
  237                         bool theIncludeOutOfRange = 
false );
 
  243                          int theBinCount = 0 );