QGIS API Documentation  3.10.0-A Coruña (6c816b4204)
Public Member Functions | Static Public Member Functions | List of all members
QgsFilledMarkerSymbolLayer Class Reference

Filled marker symbol layer, consisting of a shape which is rendered using a QgsFillSymbol. More...

#include <qgsmarkersymbollayer.h>

Inheritance diagram for QgsFilledMarkerSymbolLayer:
Inheritance graph
[legend]

Public Member Functions

 QgsFilledMarkerSymbolLayer (QgsSimpleMarkerSymbolLayerBase::Shape shape=Circle, double size=DEFAULT_SIMPLEMARKER_SIZE, double angle=DEFAULT_SIMPLEMARKER_ANGLE, QgsSymbol::ScaleMethod scaleMethod=DEFAULT_SCALE_METHOD)
 Constructor for QgsFilledMarkerSymbolLayer. More...
 
QgsFilledMarkerSymbolLayerclone () const override
 Shall be reimplemented by subclasses to create a deep copy of the instance. More...
 
QColor color () const override
 The fill color. More...
 
double estimateMaxBleed (const QgsRenderContext &context) const override
 Returns the estimated maximum distance which the layer style will bleed outside the drawn shape when drawn in the specified /a context. More...
 
bool hasDataDefinedProperties () const override
 Returns true if the symbol layer (or any of its sub-symbols) contains data defined properties. More...
 
QString layerType () const override
 Returns a string that represents this layer type. More...
 
QgsStringMap properties () const override
 Should be reimplemented by subclasses to return a string map that contains the configuration information for the symbol layer. More...
 
void setColor (const QColor &c) override
 The fill color. More...
 
bool setSubSymbol (QgsSymbol *symbol) override
 Sets layer's subsymbol. takes ownership of the passed symbol. More...
 
void startRender (QgsSymbolRenderContext &context) override
 
void stopRender (QgsSymbolRenderContext &context) override
 
QgsSymbolsubSymbol () override
 Returns the symbol's sub symbol, if present. More...
 
QSet< QString > usedAttributes (const QgsRenderContext &context) const override
 Returns the set of attributes referenced by the layer. More...
 
- Public Member Functions inherited from QgsSimpleMarkerSymbolLayerBase
 QgsSimpleMarkerSymbolLayerBase (QgsSimpleMarkerSymbolLayerBase::Shape shape=Circle, double size=DEFAULT_SIMPLEMARKER_SIZE, double angle=DEFAULT_SIMPLEMARKER_ANGLE, QgsSymbol::ScaleMethod scaleMethod=DEFAULT_SCALE_METHOD)
 Constructor for QgsSimpleMarkerSymbolLayerBase. More...
 
QRectF bounds (QPointF point, QgsSymbolRenderContext &context) override
 Returns the approximate bounding box of the marker symbol layer, taking into account any data defined overrides and offsets which are set for the marker layer. More...
 
void renderPoint (QPointF point, QgsSymbolRenderContext &context) override
 Renders a marker at the specified point. More...
 
void setShape (QgsSimpleMarkerSymbolLayerBase::Shape shape)
 Sets the rendered marker shape. More...
 
QgsSimpleMarkerSymbolLayerBase::Shape shape () const
 Returns the shape for the rendered marker symbol. More...
 
- Public Member Functions inherited from QgsMarkerSymbolLayer
 QgsMarkerSymbolLayer (const QgsMarkerSymbolLayer &other)=delete
 QgsMarkerSymbolLayer cannot be copied. More...
 
double angle () const
 Returns the rotation angle for the marker, in degrees clockwise from north. More...
 
void drawPreviewIcon (QgsSymbolRenderContext &context, QSize size) override
 
HorizontalAnchorPoint horizontalAnchorPoint () const
 Returns the horizontal anchor point for positioning the symbol. More...
 
QgsMapUnitScale mapUnitScale () const override
 
QPointF offset () const
 Returns the marker's offset, which is the horizontal and vertical displacement which the rendered marker will have from the original feature's geometry. More...
 
const QgsMapUnitScaleoffsetMapUnitScale () const
 Returns the map unit scale for the symbol's offset. More...
 
