16 #ifndef QGSRENDERERV2_H 
   17 #define QGSRENDERERV2_H 
   26 #include <QDomDocument> 
   27 #include <QDomElement> 
   42 #define RENDERER_TAG_NAME   "renderer-v2" 
   76     QString 
type()
 const { 
return mType; }
 
   88     virtual QList<QString> usedAttributes() = 0;
 
   94     virtual bool renderFeature( 
QgsFeature& feature, 
QgsRenderContext& context, 
int layer = -1, 
bool selected = 
false, 
bool drawVertexMarker = 
false );
 
   97     virtual QString dump() 
const;
 
  102       RotationField = 1 <<  1,    
 
  103       MoreSymbolsPerFeature = 1 << 2,  
 
  105       ScaleDependent = 1 << 4 
 
  122     virtual QDomElement save( QDomDocument& doc );
 
  126     virtual QDomElement writeSld( QDomDocument& doc, 
const QgsVectorLayer &layer ) 
const;
 
  143     virtual void toSld( QDomDocument& doc, QDomElement &element )
 const 
  144     { element.appendChild( doc.createComment( QString( 
"FeatureRendererV2 %1 not implemented yet" ).arg( type() ) ) ); }
 
  152     virtual QgsLegendSymbolList legendSymbolItems( 
double scaleDenominator = -1, QString rule = 
"" );
 
  155     void setVertexMarkerAppearance( 
int type, 
int size );
 
  179     void renderFeatureWithSymbol( 
QgsFeature& feature,
 
  184                                   bool drawVertexMarker );
 
  189     void renderVertexMarkerPolyline( QPolygonF& pts, 
QgsRenderContext& context );
 
  191     void renderVertexMarkerPolygon( QPolygonF& pts, QList<QPolygonF>* rings, 
QgsRenderContext& context );
 
  193     static const unsigned char* _getPoint( QPointF& pt, 
QgsRenderContext& context, 
const unsigned char* wkb );
 
  194     static const unsigned char* _getLineString( QPolygonF& pts, 
QgsRenderContext& context, 
const unsigned char* wkb );
 
  195     static const unsigned char* _getPolygon( QPolygonF& pts, QList<QPolygonF>& holes, 
QgsRenderContext& context, 
const unsigned char* wkb );
 
  197     void setScaleMethodToSymbol( 
QgsSymbolV2* symbol, 
int scaleMethod );
 
  212 class QgsRendererV2Widget;  
 
  214 #endif // QGSRENDERERV2_H