QGIS API Documentation  3.18.1-Zürich (202f1bf7e5)
Public Types | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Friends | List of all members
QgsTemplatedLineSymbolLayerBase Class Referenceabstract

Base class for templated line symbols, e.g. More...

#include <qgslinesymbollayer.h>

Inheritance diagram for QgsTemplatedLineSymbolLayerBase:
Inheritance graph
[legend]

Public Types

enum  Placement {
  Interval , Vertex , LastVertex , FirstVertex ,
  CentralPoint , CurvePoint , SegmentCenter
}
 Defines how/where the templated symbol should be placed on the line. More...
 
- Public Types inherited from QgsLineSymbolLayer
enum  RenderRingFilter { AllRings , ExteriorRingOnly , InteriorRingsOnly }
 Options for filtering rings when the line symbol layer is being used to render a polygon's rings. 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 , PropertyPointCount , PropertyRandomSeed , PropertyClipPoints ,
  PropertyDensityArea , PropertyFontFamily , PropertyFontStyle , PropertyDashPatternOffset
}
 Data definable properties. More...
 

Public Member Functions

 QgsTemplatedLineSymbolLayerBase (bool rotateSymbol=true, double interval=3)
 Constructor for QgsTemplatedLineSymbolLayerBase. More...
 
double averageAngleLength () const
 Returns the length of line over which the line's direction is averaged when calculating individual symbol angles. More...
 
const QgsMapUnitScaleaverageAngleMapUnitScale () const
 Returns the map unit scale for the length over which the line's direction is averaged when calculating individual symbol angles. More...
 
QgsUnitTypes::RenderUnit averageAngleUnit () const
 Returns the unit for the length over which the line's direction is averaged when calculating individual symbol angles. More...
 
bool canCauseArtifactsBetweenAdjacentTiles () const override
 Returns true if the symbol layer rendering can cause visible artifacts across a single feature when the feature is rendered as a series of adjacent map tiles each containing a portion of the feature's geometry. More...
 
double interval () const
 Returns the interval between individual symbols. More...
 
const QgsMapUnitScaleintervalMapUnitScale () const
 Returns the map unit scale for the interval between symbols. More...
 
QgsUnitTypes::RenderUnit intervalUnit () const
 Returns the units for the interval between symbols. More...
 
QgsMapUnitScale mapUnitScale () const FINAL
 
double offsetAlongLine () const
 Returns the offset along the line for the symbol placement. More...
 
const QgsMapUnitScaleoffsetAlongLineMapUnitScale () const
 Returns the map unit scale used for calculating the offset in map units along line for symbols. More...
 
QgsUnitTypes::RenderUnit offsetAlongLineUnit () const
 Returns the unit used for calculating the offset along line for symbols. More...
 
QgsUnitTypes::RenderUnit outputUnit () const FINAL
 Returns the units to use for sizes and widths within the symbol layer. More...
 
Placement placement () const
 Returns the placement of the symbols. More...
 
QVariantMap properties () const override
 Should be reimplemented by subclasses to return a string map that contains the configuration information for the symbol layer. More...
 
void renderPolygonStroke (const QPolygonF &points, const QVector< QPolygonF > *rings, QgsSymbolRenderContext &context) FINAL
 Renders the line symbol layer along the outline of polygon, using the given render context. More...
 
void renderPolyline (const QPolygonF &points, QgsSymbolRenderContext &context) override
 Renders the line symbol layer along the line joining points, using the given render context. More...
 
bool rotateSymbols () const
 Returns true if the repeating symbols be rotated to match their line segment orientation. More...
 
void setAverageAngleLength (double length)
 Sets the length of line over which the line's direction is averaged when calculating individual symbol angles. More...
 
void setAverageAngleMapUnitScale (const QgsMapUnitScale &scale)
 Sets the map unit scale for the length over which the line's direction is averaged when calculating individual symbol angles. More...
 
void setAverageAngleUnit (QgsUnitTypes::RenderUnit unit)
 Sets the unit for the length over which the line's direction is averaged when calculating individual symbol angles. More...
 