QgsUnitTypes::RenderUnit offsetUnit () const
 Returns the units for the symbol's offset. More...
 
QgsMarkerSymbolLayeroperator= (const QgsMarkerSymbolLayer &other)=delete
 QgsMarkerSymbolLayer cannot be copied. More...
 
QgsUnitTypes::RenderUnit outputUnit () const override
 Returns the units to use for sizes and widths within the symbol layer. More...
 
QgsSymbol::ScaleMethod scaleMethod () const
 Returns the method to use for scaling the marker's size. More...
 
void setAngle (double angle)
 Sets the rotation angle for the marker. More...
 
void setHorizontalAnchorPoint (HorizontalAnchorPoint h)
 Sets the horizontal anchor point for positioning the symbol. More...
 
void setLineAngle (double lineAngle)
 Sets the line angle modification for the symbol's angle. More...
 
void setMapUnitScale (const QgsMapUnitScale &scale) override
 
void setOffset (QPointF offset)
 Sets the marker's offset, which is the horizontal and vertical displacement which the rendered marker should have from the original feature's geometry. More...
 
void setOffsetMapUnitScale (const QgsMapUnitScale &scale)
 Sets the map unit scale for the symbol's offset. More...
 
void setOffsetUnit (QgsUnitTypes::RenderUnit unit)
 Sets the units for the symbol's offset. More...
 
void setOutputUnit (QgsUnitTypes::RenderUnit unit) override
 Sets the units to use for sizes and widths within the symbol layer. More...
 
void setScaleMethod (QgsSymbol::ScaleMethod scaleMethod)
 Sets the method to use for scaling the marker's size. More...
 
virtual void setSize (double size)
 Sets the symbol size. More...
 
void setSizeMapUnitScale (const QgsMapUnitScale &scale)
 Sets the map unit scale for the symbol's size. More...
 
void setSizeUnit (QgsUnitTypes::RenderUnit unit)
 Sets the units for the symbol's size. More...
 
void setVerticalAnchorPoint (VerticalAnchorPoint v)
 Sets the vertical anchor point for positioning the symbol. More...
 
double size () const
 Returns the symbol size. More...
 
const QgsMapUnitScalesizeMapUnitScale () const
 Returns the map unit scale for the symbol's size. More...
 
QgsUnitTypes::RenderUnit sizeUnit () const
 Returns the units for the symbol's size. More...
 
void startRender (QgsSymbolRenderContext &context) override
 
void stopRender (QgsSymbolRenderContext &context) override
 
void toSld (QDomDocument &doc, QDomElement &element, const QgsStringMap &props) const override
 
VerticalAnchorPoint verticalAnchorPoint () const
 Returns the vertical anchor point for positioning the symbol. More...
 
virtual void writeSldMarker (QDomDocument &doc, QDomElement &element, const QgsStringMap &props) const
 Writes the symbol layer definition as a SLD XML element. More...
 
- Public Member Functions inherited from QgsSymbolLayer
 QgsSymbolLayer (const QgsSymbolLayer &other)=delete
 QgsSymbolLayer cannot be copied. More...
 
virtual ~QgsSymbolLayer ()
 
QgsPropertyCollectiondataDefinedProperties ()
 Returns a reference to the symbol layer's property collection, used for data defined overrides. More...
 
const QgsPropertyCollectiondataDefinedProperties () const
 Returns a reference to the symbol layer's property collection, used for data defined overrides. More...
 
virtual double dxfAngle (QgsSymbolRenderContext &context) const
 Gets angle. More...
 
virtual QColor dxfBrushColor (QgsSymbolRenderContext &context) const
 Gets brush/fill color. More...
 
virtual Qt::BrushStyle dxfBrushStyle () const
 Gets brush/fill style. More...
 
virtual QColor dxfColor (QgsSymbolRenderContext &context) const
 Gets color. More...
 
virtual QVector< qreal > dxfCustomDashPattern (QgsUnitTypes::RenderUnit &unit) const
 Gets dash pattern. More...
 
virtual double dxfOffset (const QgsDxfExport &e, QgsSymbolRenderContext &context) const
 Gets offset. More...
 
