QGIS/python/core/qgsrenderer.sip
wonder bbd36b107f Merged refactoring branch back to trunk.
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@6415 c8812cc2-4d05-0410-92ff-de0c093fc19c
2007-01-09 02:39:15 +00:00

45 lines
2.2 KiB
Plaintext

/**Abstract base class for renderers. A renderer holds all the information necessary to draw the contents of a vector layer to a map canvas. The vector layer then passes each feature to paint to the renderer*/
class QgsRenderer /Abstract/
{
%TypeHeaderCode
#include <qgsrenderer.h>
%End
public:
/** Default ctor sets up selection colour from project properties */
QgsRenderer();
/** Virtual destructor because we have virtual methods... */
virtual ~QgsRenderer();
/**A vector layer passes features to a renderer object to change the brush and pen of the qpainter
@param p the painter storing brush and pen
@param f a pointer to the feature to be rendered
@param pic pointer to a marker from SVG (is only used by marker renderers)
@param scalefactor pointer to the scale factor for the marker image*/
virtual void renderFeature(QPainter* p, QgsFeature& f,QImage* pic, double* scalefactor, bool selected, double widthScale = 1)=0;
/**Reads the renderer configuration from an XML file
@param rnode the DOM node to read
@param vl the vector layer which will be associated with the renderer*/
virtual void readXML(const QDomNode& rnode, QgsVectorLayer& vl)=0;
/**Writes the contents of the renderer to a configuration file
@ return true in case of success*/
virtual bool writeXML( QDomNode & layer_node, QDomDocument & document ) const=0;
/** Returns true, if attribute values are used by the renderer and false otherwise*/
virtual bool needsAttributes() const=0;
/**Returns a list with indexes of classification attributes*/
QList<int> classificationAttributes() const=0;
/**Returns the renderers name*/
virtual QString name() const=0;
/**Return symbology items*/
// TODO: wrap
//virtual const std::list<QgsSymbol*> symbols() const=0;
/**Returns a copy of the renderer (a deep copy on the heap)*/
virtual QgsRenderer* clone() const=0;
/** Change selection color */
static void setSelectionColor(QColor color);
/**Returns true if this renderer returns a pixmap in the render method (e.g. for point data or diagrams)*/
virtual bool containsPixmap() const;
};