void setInterval (double interval)
 Sets the interval between individual symbols. More...
 
void setIntervalMapUnitScale (const QgsMapUnitScale &scale)
 Sets the map unit scale for the interval between symbols. More...
 
void setIntervalUnit (QgsUnitTypes::RenderUnit unit)
 Sets the units for the interval between symbols. More...
 
void setMapUnitScale (const QgsMapUnitScale &scale) FINAL
 
void setOffsetAlongLine (double offsetAlongLine)
 Sets the the offset along the line for the symbol placement. More...
 
void setOffsetAlongLineMapUnitScale (const QgsMapUnitScale &scale)
 Sets the map unit scale used for calculating the offset in map units along line for symbols. More...
 
void setOffsetAlongLineUnit (QgsUnitTypes::RenderUnit unit)
 Sets the unit used for calculating the offset along line for symbols. More...
 
void setPlacement (Placement placement)
 Sets the placement of the symbols. More...
 
void setRotateSymbols (bool rotate)
 Sets whether the repeating symbols should be rotated to match their line segment orientation. More...
 
- Public Member Functions inherited from QgsLineSymbolLayer
 QgsLineSymbolLayer (const QgsLineSymbolLayer &other)=delete
 QgsLineSymbolLayer cannot be copied. More...
 
void drawPreviewIcon (QgsSymbolRenderContext &context, QSize size) override
 
double dxfWidth (const QgsDxfExport &e, QgsSymbolRenderContext &context) const override
 Gets line width. More...
 
QgsMapUnitScale mapUnitScale () const override
 
double offset () const
 Returns the line's offset. More...
 
const QgsMapUnitScaleoffsetMapUnitScale () const
 Returns the map unit scale for the line's offset. More...
 
QgsUnitTypes::RenderUnit offsetUnit () const
 Returns the units for the line's offset. More...
 
QgsLineSymbolLayeroperator= (const QgsLineSymbolLayer &other)=delete
 QgsLineSymbolLayer cannot be copied. More...
 
QgsUnitTypes::RenderUnit outputUnit () const override
 Returns the units to use for sizes and widths within the symbol layer. More...
 
RenderRingFilter ringFilter () const
 Returns the line symbol layer's ring filter, which controls which rings are rendered when the line symbol is being used to draw a polygon's rings. More...
 
void setMapUnitScale (const QgsMapUnitScale &scale) override
 
void setOffset (double offset)
 Sets the line's offset. More...
 
void setOffsetMapUnitScale (const QgsMapUnitScale &scale)
 Sets the map unit scale for the line's offset. More...
 
void setOffsetUnit (QgsUnitTypes::RenderUnit unit)
 Sets the unit for the line's offset. More...
 
void setOutputUnit (QgsUnitTypes::RenderUnit unit) override
 Sets the units to use for sizes and widths within the symbol layer. More...
 
void setRingFilter (QgsLineSymbolLayer::RenderRingFilter filter)
 Sets the line symbol layer's ring filter, which controls which rings are rendered when the line symbol is being used to draw a polygon's rings. More...
 
virtual void setWidth (double width)
 Sets the width of the line symbol layer. More...
 
void setWidthMapUnitScale (const QgsMapUnitScale &scale)
 
void setWidthUnit (QgsUnitTypes::RenderUnit unit)
 Sets the units for the line's width. More...
 
virtual double width () const
 Returns the estimated width for the line symbol layer. More...
 
virtual double width (const QgsRenderContext &context) const
 Returns the line symbol layer width, in painter units. More...
 
const QgsMapUnitScalewidthMapUnitScale () const
 
QgsUnitTypes::RenderUnit widthUnit () const
 Returns the units for the line's width. More...
 
- Public Member Functions inherited from QgsSymbolLayer
 QgsSymbolLayer (const QgsSymbolLayer &other)=delete
 QgsSymbolLayer cannot be copied. More...
 
virtual ~QgsSymbolLayer ()
 
virtual QgsSymbolLayerclone () const =0
 Shall be reimplemented by subclasses to create a deep copy of the instance. More...
 