virtual Qt::PenStyle dxfPenStyle () const
 Gets pen style. More...
 
virtual double dxfWidth (const QgsDxfExport &e, QgsSymbolRenderContext &context) const
 Gets line width. More...
 
bool enabled () const
 Returns true if symbol layer is enabled and will be drawn. More...
 
virtual QColor fillColor () const
 Gets fill color. More...
 
virtual bool isCompatibleWithSymbol (QgsSymbol *symbol) const
 Returns if the layer can be used below the specified symbol. More...
 
bool isLocked () const
 
virtual QString ogrFeatureStyle (double mmScaleFactor, double mapUnitScaleFactor) const
 
QgsSymbolLayeroperator= (const QgsSymbolLayer &other)=delete
 QgsSymbolLayer cannot be copied. More...
 
QgsPaintEffectpaintEffect () const
 Returns the current paint effect for the layer. More...
 
virtual void prepareExpressions (const QgsSymbolRenderContext &context)
 Prepares all data defined property expressions for evaluation. More...
 
int renderingPass () const
 Specifies the rendering pass in which this symbol layer should be rendered. More...
 
void setDataDefinedProperties (const QgsPropertyCollection &collection)
 Sets the symbol layer's property collection, used for data defined overrides. More...
 
virtual void setDataDefinedProperty (Property key, const QgsProperty &property)
 Sets a data defined property for the layer. More...
 
void setEnabled (bool enabled)
 Sets whether symbol layer is enabled and should be drawn. More...
 
virtual void setFillColor (const QColor &color)
 Set fill color. More...
 
void setLocked (bool locked)
 
void setPaintEffect (QgsPaintEffect *effect)
 Sets the current paint effect for the layer. More...
 
void setRenderingPass (int renderingPass)
 Specifies the rendering pass in which this symbol layer should be rendered. More...
 
virtual void setStrokeColor (const QColor &color)
 Set stroke color. More...
 
virtual QColor strokeColor () const
 Gets stroke color. More...
 
QgsSymbol::SymbolType type () const
 
virtual bool writeDxf (QgsDxfExport &e, double mmMapUnitScaleFactor, const QString &layerName, QgsSymbolRenderContext &context, QPointF shift=QPointF(0.0, 0.0)) const
 write as DXF More...
 

Static Public Member Functions

static QgsSymbolLayercreate (const QgsStringMap &properties=QgsStringMap())
 Creates a new QgsFilledMarkerSymbolLayer. More...
 
- Static Public Member Functions inherited from QgsSimpleMarkerSymbolLayerBase
static QList< QgsSimpleMarkerSymbolLayerBase::ShapeavailableShapes ()
 Returns a list of all available shape types. More...
 
static QgsSimpleMarkerSymbolLayerBase::Shape decodeShape (const QString &name, bool *ok=nullptr)
 Attempts to decode a string representation of a shape name to the corresponding shape. More...
 
static QString encodeShape (QgsSimpleMarkerSymbolLayerBase::Shape shape)
 Encodes a shape to its string representation. More...
 
static bool shapeIsFilled (QgsSimpleMarkerSymbolLayerBase::Shape shape)
 Returns true if a symbol shape has a fill. More...
 
- Static Public Member Functions inherited from QgsSymbolLayer
static const QgsPropertiesDefinitionpropertyDefinitions ()
 Returns the symbol layer property definitions. More...
 

Additional Inherited Members

- Public Types inherited from QgsSimpleMarkerSymbolLayerBase
enum  Shape {
  Square, Diamond, Pentagon, Hexagon,
  Triangle, EquilateralTriangle, Star, Arrow,
  Circle, Cross, CrossFill, Cross2,
  Line, ArrowHead, ArrowHeadFilled, SemiCircle,
  ThirdCircle, QuarterCircle, QuarterSquare, HalfSquare,
  DiagonalHalfSquare, RightHalfTriangle, LeftHalfTriangle
}
 Marker symbol shapes. More...
 
- Public Types inherited from QgsMarkerSymbolLayer
enum  HorizontalAnchorPoint { Left, HCenter, Right }
 Symbol horizontal anchor points. More...
 
