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
|
|
|
|
|
|
|
static const QRgb NODATA_COLOR;
|
|
|
|
|
2017-05-01 18:13:15 +02:00
|
|
|
QgsRasterRenderer( QgsRasterInterface *input = 0, const QString &type = "" );
|
2012-09-24 02:28:15 +02:00
|
|
|
virtual ~QgsRasterRenderer();
|
|
|
|
|
2017-05-03 07:45:22 +02: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;
|
|
|
|
|
2017-05-01 18:13:15 +02:00
|
|
|
virtual bool setInput( QgsRasterInterface *input );
|
2012-09-24 02:28:15 +02:00
|
|
|
|
2017-05-02 07:21:20 +02:00
|
|
|
virtual QgsRasterBlock *block( int bandNo, const QgsRectangle &extent, int width, int height, QgsRasterBlockFeedback *feedback = 0 ) = 0 / Factory /;
|
2012-09-24 02:28:15 +02:00
|
|
|
|
|
|
|
bool usesTransparency() const;
|
|
|
|
|
|
|
|
void setOpacity( double opacity );
|
|
|
|
double opacity() const;
|
|
|
|
|
2017-05-01 18:13:15 +02:00
|
|
|
void setRasterTransparency( QgsRasterTransparency *t /Transfer/);
|
|
|
|
const QgsRasterTransparency *rasterTransparency() const;
|
2012-09-24 02:28:15 +02:00
|
|
|
|
|
|
|
void setAlphaBand( int band );
|
|
|
|
int alphaBand() const;
|
|
|
|
|
2015-07-29 11:52:14 +02:00
|
|
|
/** Get symbology items if provided by renderer*/
|
2017-05-01 18:13:15 +02:00
|
|
|
virtual void legendSymbologyItems( QList< QPair< QString, QColor > > &symbolItems /Out/ ) const;
|
2012-09-24 02:28:15 +02:00
|
|
|
|
2015-07-29 11:52:14 +02:00
|
|
|
/** Sets base class members from xml. Usually called from create() methods of subclasses*/
|
2017-05-01 18:13:15 +02: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 */
|
2017-05-01 18:13:15 +02:00
|
|
|
void copyCommonProperties( const QgsRasterRenderer *other, bool copyMinMaxOrigin = true );
|
2016-07-07 13:11:32 +02:00
|
|
|
|
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
|
|
|
|
2016-12-15 01:31:05 +01:00
|
|
|
//! Returns const reference to origin of min/max values
|
2017-05-01 18:13:15 +02:00
|
|
|
const QgsRasterMinMaxOrigin &minMaxOrigin() const;
|
2016-12-15 01:31:05 +01:00
|
|
|
|
|
|
|
//! Sets origin of min/max values
|
2017-05-01 18:13:15 +02:00
|
|
|
void setMinMaxOrigin( const QgsRasterMinMaxOrigin &origin );
|
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)*/
|
2017-05-01 18:13:15 +02: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& );
|
2017-05-01 18:13:15 +02:00
|
|
|
const QgsRasterRenderer &operator=( const QgsRasterRenderer& );
|
2016-01-20 17:06:04 +11:00
|
|
|
|
2012-09-24 02:28:15 +02:00
|
|
|
};
|