virtual QColor color () const
 The fill color. More...
 
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...
 
bool enabled () const
 Returns true if symbol layer is enabled and will be drawn. More...
 
virtual double estimateMaxBleed (const QgsRenderContext &context) const
 Returns the estimated maximum distance which the layer style will bleed outside the drawn shape when drawn in the specified /a context. More...
 
virtual QColor fillColor () const
 Gets fill color. More...
 
virtual bool hasDataDefinedProperties () const
 Returns true if the symbol layer (or any of its sub-symbols) contains data defined properties. More...
 
virtual bool isCompatibleWithSymbol (QgsSymbol *symbol) const
 Returns if the layer can be used below the specified symbol. More...
 
bool isLocked () const
 
virtual QString layerType () const =0
 Returns a string that represents this layer type. More...
 
virtual QgsSymbolLayerReferenceList masks () const
 Returns masks defined by this symbol layer. More...
 
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...
 
virtual void setColor (const QColor &color)
 The fill color. 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 bool setSubSymbol (QgsSymbol *symbol)
 Sets layer's subsymbol. takes ownership of the passed symbol. More...
 
virtual void startFeatureRender (const QgsFeature &feature, QgsRenderContext &context)
 Called before the layer will be rendered for a particular feature. More...
 
virtual void startRender (QgsSymbolRenderContext &context)=0
 Called before a set of rendering operations commences on the supplied render context. More...
 
virtual void stopFeatureRender (const QgsFeature &feature, QgsRenderContext &context)
 Called after the layer has been rendered for a particular feature. More...
 
virtual void stopRender (QgsSymbolRenderContext &context)=0
 Called after a set of rendering operations has finished on the supplied render context. More...
 
virtual QColor strokeColor () const
 Gets stroke color. More...
 
virtual QgsSymbolsubSymbol ()
 Returns the symbol's sub symbol, if present. More...
 
virtual void toSld (QDomDocument &doc, QDomElement &element, const QVariantMap &props) const
 Saves the symbol layer as SLD. More...
 
QgsSymbol::SymbolType type () const
 
virtual QSet< QString > usedAttributes (const QgsRenderContext &context) const
 Returns the set of attributes referenced by the layer. More...
 
virtual bool usesMapUnits () const
 Returns true if the symbol layer has any components which use map unit based sizes. More...
 
virtual bool writeDxf (QgsDxfExport &e, double mmMapUnitScaleFactor, const QString &layerName, QgsSymbolRenderContext &context, QPointF shift=QPointF(0.0, 0.0)) const
 write as DXF More...
 

Protected Member Functions

void copyTemplateSymbolProperties (QgsTemplatedLineSymbolLayerBase *destLayer) const
 Copies all common properties of this layer to another templated symbol layer. More...
 
virtual void renderSymbol (const QPointF &point, const QgsFeature *feature, QgsRenderContext &context, int layer=-1, bool selected=false)=0
 Renders the templated symbol at the specified point, using the given render context. More...
 
virtual void setSymbolAngle (double angle)=0
 Sets the symbol's angle, in degrees clockwise. More...
 
virtual void setSymbolLineAngle (double angle)=0
 Sets the line angle modification for the symbol's angle. More...
 
virtual double symbolAngle () const =0
 Returns the symbol's current angle, in degrees clockwise. More...
 
- Protected Member Functions inherited from QgsLineSymbolLayer
 QgsLineSymbolLayer (bool locked=false)
 
- 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 QVariantMap &stringMap)
 Restores older data defined properties from string map. More...
 

Static Protected Member Functions

static void setCommonProperties (QgsTemplatedLineSymbolLayerBase *destLayer, const QVariantMap &properties)
 Sets all common symbol properties in the destLayer, using the settings serialized in the properties map. More...
 

Friends

class TestQgsMarkerLineSymbol
 

Additional Inherited Members

- Static Public Member Functions inherited from QgsSymbolLayer
static const QgsPropertiesDefinitionpropertyDefinitions ()
 Returns the symbol layer property definitions. More...
 