enum  VerticalAnchorPoint { Top, VCenter, Bottom }
 Symbol vertical anchor points. More...
 
- Public Types inherited from QgsSymbolLayer
enum  Property {
  PropertySize = 0, PropertyAngle, PropertyName, PropertyFillColor,
  PropertyStrokeColor, PropertyStrokeWidth, PropertyStrokeStyle, PropertyOffset,
  PropertyCharacter, PropertyWidth, PropertyHeight, PropertyPreserveAspectRatio,
  PropertyFillStyle, PropertyJoinStyle, PropertySecondaryColor, PropertyLineAngle,
  PropertyLineDistance, PropertyGradientType, PropertyCoordinateMode, PropertyGradientSpread,
  PropertyGradientReference1X, PropertyGradientReference1Y, PropertyGradientReference2X, PropertyGradientReference2Y,
  PropertyGradientReference1IsCentroid, PropertyGradientReference2IsCentroid, PropertyBlurRadius, PropertyShapeburstUseWholeShape,
  PropertyShapeburstMaxDistance, PropertyShapeburstIgnoreRings, PropertyFile, PropertyDistanceX,
  PropertyDistanceY, PropertyDisplacementX, PropertyDisplacementY, PropertyOpacity,
  PropertyCustomDash, PropertyCapStyle, PropertyPlacement, PropertyInterval,
  PropertyOffsetAlongLine, PropertyAverageAngleLength, PropertyHorizontalAnchor, PropertyVerticalAnchor,
  PropertyLayerEnabled, PropertyArrowWidth, PropertyArrowStartWidth, PropertyArrowHeadLength,
  PropertyArrowHeadThickness, PropertyArrowHeadType, PropertyArrowType, PropertyOffsetX,
  PropertyOffsetY
}
 Data definable properties. More...
 
- Protected Member Functions inherited from QgsSimpleMarkerSymbolLayerBase
void calculateOffsetAndRotation (QgsSymbolRenderContext &context, double scaledSize, bool &hasDataDefinedRotation, QPointF &offset, double &angle) const
 Calculates the marker offset and rotation. More...
 
double calculateSize (QgsSymbolRenderContext &context, bool &hasDataDefinedSize) const
 Calculates the desired size of the marker, considering data defined size overrides. More...
 
bool prepareMarkerPath (Shape symbol)
 Prepares the layer for drawing the specified shape (QPainterPath version) More...
 
bool prepareMarkerShape (Shape shape)
 Prepares the layer for drawing the specified shape (QPolygonF version) More...
 
bool shapeToPolygon (Shape shape, QPolygonF &polygon) const
 Creates a polygon representing the specified shape. More...
 
- Protected Member Functions inherited from QgsMarkerSymbolLayer
 QgsMarkerSymbolLayer (bool locked=false)
 Constructor for QgsMarkerSymbolLayer. More...
 
void markerOffset (QgsSymbolRenderContext &context, double &offsetX, double &offsetY) const
 Calculates the required marker offset, including both the symbol offset and any displacement required to align with the marker's anchor point. More...
 
void markerOffset (QgsSymbolRenderContext &context, double width, double height, double &offsetX, double &offsetY) const
 Calculates the required marker offset, including both the symbol offset and any displacement required to align with the marker's anchor point. More...
 
void markerOffset (QgsSymbolRenderContext &context, double width, double height, QgsUnitTypes::RenderUnit widthUnit, QgsUnitTypes::RenderUnit heightUnit, double &offsetX, double &offsetY, const QgsMapUnitScale &widthMapUnitScale, const QgsMapUnitScale &heightMapUnitScale) const
 
- Protected Member Functions inherited from QgsSymbolLayer
 QgsSymbolLayer (QgsSymbol::SymbolType type, bool locked=false)
 
void copyDataDefinedProperties (QgsSymbolLayer *destLayer) const
 Copies all data defined properties of this layer to another symbol layer. More...
 
void copyPaintEffect (QgsSymbolLayer *destLayer) const
 Copies paint effect of this layer to another symbol layer. More...
 
