2012-12-06 12:49:24 +02:00
|
|
|
|
2012-09-24 02:28:15 +02:00
|
|
|
class QgsRasterRenderer : QgsRasterInterface
|
|
|
|
{
|
|
|
|
%TypeHeaderCode
|
2014-10-22 17:29:14 +07:00
|
|
|
#include "qgsrasterrenderer.h"
|
2012-09-24 02:28:15 +02:00
|
|
|
%End
|
|
|
|
|
|
|
|
public:
|
2016-01-04 22:51:18 +11:00
|
|
|
// Origin of min / max values
|
|
|
|
enum MinMaxOrigin
|
|
|
|
{
|
|
|
|
MinMaxUnknown,
|
|
|
|
MinMaxUser, // entered by user
|
|
|
|
// method
|
|
|
|
MinMaxMinMax,
|
|
|
|
MinMaxCumulativeCut,
|
|
|
|
MinMaxStdDev,
|
|
|
|
// Extent
|
|
|
|
MinMaxFullExtent,
|
|
|
|
MinMaxSubExtent,
|
|
|
|
// Precision
|
|
|
|
MinMaxEstimated,
|
|
|
|
MinMaxExact
|
|
|
|
};
|
|
|
|
|
|
|
|
static const QRgb NODATA_COLOR;
|
|
|
|
|
2012-09-26 18:46:52 +02:00
|
|
|
QgsRasterRenderer( QgsRasterInterface* input = 0, const QString& type = "" );
|
2012-09-24 02:28:15 +02:00
|
|
|
virtual ~QgsRasterRenderer();
|
|
|
|
|
2015-11-12 19:35:14 +11:00
|
|
|
virtual QgsRasterRenderer * clone() const = 0 /Factory/;
|
2012-09-24 02:28:15 +02:00
|
|
|
|
|
|
|
virtual int bandCount() const;
|
|
|
|
|
2016-07-21 22:01:38 +10:00
|
|
|
virtual Qgis::DataType dataType( int bandNo ) const;
|
2012-09-24 02:28:15 +02:00
|
|
|
|
|
|
|
virtual QString type() const;
|
|
|
|
|
|
|
|
virtual bool setInput( QgsRasterInterface* input );
|
|
|
|
|
2016-07-22 23:26:47 +02:00
|
|
|
virtual QgsRasterBlock *block( int bandNo, const QgsRectangle &extent, int width, int height, QgsRasterBlockFeedback* feedback = nullptr ) = 0 / Factory /;
|
2012-09-24 02:28:15 +02:00
|
|
|
|
|
|
|
bool usesTransparency() const;
|
|
|
|
|
|
|
|
void setOpacity( double opacity );
|
|
|
|
double opacity() const;
|
|
|
|
|
2012-12-06 12:49:24 +02:00
|
|
|
void setRasterTransparency( QgsRasterTransparency* t /Transfer/);
|
2012-09-24 02:28:15 +02:00
|
|
|
const QgsRasterTransparency* rasterTransparency() const;
|
|
|
|
|
|
|
|
void setAlphaBand( int band );
|
|
|
|
int alphaBand() const;
|
|
|
|
|
2015-07-29 11:52:14 +02:00
|
|
|
/** Get symbology items if provided by renderer*/
|
2012-09-24 02:28:15 +02:00
|
|
|
virtual void legendSymbologyItems( QList< QPair< QString, QColor > >& symbolItems ) const;
|
|
|
|
|
2015-07-29 11:52:14 +02:00
|
|
|
/** Sets base class members from xml. Usually called from create() methods of subclasses*/
|
2016-07-19 11:45:47 +10:00
|
|
|
void readXml( const QDomElement& rendererElem );
|
2012-09-24 02:28:15 +02:00
|
|
|
|
2016-07-07 13:11:32 +02:00
|
|
|
/** Copies common properties like opacity / transparency data from other renderer.
|
|
|
|
* Useful when cloning renderers.
|
|
|
|
* @note added in 2.16 */
|
|
|
|
void copyCommonProperties( const QgsRasterRenderer* other );
|
|
|
|
|
2015-07-29 11:52:14 +02:00
|
|
|
/** Returns a list of band numbers used by the renderer*/
|
2012-09-24 02:28:15 +02:00
|
|
|
virtual QList<int> usesBands() const;
|
2012-10-06 11:22:52 +02:00
|
|
|
|
|
|
|
static QString minMaxOriginName( int theOrigin );
|
|
|
|
static QString minMaxOriginLabel( int theOrigin );
|
2015-10-07 11:55:34 +11:00
|
|
|
static int minMaxOriginFromName( const QString& theName );
|
2012-10-06 11:22:52 +02:00
|
|
|
|
|
|
|
protected:
|
|
|
|
|
2015-07-29 11:52:14 +02:00
|
|
|
/** Write upper class info into rasterrenderer element (called by writeXML method of subclasses)*/
|
2016-07-19 11:45:47 +10:00
|
|
|
void _writeXml( QDomDocument& doc, QDomElement& rasterRendererElem ) const;
|
2012-10-06 11:22:52 +02:00
|
|
|
|
2016-01-20 17:06:04 +11:00
|
|
|
private:
|
|
|
|
|
|
|
|
QgsRasterRenderer( const QgsRasterRenderer& );
|
|
|
|
const QgsRasterRenderer& operator=( const QgsRasterRenderer& );
|
|
|
|
|
2012-09-24 02:28:15 +02:00
|
|
|
};
|