- Protected Attributes inherited from QgsLineSymbolLayer
double mOffset = 0
 
QgsMapUnitScale mOffsetMapUnitScale
 
QgsUnitTypes::RenderUnit mOffsetUnit = QgsUnitTypes::RenderMillimeters
 
RenderRingFilter mRingFilter = AllRings
 
double mWidth = 0
 
QgsMapUnitScale mWidthMapUnitScale
 
QgsUnitTypes::RenderUnit mWidthUnit = QgsUnitTypes::RenderMillimeters
 
- 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

Base class for templated line symbols, e.g.

line symbols which draw markers or hash lines at intervals along the line feature.

Since
QGIS 3.8

Definition at line 382 of file qgslinesymbollayer.h.

Member Enumeration Documentation

◆ Placement

Defines how/where the templated symbol should be placed on the line.

Enumerator
Interval 

Place symbols at regular intervals.

Vertex 

Place symbols on every vertex in the line.

LastVertex 

Place symbols on the last vertex in the line.

FirstVertex 

Place symbols on the first vertex in the line.

CentralPoint 

Place symbols at the mid point of the line.

CurvePoint 

Place symbols at every virtual curve point in the line (used when rendering curved geometry types only)

SegmentCenter 

Place symbols at the center of every line segment.

Definition at line 389 of file qgslinesymbollayer.h.

Constructor & Destructor Documentation

◆ QgsTemplatedLineSymbolLayerBase()

QgsTemplatedLineSymbolLayerBase::QgsTemplatedLineSymbolLayerBase ( bool  rotateSymbol = true,
double  interval = 3 
)

Constructor for QgsTemplatedLineSymbolLayerBase.

Creates a template line placed at the specified interval (in millimeters).

The rotateSymbol argument specifies whether individual symbols should be rotated to match the line segment alignment.

Definition at line 1118 of file qgslinesymbollayer.cpp.

Member Function Documentation

◆ averageAngleLength()

double QgsTemplatedLineSymbolLayerBase::averageAngleLength ( ) const
inline

Returns the length of line over which the line's direction is averaged when calculating individual symbol angles.

Longer lengths smooth out angles from jagged lines to a greater extent.

Units are retrieved through averageAngleUnit()

See also
setAverageAngleLength()
averageAngleUnit()
averageAngleMapUnitScale()

Definition at line 543 of file qgslinesymbollayer.h.

◆ averageAngleMapUnitScale()

const QgsMapUnitScale& QgsTemplatedLineSymbolLayerBase::averageAngleMapUnitScale ( ) const
inline

Returns the map unit scale for the length over which the line's direction is averaged when calculating individual symbol angles.

See also
setAverageAngleMapUnitScale()
averageAngleLength()
averageAngleUnit()

Definition at line 595 of file qgslinesymbollayer.h.

◆ averageAngleUnit()

QgsUnitTypes::RenderUnit QgsTemplatedLineSymbolLayerBase::averageAngleUnit ( ) const
inline

Returns the unit for the length over which the line's direction is averaged when calculating individual symbol angles.

See also
setAverageAngleUnit()
averageAngleLength()
averageAngleMapUnitScale()

Definition at line 575 of file qgslinesymbollayer.h.

◆ canCauseArtifactsBetweenAdjacentTiles()

bool QgsTemplatedLineSymbolLayerBase::canCauseArtifactsBetweenAdjacentTiles ( ) const
overridevirtual

Returns true if the symbol layer rendering can cause visible artifacts across a single feature when the feature is rendered as a series of adjacent map tiles each containing a portion of the feature's geometry.

The default implementation returns false.

Since
QGIS 3.18

Reimplemented from QgsSymbolLayer.

Definition at line 1359 of file qgslinesymbollayer.cpp.

◆ copyTemplateSymbolProperties()

void QgsTemplatedLineSymbolLayerBase::copyTemplateSymbolProperties ( QgsTemplatedLineSymbolLayerBase destLayer) const
protected

Copies all common properties of this layer to another templated symbol layer.

Definition at line 1377 of file qgslinesymbollayer.cpp.