void restoreOldDataDefinedProperties (const QgsStringMap &stringMap)
 Restores older data defined properties from string map. More...
 
- Static Protected Member Functions inherited from QgsMarkerSymbolLayer
static QPointF _rotatedOffset (QPointF offset, double angle)
 Adjusts a marker offset to account for rotation. More...
 
- Protected Attributes inherited from QgsSimpleMarkerSymbolLayerBase
QPainterPath mPath
 Painter path representing shape. If mPolygon is empty then the shape is stored in mPath. More...
 
QPolygonF mPolygon
 Polygon of points in shape. If polygon is empty then shape is using mPath. More...
 
Shape mShape
 Symbol shape. More...
 
- Protected Attributes inherited from QgsMarkerSymbolLayer
double mAngle = 0
 Marker rotation angle, in degrees clockwise from north. More...
 
HorizontalAnchorPoint mHorizontalAnchorPoint = HCenter
 Horizontal anchor point. More...
 
double mLineAngle = 0
 Line rotation angle (see setLineAngle() for details) More...
 
QPointF mOffset
 Marker offset. More...
 
QgsMapUnitScale mOffsetMapUnitScale
 Offset map unit scale. More...
 
QgsUnitTypes::RenderUnit mOffsetUnit = QgsUnitTypes::RenderMillimeters
 Offset units. More...
 
QgsSymbol::ScaleMethod mScaleMethod = QgsSymbol::ScaleDiameter
 Marker size scaling method. More...
 
double mSize = 2.0
 Marker size. More...
 
QgsMapUnitScale mSizeMapUnitScale
 Marker size map unit scale. More...
 
QgsUnitTypes::RenderUnit mSizeUnit = QgsUnitTypes::RenderMillimeters
 Marker size unit. More...
 
VerticalAnchorPoint mVerticalAnchorPoint = VCenter
 Vertical anchor point. More...
 
- Protected Attributes inherited from QgsSymbolLayer
QColor mColor
 
QgsPropertyCollection mDataDefinedProperties
 
bool mEnabled = true
 True if layer is enabled and should be drawn. More...
 
QgsFields mFields
 
bool mLocked = false
 
std::unique_ptr< QgsPaintEffectmPaintEffect
 
int mRenderingPass = 0
 
QgsSymbol::SymbolType mType
 
- Static Protected Attributes inherited from QgsSymbolLayer
static const bool SELECT_FILL_BORDER = false
 Whether fill styles for selected features also highlight symbol stroke. More...
 
static const bool SELECT_FILL_STYLE = false
 Whether fill styles for selected features uses symbol layer style. More...
 
static const bool SELECTION_IS_OPAQUE = true
 Whether styles for selected features ignore symbol alpha. More...
 

Detailed Description

Filled marker symbol layer, consisting of a shape which is rendered using a QgsFillSymbol.

This allows the symbol to support advanced styling of the interior and stroke of the shape.

Since
QGIS 2.16

Definition at line 426 of file qgsmarkersymbollayer.h.

Constructor & Destructor Documentation

◆ QgsFilledMarkerSymbolLayer()

QgsFilledMarkerSymbolLayer::QgsFilledMarkerSymbolLayer ( QgsSimpleMarkerSymbolLayerBase::Shape  shape = Circle,
double  size = DEFAULT_SIMPLEMARKER_SIZE,
double  angle = DEFAULT_SIMPLEMARKER_ANGLE,
QgsSymbol::ScaleMethod  scaleMethod = DEFAULT_SCALE_METHOD 
)

Constructor for QgsFilledMarkerSymbolLayer.

Parameters
shapesymbol shape
sizesymbol size (in mm)
anglesymbol rotation angle
scaleMethodsize scaling method

Definition at line 1512 of file qgsmarkersymbollayer.cpp.

Member Function Documentation

◆ clone()

QgsFilledMarkerSymbolLayer * QgsFilledMarkerSymbolLayer::clone ( ) const
overridevirtual

Shall be reimplemented by subclasses to create a deep copy of the instance.

Implements QgsSymbolLayer.

Definition at line 1606 of file qgsmarkersymbollayer.cpp.

◆ color()

