QGIS API Documentation  3.4.3-Madeira (2f64a3c)
qgsmarkersymbollayer.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsmarkersymbollayer.h
3  ---------------------
4  begin : November 2009
5  copyright : (C) 2009 by Martin Dobias
6  email : wonder dot sk at gmail dot com
7  ***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 #ifndef QGSMARKERSYMBOLLAYERV2_H
17 #define QGSMARKERSYMBOLLAYERV2_H
18 
19 #include "qgis_core.h"
20 #include "qgis_sip.h"
21 #include "qgis.h"
22 #include "qgssymbollayer.h"
23 
24 #define DEFAULT_SIMPLEMARKER_NAME "circle"
25 #define DEFAULT_SIMPLEMARKER_COLOR QColor(255,0,0)
26 #define DEFAULT_SIMPLEMARKER_BORDERCOLOR QColor( 35, 35, 35 )
27 #define DEFAULT_SIMPLEMARKER_JOINSTYLE Qt::BevelJoin
28 #define DEFAULT_SIMPLEMARKER_SIZE DEFAULT_POINT_SIZE
29 #define DEFAULT_SIMPLEMARKER_ANGLE 0
30 
31 #include <QPen>
32 #include <QBrush>
33 #include <QPicture>
34 #include <QPolygonF>
35 #include <QFont>
36 
45 {
46  public:
47 
49  enum Shape
50  {
57  Star,
63  Line,
74  };
75 
77  static QList< QgsSimpleMarkerSymbolLayerBase::Shape > availableShapes();
78 
84  static bool shapeIsFilled( QgsSimpleMarkerSymbolLayerBase::Shape shape );
85 
94  double size = DEFAULT_SIMPLEMARKER_SIZE,
97 
102  QgsSimpleMarkerSymbolLayerBase::Shape shape() const { return mShape; }
103 
109  void setShape( QgsSimpleMarkerSymbolLayerBase::Shape shape ) { mShape = shape; }
110 
119  static QgsSimpleMarkerSymbolLayerBase::Shape decodeShape( const QString &name, bool *ok = nullptr );
120 
127  static QString encodeShape( QgsSimpleMarkerSymbolLayerBase::Shape shape );
128 
129  void startRender( QgsSymbolRenderContext &context ) override;
130  void stopRender( QgsSymbolRenderContext &context ) override;
131  void renderPoint( QPointF point, QgsSymbolRenderContext &context ) override;
132  QRectF bounds( QPointF point, QgsSymbolRenderContext &context ) override;
133 
134  protected:
135 
139  bool prepareMarkerShape( Shape shape );
140 
144  bool prepareMarkerPath( Shape symbol );
145 
152  bool shapeToPolygon( Shape shape, QPolygonF &polygon ) const;
153 
160  double calculateSize( QgsSymbolRenderContext &context, bool &hasDataDefinedSize ) const;
161 
170  void calculateOffsetAndRotation( QgsSymbolRenderContext &context, double scaledSize, bool &hasDataDefinedRotation, QPointF &offset, double &angle ) const;
171 
173  QPolygonF mPolygon;
174 
176  QPainterPath mPath;
177 
180 
181  private:
182 
191  virtual void draw( QgsSymbolRenderContext &context, QgsSimpleMarkerSymbolLayerBase::Shape shape, const QPolygonF &polygon, const QPainterPath &path ) = 0 SIP_FORCE;
192 };
193 
200 {
201  public:
202 
214  double size = DEFAULT_SIMPLEMARKER_SIZE,
217  const QColor &color = DEFAULT_SIMPLEMARKER_COLOR,
218  const QColor &strokeColor = DEFAULT_SIMPLEMARKER_BORDERCOLOR,
219  Qt::PenJoinStyle penJoinStyle = DEFAULT_SIMPLEMARKER_JOINSTYLE );
220 
221  // static methods
222 
228  static QgsSymbolLayer *create( const QgsStringMap &properties = QgsStringMap() ) SIP_FACTORY;
229 
235  static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
236 
237  // reimplemented from base classes
238 
239  QString layerType() const override;
240  void startRender( QgsSymbolRenderContext &context ) override;
241  void renderPoint( QPointF point, QgsSymbolRenderContext &context ) override;
242  QgsStringMap properties() const override;
243  QgsSimpleMarkerSymbolLayer *clone() const override SIP_FACTORY;
244  void writeSldMarker( QDomDocument &doc, QDomElement &element, const QgsStringMap &props ) const override;
245  QString ogrFeatureStyle( double mmScaleFactor, double mapUnitScaleFactor ) const override;
246  bool writeDxf( QgsDxfExport &e, double mmMapUnitScaleFactor, const QString &layerName, QgsSymbolRenderContext &context, QPointF shift = QPointF( 0.0, 0.0 ) ) const override;
247  void setOutputUnit( QgsUnitTypes::RenderUnit unit ) override;
248  QgsUnitTypes::RenderUnit outputUnit() const override;
249  void setMapUnitScale( const QgsMapUnitScale &scale ) override;
250  QgsMapUnitScale mapUnitScale() const override;
251  QRectF bounds( QPointF point, QgsSymbolRenderContext &context ) override;
252  QColor fillColor() const override { return mColor; }
253  void setFillColor( const QColor &color ) override { mColor = color; }
254  void setColor( const QColor &color ) override;
255  QColor color() const override;
256 
257  // new methods
258 
265  QColor strokeColor() const override { return mStrokeColor; }
266 
274  void setStrokeColor( const QColor &color ) override { mStrokeColor = color; }
275 
283  Qt::PenStyle strokeStyle() const { return mStrokeStyle; }
284 
293  void setStrokeStyle( Qt::PenStyle strokeStyle ) { mStrokeStyle = strokeStyle; }
294 
302  Qt::PenJoinStyle penJoinStyle() const { return mPenJoinStyle; }
303 
312  void setPenJoinStyle( Qt::PenJoinStyle style ) { mPenJoinStyle = style; }
313 
320  double strokeWidth() const { return mStrokeWidth; }
321 
329  void setStrokeWidth( double w ) { mStrokeWidth = w; }
330 
338  void setStrokeWidthUnit( QgsUnitTypes::RenderUnit u ) { mStrokeWidthUnit = u; }
339 
346  QgsUnitTypes::RenderUnit strokeWidthUnit() const { return mStrokeWidthUnit; }
347 
355  void setStrokeWidthMapUnitScale( const QgsMapUnitScale &scale ) { mStrokeWidthMapUnitScale = scale; }
356 
363  const QgsMapUnitScale &strokeWidthMapUnitScale() const { return mStrokeWidthMapUnitScale; }
364 
365  protected:
366 
373  void drawMarker( QPainter *p, QgsSymbolRenderContext &context );
374 
379  bool prepareCache( QgsSymbolRenderContext &context );
380 
382  QColor mStrokeColor;
384  Qt::PenStyle mStrokeStyle = Qt::SolidLine;
386  double mStrokeWidth = 0;
392  Qt::PenJoinStyle mPenJoinStyle;
394  QPen mPen;
396  QBrush mBrush;
397 
399  QImage mCache;
401  QPen mSelPen;
403  QBrush mSelBrush;
405  QImage mSelCache;
406 
411  bool mUsingCache = false;
413  static const int MAXIMUM_CACHE_WIDTH = 3000;
414 
415  private:
416 
417  void draw( QgsSymbolRenderContext &context, QgsSimpleMarkerSymbolLayerBase::Shape shape, const QPolygonF &polygon, const QPainterPath &path ) override SIP_FORCE;
418 };
419 
428 {
429  public:
430 
439  double size = DEFAULT_SIMPLEMARKER_SIZE,
442 
448  static QgsSymbolLayer *create( const QgsStringMap &properties = QgsStringMap() ) SIP_FACTORY;
449 
450  QString layerType() const override;
451  void startRender( QgsSymbolRenderContext &context ) override;
452  void stopRender( QgsSymbolRenderContext &context ) override;
453  QgsStringMap properties() const override;
454  QgsFilledMarkerSymbolLayer *clone() const override SIP_FACTORY;
455  QgsSymbol *subSymbol() override;
456  bool setSubSymbol( QgsSymbol *symbol SIP_TRANSFER ) override;
457  double estimateMaxBleed( const QgsRenderContext &context ) const override;
458  QSet<QString> usedAttributes( const QgsRenderContext &context ) const override;
459  void setColor( const QColor &c ) override;
460  QColor color() const override;
461 
462  private:
463 #ifdef SIP_RUN
465 #endif
466 
467  void draw( QgsSymbolRenderContext &context, QgsSimpleMarkerSymbolLayerBase::Shape shape, const QPolygonF &polygon, const QPainterPath &path ) override SIP_FORCE;
468 
470  std::unique_ptr< QgsFillSymbol > mFill;
471 };
472 
474 
475 #define DEFAULT_SVGMARKER_SIZE 2*DEFAULT_POINT_SIZE
476 #define DEFAULT_SVGMARKER_ANGLE 0
477 
483 {
484  public:
486  QgsSvgMarkerSymbolLayer( const QString &path,
487  double size = DEFAULT_SVGMARKER_SIZE,
490 
491  // static stuff
492 
493  static QgsSymbolLayer *create( const QgsStringMap &properties = QgsStringMap() ) SIP_FACTORY;
494  static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
495 
501  static void resolvePaths( QgsStringMap &properties, const QgsPathResolver &pathResolver, bool saving );
502 
503  // implemented from base classes
504 
505  QString layerType() const override;
506 
507  void startRender( QgsSymbolRenderContext &context ) override;
508 
509  void stopRender( QgsSymbolRenderContext &context ) override;
510 
511  void renderPoint( QPointF point, QgsSymbolRenderContext &context ) override;
512 
513  QgsStringMap properties() const override;
514 
515  QgsSvgMarkerSymbolLayer *clone() const override SIP_FACTORY;
516 
517  void writeSldMarker( QDomDocument &doc, QDomElement &element, const QgsStringMap &props ) const override;
518 
523  QString path() const { return mPath; }
524 
530  void setPath( const QString &path );
531 
536  double defaultAspectRatio() const { return mDefaultAspectRatio; }
537 
543  double updateDefaultAspectRatio();
544 
549  bool preservedAspectRatio() const { return mFixedAspectRatio <= 0.0; }
550 
557  bool setPreservedAspectRatio( bool par );
558 
564  double fixedAspectRatio() const { return mFixedAspectRatio; }
565 
572  void setFixedAspectRatio( double ratio ) { mFixedAspectRatio = ratio; }
573 
574  QColor fillColor() const override { return color(); }
575  void setFillColor( const QColor &color ) override { setColor( color ); }
576 
577  QColor strokeColor() const override { return mStrokeColor; }
578  void setStrokeColor( const QColor &c ) override { mStrokeColor = c; }
579 
580  double strokeWidth() const { return mStrokeWidth; }
581  void setStrokeWidth( double w ) { mStrokeWidth = w; }
582 
588  void setStrokeWidthUnit( QgsUnitTypes::RenderUnit unit ) { mStrokeWidthUnit = unit; }
589 
594  QgsUnitTypes::RenderUnit strokeWidthUnit() const { return mStrokeWidthUnit; }
595 
596  void setStrokeWidthMapUnitScale( const QgsMapUnitScale &scale ) { mStrokeWidthMapUnitScale = scale; }
597  const QgsMapUnitScale &strokeWidthMapUnitScale() const { return mStrokeWidthMapUnitScale; }
598 
599  void setOutputUnit( QgsUnitTypes::RenderUnit unit ) override;
600  QgsUnitTypes::RenderUnit outputUnit() const override;
601 
602  void setMapUnitScale( const QgsMapUnitScale &scale ) override;
603  QgsMapUnitScale mapUnitScale() const override;
604 
605  bool writeDxf( QgsDxfExport &e, double mmMapUnitScaleFactor, const QString &layerName, QgsSymbolRenderContext &context, QPointF shift = QPointF( 0.0, 0.0 ) ) const override;
606 
607  QRectF bounds( QPointF point, QgsSymbolRenderContext &context ) override;
608 
609  protected:
610 
617  double calculateAspectRatio( QgsSymbolRenderContext &context, double scaledSize, bool &hasDataDefinedAspectRatio ) const;
618 
619  QString mPath;
620 
622  double mDefaultAspectRatio = 0.0;
624  double mFixedAspectRatio = 0.0;
625  //param(fill), param(stroke), param(stroke-width) are going
626  //to be replaced in memory
627  QColor mStrokeColor;
628  double mStrokeWidth;
631 
632  private:
633  double calculateSize( QgsSymbolRenderContext &context, bool &hasDataDefinedSize ) const;
634  void calculateOffsetAndRotation( QgsSymbolRenderContext &context, double scaledSize, QPointF &offset, double &angle ) const;
635 
636 };
637 
638 
640 
641 #define POINT2MM(x) ( (x) * 25.4 / 72 ) // point is 1/72 of inch
642 #define MM2POINT(x) ( (x) * 72 / 25.4 )
643 
644 #define DEFAULT_FONTMARKER_FONT "Dingbats"
645 #define DEFAULT_FONTMARKER_CHR QChar('A')
646 #define DEFAULT_FONTMARKER_SIZE POINT2MM(12)
647 #define DEFAULT_FONTMARKER_COLOR QColor( 35, 35, 35 )
648 #define DEFAULT_FONTMARKER_BORDERCOLOR QColor(Qt::white)
649 #define DEFAULT_FONTMARKER_JOINSTYLE Qt::MiterJoin
650 #define DEFAULT_FONTMARKER_ANGLE 0
651 
657 {
658  public:
659  QgsFontMarkerSymbolLayer( const QString &fontFamily = DEFAULT_FONTMARKER_FONT,
660  QChar chr = DEFAULT_FONTMARKER_CHR,
661  double pointSize = DEFAULT_FONTMARKER_SIZE,
662  const QColor &color = DEFAULT_FONTMARKER_COLOR,
663  double angle = DEFAULT_FONTMARKER_ANGLE );
664 
665  ~QgsFontMarkerSymbolLayer() override;
666 
667  // static stuff
668 
672  static QgsSymbolLayer *create( const QgsStringMap &properties = QgsStringMap() ) SIP_FACTORY;
673 
677  static QgsSymbolLayer *createFromSld( QDomElement &element ) SIP_FACTORY;
678 
679  // implemented from base classes
680 
681  QString layerType() const override;
682 
683  void startRender( QgsSymbolRenderContext &context ) override;
684 
685  void stopRender( QgsSymbolRenderContext &context ) override;
686 
687  void renderPoint( QPointF point, QgsSymbolRenderContext &context ) override;
688 
689  QgsStringMap properties() const override;
690 
691  QgsFontMarkerSymbolLayer *clone() const override SIP_FACTORY;
692 
693  void writeSldMarker( QDomDocument &doc, QDomElement &element, const QgsStringMap &props ) const override;
694 
695  // new methods
696 
702  QString fontFamily() const { return mFontFamily; }
703 
709  void setFontFamily( const QString &family ) { mFontFamily = family; }
710 
716  QChar character() const { return mChr; }
717 
723  void setCharacter( QChar ch ) { mChr = ch; }
724 
725  QColor strokeColor() const override { return mStrokeColor; }
726  void setStrokeColor( const QColor &color ) override { mStrokeColor = color; }
727 
737  double strokeWidth() const { return mStrokeWidth; }
738 
748  void setStrokeWidth( double width ) { mStrokeWidth = width; }
749 
759  QgsUnitTypes::RenderUnit strokeWidthUnit() const { return mStrokeWidthUnit; }
760 
769  void setStrokeWidthUnit( QgsUnitTypes::RenderUnit unit ) { mStrokeWidthUnit = unit; }
770 
780  const QgsMapUnitScale &strokeWidthMapUnitScale() const { return mStrokeWidthMapUnitScale; }
781 
791  void setStrokeWidthMapUnitScale( const QgsMapUnitScale &scale ) { mStrokeWidthMapUnitScale = scale; }
792 
800  Qt::PenJoinStyle penJoinStyle() const { return mPenJoinStyle; }
801 
809  void setPenJoinStyle( Qt::PenJoinStyle style ) { mPenJoinStyle = style; }
810 
811  QRectF bounds( QPointF point, QgsSymbolRenderContext &context ) override;
812 
813  protected:
814 
815  QString mFontFamily;
816  QFontMetrics *mFontMetrics = nullptr;
817  QChar mChr;
818 
819  double mChrWidth = 0;
820  QPointF mChrOffset;
821  QFont mFont;
822  double mOrigSize;
823 
824  private:
825 
826  QColor mStrokeColor;
827  double mStrokeWidth;
828  QgsUnitTypes::RenderUnit mStrokeWidthUnit;
829  QgsMapUnitScale mStrokeWidthMapUnitScale;
830  Qt::PenJoinStyle mPenJoinStyle;
831 
832  QPen mPen;
833  QBrush mBrush;
834 
835  QString characterToRender( QgsSymbolRenderContext &context, QPointF &charOffset, double &charWidth );
836  void calculateOffsetAndRotation( QgsSymbolRenderContext &context, double scaledSize, bool &hasDataDefinedRotation, QPointF &offset, double &angle ) const;
837  double calculateSize( QgsSymbolRenderContext &context );
838 };
839 
840 // clazy:excludeall=qstring-allocations
841 
842 #endif
843 
844 
#define DEFAULT_SIMPLEMARKER_SIZE
QgsMapUnitScale mapUnitScale() const override
QRectF bounds(QPointF point, QgsSymbolRenderContext &context) override
Returns the approximate bounding box of the marker symbol layer, taking into account any data defined...
double fixedAspectRatio() const
Returns the marker aspect ratio between width and height to be used in rendering, if the value set is...
void setPenJoinStyle(Qt::PenJoinStyle style)
Sets the marker&#39;s stroke join style (e.g., miter, bevel, etc).
void setStrokeWidthMapUnitScale(const QgsMapUnitScale &scale)
Sets the stroke width map unit scale.
virtual QString ogrFeatureStyle(double mmScaleFactor, double mapUnitScaleFactor) const
QColor mStrokeColor
Stroke color.
QgsUnitTypes::RenderUnit outputUnit() const override
Returns the units to use for sizes and widths within the symbol layer.
Abstract base class for all rendered symbols.
Definition: qgssymbol.h:61
QString fontFamily() const
Returns the font family name for the associated font which will be used to render the point...
virtual QgsSymbol * subSymbol()
Returns the symbol&#39;s sub symbol, if present.
void setStrokeWidthUnit(QgsUnitTypes::RenderUnit u)
Sets the unit for the width of the marker&#39;s stroke.
void setStrokeStyle(Qt::PenStyle strokeStyle)
Sets the marker&#39;s stroke style (e.g., solid, dashed, etc)
Simple marker symbol layer, consisting of a rendered shape with solid fill color and an stroke...
Abstract base class for simple marker symbol layers.
Right facing arrow head (unfilled, lines only)
void startRender(QgsSymbolRenderContext &context) override
QgsMapUnitScale mStrokeWidthMapUnitScale
Stroke width map unit scale.
void setStrokeColor(const QColor &color) override
Sets the marker&#39;s stroke color.
void setStrokeColor(const QColor &c) override
Set stroke color.
void setStrokeWidth(double w)
Sets the width of the marker&#39;s stroke.
#define DEFAULT_FONTMARKER_COLOR
QBrush mSelBrush
QBrush to use as fill of selected symbols.
void setStrokeWidth(double width)
Set&#39;s the marker&#39;s stroke width.
QColor strokeColor() const override
Returns the marker&#39;s stroke color.
#define DEFAULT_SIMPLEMARKER_JOINSTYLE
virtual QgsStringMap properties() const =0
Should be reimplemented by subclasses to return a string map that contains the configuration informat...
Qt::PenJoinStyle penJoinStyle() const
Returns the stroke join style.
QMap< QString, QString > QgsStringMap
Definition: qgis.h:570
double ANALYSIS_EXPORT angle(QgsPoint *p1, QgsPoint *p2, QgsPoint *p3, QgsPoint *p4)
Calculates the angle between two segments (in 2 dimension, z-values are ignored)
Definition: MathUtils.cpp:786
void renderPoint(QPointF point, QgsSymbolRenderContext &context) override
Renders a marker at the specified point.
QString path() const
Returns the marker SVG path.
#define DEFAULT_FONTMARKER_SIZE
QColor strokeColor() const override
Gets stroke color.
void setPenJoinStyle(Qt::PenJoinStyle style)
Sets the stroke join style.
double strokeWidth() const
Returns the width of the marker&#39;s stroke.
QPainterPath mPath
Painter path representing shape. If mPolygon is empty then the shape is stored in mPath...
Diagonal half square (bottom left half)
virtual void setColor(const QColor &color)
The fill color.
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into c
QgsUnitTypes::RenderUnit strokeWidthUnit() const
Returns the stroke width unit.
virtual void writeSldMarker(QDomDocument &doc, QDomElement &element, const QgsStringMap &props) const
Writes the symbol layer definition as a SLD XML element.
virtual QRectF bounds(QPointF point, QgsSymbolRenderContext &context)=0
Returns the approximate bounding box of the marker symbol layer, taking into account any data defined...
One third circle (top left third)
void setStrokeWidthUnit(QgsUnitTypes::RenderUnit unit)
Sets the units for the stroke width.
virtual bool setSubSymbol(QgsSymbol *symbol)
Sets layer&#39;s subsymbol. takes ownership of the passed symbol.
void setStrokeColor(const QColor &color) override
Set stroke color.
QPen mPen
QPen corresponding to marker&#39;s stroke style.
void setStrokeWidthMapUnitScale(const QgsMapUnitScale &scale)
Sets the map scale for the width of the marker&#39;s stroke.
#define DEFAULT_SCALE_METHOD
const QgsMapUnitScale & strokeWidthMapUnitScale() const
Returns the stroke width map unit scale.
virtual void renderPoint(QPointF point, QgsSymbolRenderContext &context)=0
Renders a marker at the specified point.
const QgsMapUnitScale & strokeWidthMapUnitScale() const
Returns the map scale for the width of the marker&#39;s stroke.
QBrush mBrush
QBrush corresponding to marker&#39;s fill style.
QgsMapUnitScale mStrokeWidthMapUnitScale
#define SIP_FORCE
Definition: qgis_sip.h:124
virtual QgsSymbolLayer * clone() const =0
Shall be reimplemented by subclasses to create a deep copy of the instance.
#define SIP_TRANSFER
Definition: qgis_sip.h:36
virtual QColor color() const
The fill color.
void setFillColor(const QColor &color) override
Set fill color.
QColor fillColor() const override
Gets fill color.
#define DEFAULT_FONTMARKER_ANGLE
void setStrokeWidthUnit(QgsUnitTypes::RenderUnit unit)
Sets the stroke width unit.
void setCharacter(QChar ch)
Sets the character used when rendering points.
#define SIP_FACTORY
Definition: qgis_sip.h:69
Qt::PenJoinStyle penJoinStyle() const
Returns the marker&#39;s stroke join style (e.g., miter, bevel, etc).
ScaleMethod
Scale method.
Definition: qgssymbol.h:94
QgsSimpleMarkerSymbolLayerBase::Shape shape() const
Returns the shape for the rendered marker symbol.
QPen mSelPen
QPen to use as stroke of selected symbols.
virtual double estimateMaxBleed(const QgsRenderContext &context) const
Returns the estimated maximum distance which the layer style will bleed outside the drawn shape when ...
Qt::PenStyle strokeStyle() const
Returns the marker&#39;s stroke style (e.g., solid, dashed, etc)
void startRender(QgsSymbolRenderContext &context) override
void stopRender(QgsSymbolRenderContext &context) override
void setFixedAspectRatio(double ratio)
Set the marker aspect ratio between width and height to be used in rendering, if the value set is low...
double defaultAspectRatio() const
Returns the default marker aspect ratio between width and height, 0 if not yet calculated.
QgsUnitTypes::RenderUnit strokeWidthUnit() const
Returns the unit for the width of the marker&#39;s stroke.
#define DEFAULT_SIMPLEMARKER_BORDERCOLOR
virtual QSet< QString > usedAttributes(const QgsRenderContext &context) const
Returns the set of attributes referenced by the layer.
Contains information about the context of a rendering operation.
QChar character() const
Returns the character used when rendering points.
Abstract base class for marker symbol layers.
void setShape(QgsSimpleMarkerSymbolLayerBase::Shape shape)
Sets the rendered marker shape.
QgsUnitTypes::RenderUnit mStrokeWidthUnit
bool preservedAspectRatio() const
Returns the preserved aspect ratio value, true if fixed aspect ratio has been lower or equal to 0...
QImage mCache
Cached image of marker, if using cached version.
Struct for storing maximum and minimum scales for measurements in map units.
virtual void stopRender(QgsSymbolRenderContext &context)=0
void setMapUnitScale(const QgsMapUnitScale &scale) override
#define DEFAULT_SIMPLEMARKER_ANGLE
#define DEFAULT_SIMPLEMARKER_COLOR
Qt::PenJoinStyle mPenJoinStyle
Stroke pen join style.
double strokeWidth() const
Returns the marker&#39;s stroke width.
QColor fillColor() const override
Gets fill color.
QImage mSelCache
Cached image of selected marker, if using cached version.
#define DEFAULT_FONTMARKER_CHR
void setStrokeWidthMapUnitScale(const QgsMapUnitScale &scale)
QgsUnitTypes::RenderUnit strokeWidthUnit() const
Returns the units for the stroke width.
void setFontFamily(const QString &family)
Sets the font family for the font which will be used to render the point.
void setFillColor(const QColor &color) override
Set fill color.
QColor strokeColor() const override
Gets stroke color.
const QgsMapUnitScale & strokeWidthMapUnitScale() const
virtual bool writeDxf(QgsDxfExport &e, double mmMapUnitScaleFactor, const QString &layerName, QgsSymbolRenderContext &context, QPointF shift=QPointF(0.0, 0.0)) const
write as DXF
Resolves relative paths into absolute paths and vice versa.
#define DEFAULT_SVGMARKER_SIZE
Filled marker symbol layer, consisting of a shape which is rendered using a QgsFillSymbol.
#define DEFAULT_SVGMARKER_ANGLE
Rotated cross (lines only), "x" shape.
void setOutputUnit(QgsUnitTypes::RenderUnit unit) override
Sets the units to use for sizes and widths within the symbol layer.
QPolygonF mPolygon
Polygon of points in shape. If polygon is empty then shape is using mPath.
#define DEFAULT_FONTMARKER_FONT
RenderUnit
Rendering size units.
Definition: qgsunittypes.h:110
virtual QString layerType() const =0
Returns a string that represents this layer type.