◆ interval()

double QgsTemplatedLineSymbolLayerBase::interval ( ) const
inline

Returns the interval between individual symbols.

Units are specified through intervalUnits().

See also
setInterval()
intervalUnit()

Definition at line 427 of file qgslinesymbollayer.h.

◆ intervalMapUnitScale()

const QgsMapUnitScale& QgsTemplatedLineSymbolLayerBase::intervalMapUnitScale ( ) const
inline

Returns the map unit scale for the interval between symbols.

See also
setIntervalMapUnitScale()
intervalUnit()
interval()

Definition at line 466 of file qgslinesymbollayer.h.

◆ intervalUnit()

QgsUnitTypes::RenderUnit QgsTemplatedLineSymbolLayerBase::intervalUnit ( ) const
inline

Returns the units for the interval between symbols.

See also
setIntervalUnit()
interval()

Definition at line 450 of file qgslinesymbollayer.h.

◆ mapUnitScale()

QgsMapUnitScale QgsTemplatedLineSymbolLayerBase::mapUnitScale ( ) const
virtual

Reimplemented from QgsSymbolLayer.

Definition at line 1302 of file qgslinesymbollayer.cpp.

◆ offsetAlongLine()

double QgsTemplatedLineSymbolLayerBase::offsetAlongLine ( ) const
inline

Returns the offset along the line for the symbol placement.

For Interval placements, this is the distance between the start of the line and the first symbol. For FirstVertex and LastVertex placements, this is the distance between the symbol and the start of the line or the end of the line respectively. This setting has no effect for Vertex or CentralPoint placements.

Returns
The offset along the line. The unit for the offset is retrievable via offsetAlongLineUnit.
See also
setOffsetAlongLine()
offsetAlongLineUnit()
placement()

Definition at line 490 of file qgslinesymbollayer.h.

◆ offsetAlongLineMapUnitScale()

const QgsMapUnitScale& QgsTemplatedLineSymbolLayerBase::offsetAlongLineMapUnitScale ( ) const
inline

Returns the map unit scale used for calculating the offset in map units along line for symbols.

See also
setOffsetAlongLineMapUnitScale()

Definition at line 525 of file qgslinesymbollayer.h.

◆ offsetAlongLineUnit()

QgsUnitTypes::RenderUnit QgsTemplatedLineSymbolLayerBase::offsetAlongLineUnit ( ) const
inline

Returns the unit used for calculating the offset along line for symbols.

Returns
Offset along line unit type.
See also
setOffsetAlongLineUnit()
offsetAlongLine()

Definition at line 511 of file qgslinesymbollayer.h.

◆ outputUnit()

QgsUnitTypes::RenderUnit QgsTemplatedLineSymbolLayerBase::outputUnit ( ) const
virtual

Returns the units to use for sizes and widths within the symbol layer.

Individual symbol layer subclasses will interpret this in different ways, e.g., a marker symbol layer may use it to specify the units for the marker size, while a line symbol layer may use it to specify the units for the line width.

Returns
output unit, or QgsUnitTypes::RenderUnknownUnit if the symbol layer contains mixed units
See also
setOutputUnit()

Reimplemented from QgsSymbolLayer.

Definition at line 1284 of file qgslinesymbollayer.cpp.

◆ placement()

Placement QgsTemplatedLineSymbolLayerBase::placement ( ) const
inline

Returns the placement of the symbols.

See also
setPlacement()

Definition at line 472 of file qgslinesymbollayer.h.

◆ properties()

QVariantMap QgsTemplatedLineSymbolLayerBase::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.

Reimplemented in QgsHashedLineSymbolLayer.

Definition at line 1313 of file qgslinesymbollayer.cpp.

◆ renderPolygonStroke()

void QgsTemplatedLineSymbolLayerBase::renderPolygonStroke ( const QPolygonF &  points,
const QVector< QPolygonF > *  rings,
QgsSymbolRenderContext context 
)
virtual

Renders the line symbol layer along the outline of polygon, using the given render context.

The exterior ring of the polygon is specified in points. Optionally, interior rings are set via the rings argument.

See also
renderPolyline()

Reimplemented from QgsLineSymbolLayer.

Definition at line 1240 of file qgslinesymbollayer.cpp.

◆ renderPolyline()

void QgsTemplatedLineSymbolLayerBase::renderPolyline ( const QPolygonF &  points,
QgsSymbolRenderContext context 
)
overridevirtual

Renders the line symbol layer along the line joining points, using the given render context.

See also
renderPolygonStroke()

Implements QgsLineSymbolLayer.

Reimplemented in QgsHashedLineSymbolLayer, and QgsMarkerLineSymbolLayer.

Definition at line 1125 of file qgslinesymbollayer.cpp.

◆ renderSymbol()

virtual void QgsTemplatedLineSymbolLayerBase::renderSymbol ( const QPointF &  point,
const QgsFeature feature,
QgsRenderContext context,
int  layer = -1,
bool  selected = false 
)
protectedpure virtual

Renders the templated symbol at the specified point, using the given render context.

The feature argument is used to pass the feature currently being rendered (when available).

If only a single symbol layer from the symbol should be rendered, it should be specified in the layer argument. A layer of -1 indicates that all symbol layers should be rendered.

If selected is true then the symbol will be drawn using the "selected feature" style and colors instead of the symbol's normal style.

Implemented in QgsHashedLineSymbolLayer, and QgsMarkerLineSymbolLayer.

◆ rotateSymbols()

bool QgsTemplatedLineSymbolLayerBase::rotateSymbols ( ) const
inline

Returns true if the repeating symbols be rotated to match their line segment orientation.

See also
setRotateSymbols()

Definition at line 414 of file qgslinesymbollayer.h.

◆ setAverageAngleLength()

void QgsTemplatedLineSymbolLayerBase::setAverageAngleLength ( double  length)
inline

Sets the length of line over which the line's direction is averaged when calculating individual symbol angles.

Longer lengths smooth out angles from jagged lines to a greater extent.

Units are set through setAverageAngleUnit()

See also
averageAngleLength()
setAverageAngleUnit()
setAverageAngleMapUnitScale()

Definition at line 555 of file qgslinesymbollayer.h.

◆ setAverageAngleMapUnitScale()

void QgsTemplatedLineSymbolLayerBase::setAverageAngleMapUnitScale ( const QgsMapUnitScale scale)
inline

Sets the map unit scale for the length over which the line's direction is averaged when calculating individual symbol angles.

See also
averageAngleMapUnitScale()
setAverageAngleLength()
setAverageAngleUnit()

Definition at line 585 of file qgslinesymbollayer.h.

◆ setAverageAngleUnit()

void QgsTemplatedLineSymbolLayerBase::setAverageAngleUnit ( QgsUnitTypes::RenderUnit  unit)
inline

Sets the unit for the length over which the line's direction is averaged when calculating individual symbol angles.

See also
averageAngleUnit()
setAverageAngleLength()
setAverageAngleMapUnitScale()

Definition at line 565 of file qgslinesymbollayer.h.

◆ setCommonProperties()

void QgsTemplatedLineSymbolLayerBase::setCommonProperties ( QgsTemplatedLineSymbolLayerBase destLayer,
const QVariantMap &  properties 
)
staticprotected

Sets all common symbol properties in the destLayer, using the settings serialized in the properties map.

Definition at line 1397 of file qgslinesymbollayer.cpp.

◆ setInterval()

void QgsTemplatedLineSymbolLayerBase::setInterval ( double  interval)
inline

Sets the interval between individual symbols.

Parameters
intervalinterval size. Units are specified through setIntervalUnit()
See also
interval()
setIntervalUnit()

Definition at line 435 of file qgslinesymbollayer.h.

◆ setIntervalMapUnitScale()

void QgsTemplatedLineSymbolLayerBase::setIntervalMapUnitScale ( const QgsMapUnitScale scale)
inline

Sets the map unit scale for the interval between symbols.

See also
intervalMapUnitScale()
setIntervalUnit()
setInterval()

Definition at line 458 of file qgslinesymbollayer.h.

◆ setIntervalUnit()

void QgsTemplatedLineSymbolLayerBase::setIntervalUnit ( QgsUnitTypes::RenderUnit  unit)
inline

Sets the units for the interval between symbols.

Parameters
unitinterval units
See also
intervalUnit()
setInterval()

Definition at line 443 of file qgslinesymbollayer.h.

◆ setMapUnitScale()

void QgsTemplatedLineSymbolLayerBase::setMapUnitScale ( const QgsMapUnitScale scale)
virtual

Reimplemented from QgsSymbolLayer.

Definition at line 1294 of file qgslinesymbollayer.cpp.

◆ setOffsetAlongLine()

void QgsTemplatedLineSymbolLayerBase::setOffsetAlongLine ( double  offsetAlongLine)
inline

Sets the the offset along the line for the symbol placement.

For Interval placements, this is the distance between the start of the line and the first symbol. For FirstVertex and LastVertex placements, this is the distance between the symbol and the start of the line or the end of the line respectively. This setting has no effect for Vertex or CentralPoint placements.

Parameters
offsetAlongLineDistance to offset markers along the line. The offset unit is set via setOffsetAlongLineUnit.
See also
offsetAlongLine()
setOffsetAlongLineUnit()
setPlacement()

Definition at line 503 of file qgslinesymbollayer.h.

◆ setOffsetAlongLineMapUnitScale()

void QgsTemplatedLineSymbolLayerBase::setOffsetAlongLineMapUnitScale ( const QgsMapUnitScale scale)
inline

Sets the map unit scale used for calculating the offset in map units along line for symbols.

See also
offsetAlongLineMapUnitScale()

Definition at line 531 of file qgslinesymbollayer.h.

◆ setOffsetAlongLineUnit()

void QgsTemplatedLineSymbolLayerBase::setOffsetAlongLineUnit ( QgsUnitTypes::RenderUnit  unit)
inline

Sets the unit used for calculating the offset along line for symbols.

Parameters
unitOffset along line unit type.
See also
offsetAlongLineUnit()
setOffsetAlongLine()

Definition at line 519 of file qgslinesymbollayer.h.

◆ setPlacement()

void QgsTemplatedLineSymbolLayerBase::setPlacement ( Placement  placement)
inline

Sets the placement of the symbols.

See also
placement()

Definition at line 478 of file qgslinesymbollayer.h.

◆ setRotateSymbols()

void QgsTemplatedLineSymbolLayerBase::setRotateSymbols ( bool  rotate)
inline

Sets whether the repeating symbols should be rotated to match their line segment orientation.

See also
rotateSymbols()

Definition at line 420 of file qgslinesymbollayer.h.

◆ setSymbolAngle()

virtual void QgsTemplatedLineSymbolLayerBase::setSymbolAngle ( double  angle)
protectedpure virtual

Sets the symbol's angle, in degrees clockwise.

Implemented in QgsHashedLineSymbolLayer, and QgsMarkerLineSymbolLayer.

◆ setSymbolLineAngle()

virtual void QgsTemplatedLineSymbolLayerBase::setSymbolLineAngle ( double  angle)
protectedpure virtual

Sets the line angle modification for the symbol's angle.

This angle is added to the symbol's rotation and data defined rotation before rendering the symbol, and is used for orienting symbols to match the line's angle.

Parameters
angleAngle in degrees, valid values are between 0 and 360

Implemented in QgsHashedLineSymbolLayer, and QgsMarkerLineSymbolLayer.

◆ symbolAngle()

virtual double QgsTemplatedLineSymbolLayerBase::symbolAngle ( ) const
protectedpure virtual

Returns the symbol's current angle, in degrees clockwise.

Implemented in QgsHashedLineSymbolLayer, and QgsMarkerLineSymbolLayer.

Friends And Related Function Documentation

◆ TestQgsMarkerLineSymbol

friend class TestQgsMarkerLineSymbol
friend

Definition at line 687 of file qgslinesymbollayer.h.


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