QColor QgsFilledMarkerSymbolLayer::color ( ) const
overridevirtual

The fill color.

Reimplemented from QgsSymbolLayer.

Definition at line 1667 of file qgsmarkersymbollayer.cpp.

◆ create()

QgsSymbolLayer * QgsFilledMarkerSymbolLayer::create ( const QgsStringMap properties = QgsStringMap())
static

Creates a new QgsFilledMarkerSymbolLayer.

Parameters
propertiesa property map containing symbol properties (see properties())
Returns
new QgsFilledMarkerSymbolLayer

Definition at line 1518 of file qgsmarkersymbollayer.cpp.

◆ estimateMaxBleed()

double QgsFilledMarkerSymbolLayer::estimateMaxBleed ( const QgsRenderContext context) const
overridevirtual

Returns the estimated maximum distance which the layer style will bleed outside the drawn shape when drawn in the specified /a context.

For example, polygons drawn with an stroke will draw half the width of the stroke outside of the polygon. This amount is estimated, since it may be affected by data defined symbology rules.

Reimplemented from QgsSymbolLayer.

Definition at line 1634 of file qgsmarkersymbollayer.cpp.

◆ hasDataDefinedProperties()

bool QgsFilledMarkerSymbolLayer::hasDataDefinedProperties ( ) const
overridevirtual

Returns true if the symbol layer (or any of its sub-symbols) contains data defined properties.

Since
QGIS 3.4.5

Reimplemented from QgsSymbolLayer.

Definition at line 1651 of file qgsmarkersymbollayer.cpp.

◆ layerType()

QString QgsFilledMarkerSymbolLayer::layerType ( ) const
overridevirtual

Returns a string that represents this layer type.

Used for serialization. Should match with the string used to register this symbol layer in the registry.

Implements QgsSymbolLayer.

Definition at line 1561 of file qgsmarkersymbollayer.cpp.

◆ properties()

QgsStringMap QgsFilledMarkerSymbolLayer::properties ( ) const
overridevirtual

Should be reimplemented by subclasses to return a string map that contains the configuration information for the symbol layer.

This is used to serialize a symbol layer perstistently.

Implements QgsSymbolLayer.

Definition at line 1584 of file qgsmarkersymbollayer.cpp.

◆ setColor()

void QgsFilledMarkerSymbolLayer::setColor ( const QColor &  color)
overridevirtual

The fill color.

Reimplemented from QgsSymbolLayer.

Definition at line 1660 of file qgsmarkersymbollayer.cpp.

◆ setSubSymbol()

bool QgsFilledMarkerSymbolLayer::setSubSymbol ( QgsSymbol symbol)
overridevirtual

Sets layer's subsymbol. takes ownership of the passed symbol.

Reimplemented from QgsSymbolLayer.

Definition at line 1620 of file qgsmarkersymbollayer.cpp.

◆ startRender()

void QgsFilledMarkerSymbolLayer::startRender ( QgsSymbolRenderContext context)
overridevirtual

Reimplemented from QgsSimpleMarkerSymbolLayerBase.

Definition at line 1566 of file qgsmarkersymbollayer.cpp.

◆ stopRender()

void QgsFilledMarkerSymbolLayer::stopRender ( QgsSymbolRenderContext context)
overridevirtual

Reimplemented from QgsSimpleMarkerSymbolLayerBase.

Definition at line 1576 of file qgsmarkersymbollayer.cpp.

◆ subSymbol()

QgsSymbol * QgsFilledMarkerSymbolLayer::subSymbol ( )
overridevirtual

Returns the symbol's sub symbol, if present.

Reimplemented from QgsSymbolLayer.

Definition at line 1615 of file qgsmarkersymbollayer.cpp.

◆ usedAttributes()

QSet< QString > QgsFilledMarkerSymbolLayer::usedAttributes ( const QgsRenderContext context) const
overridevirtual

Returns the set of attributes referenced by the layer.

This includes attributes required by any data defined properties associated with the layer.

Reimplemented from QgsSymbolLayer.

Definition at line 1643 of file qgsmarkersymbollayer.cpp.


The documentation for this class was generated from the following files: