QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
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. line symbols which draw markers or hash lines at intervals along the line feature. More...

#include <qgslinesymbollayer.h>

Inheritance diagram for QgsTemplatedLineSymbolLayerBase:
Inheritance graph
[legend]

Public Member Functions

 QgsTemplatedLineSymbolLayerBase (bool rotateSymbol=true, double interval=3)
 Constructor for QgsTemplatedLineSymbolLayerBase. More...
 
 ~QgsTemplatedLineSymbolLayerBase () override
 
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...
 
Q_DECL_DEPRECATED Qgis::MarkerLinePlacement placement () const
 Returns the placement of the symbols. More...
 
Qgis::MarkerLinePlacements placements () const
 Returns the placement of the symbols. More...
 
bool placeOnEveryPart () const
 Returns true if the placement applies for every part of multi-part feature geometries. 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 setOutputUnit (QgsUnitTypes::RenderUnit unit) override
 Sets the units to use for sizes and widths within the symbol layer. More...
 
Q_DECL_DEPRECATED void setPlacement (Qgis::MarkerLinePlacement placement)
 Sets the placement of the symbols. More...
 
void setPlacements (Qgis::MarkerLinePlacements placements)
 Sets the placement of the symbols. More...
 
void setPlaceOnEveryPart (bool respect)
 Sets whether the placement applies for every part of multi-part feature geometries. More...
 
void setRotateSymbols (bool rotate)
 Sets whether the repeating symbols should be rotated to match their line segment orientation. More...
 
void startFeatureRender (const QgsFeature &feature, QgsRenderContext &context) override
 Called before the layer will be rendered for a particular feature. More...
 
void stopFeatureRender (const QgsFeature &feature, QgsRenderContext &context) override
 Called after the layer has been rendered for a particular feature. 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
 Returns the "representative" color of the symbol layer. 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
 Returns the fill color for the symbol layer. More...
 
virtual Qgis::SymbolLayerFlags flags () const
 Returns flags which control the symbol layer's behavior. 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
 Returns true if the symbol layer colors are locked and the layer will ignore any symbol-level color changes. More...
 
virtual QString layerType () const =0
 Returns a string that represents this layer type. More...
 
virtual QList< QgsSymbolLayerReferencemasks () 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...
 
virtual void prepareMasks (const QgsSymbolRenderContext &context)
 Prepares all mask internal objects according to what is defined in context This should be called prior to calling startRender() method. More...
 
int renderingPass () const
 Specifies the rendering pass in which this symbol layer should be rendered. More...
 
virtual void setColor (const QColor &color)
 Sets the "representative" color for the symbol layer. 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)
 Sets the fill color for the symbol layer. More...
 
void setLocked (bool locked)
 Sets whether the layer's colors are locked. More...
 
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)
 Sets the stroke color for the symbol layer. More...
 
virtual bool setSubSymbol (QgsSymbol *symbol)
 Sets layer's subsymbol. takes ownership of the passed symbol. More...
 
virtual void startRender (QgsSymbolRenderContext &context)=0
 Called before a set of rendering operations commences on the supplied render context. 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
 Returns the stroke color for the symbol layer. 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...
 
Qgis::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 (Qgis::SymbolType type, bool locked=false)
 Constructor for QgsSymbolLayer. More...
 
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

- 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,
  PropertyTrimStart, PropertyTrimEnd, PropertyLineStartWidthValue, PropertyLineEndWidthValue,
  PropertyLineStartColorValue, PropertyLineEndColorValue, PropertyMarkerClipping, PropertyRandomOffsetX,
  PropertyRandomOffsetY, PropertyLineClipping
}
 Data definable properties. More...
 
- 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
QPainterPath mClipPath
 
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
 
Qgis::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 552 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 1231 of file qgslinesymbollayer.cpp.

◆ ~QgsTemplatedLineSymbolLayerBase()

QgsTemplatedLineSymbolLayerBase::~QgsTemplatedLineSymbolLayerBase ( )
overridedefault

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 749 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 801 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 781 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 1521 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 1550 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 585 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 624 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 608 of file qgslinesymbollayer.h.

◆ mapUnitScale()

QgsMapUnitScale QgsTemplatedLineSymbolLayerBase::mapUnitScale ( ) const
virtual

Reimplemented from QgsSymbolLayer.

Definition at line 1486 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 696 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 731 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 717 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 1460 of file qgslinesymbollayer.cpp.

◆ placement()

Qgis::MarkerLinePlacement QgsTemplatedLineSymbolLayerBase::placement ( ) const

Returns the placement of the symbols.

See also
setPlacement()
Deprecated:
use placements() instead

Definition at line 1238 of file qgslinesymbollayer.cpp.

◆ placements()

Qgis::MarkerLinePlacements QgsTemplatedLineSymbolLayerBase::placements ( ) const
inline

Returns the placement of the symbols.

See also
setPlacements()
Since
QGIS 3.24

Definition at line 645 of file qgslinesymbollayer.h.

◆ placeOnEveryPart()

bool QgsTemplatedLineSymbolLayerBase::placeOnEveryPart ( ) const
inline

Returns true if the placement applies for every part of multi-part feature geometries.

The default is true, which means that Qgis::MarkerLinePlacement::FirstVertex or Qgis::MarkerLinePlacement::LastVertex placements will result in a symbol on the first/last vertex of EVERY part of a multipart feature.

If false, then Qgis::MarkerLinePlacement::FirstVertex or Qgis::MarkerLinePlacement::LastVertex placements will result in a symbol on the first/last vertex of the overall multipart geometry only.

See also
setPlaceOnEveryPart()
Since
QGIS 3.24

Definition at line 668 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 1497 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 1400 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 1269 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 572 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 761 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 791 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 771 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 1571 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 593 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 616 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 601 of file qgslinesymbollayer.h.

◆ setMapUnitScale()

void QgsTemplatedLineSymbolLayerBase::setMapUnitScale ( const QgsMapUnitScale scale)
virtual

Reimplemented from QgsSymbolLayer.

Definition at line 1478 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 709 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 737 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 725 of file qgslinesymbollayer.h.

◆ setOutputUnit()

void QgsTemplatedLineSymbolLayerBase::setOutputUnit ( QgsUnitTypes::RenderUnit  unit)
overridevirtual

Sets 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.

Parameters
unitoutput units
See also
outputUnit()

Reimplemented from QgsSymbolLayer.

Reimplemented in QgsHashedLineSymbolLayer, and QgsMarkerLineSymbolLayer.

Definition at line 1470 of file qgslinesymbollayer.cpp.

◆ setPlacement()

void QgsTemplatedLineSymbolLayerBase::setPlacement ( Qgis::MarkerLinePlacement  placement)

Sets the placement of the symbols.

See also
placement()
Deprecated:
use setPlacements() instead

Definition at line 1262 of file qgslinesymbollayer.cpp.

◆ setPlacements()

void QgsTemplatedLineSymbolLayerBase::setPlacements ( Qgis::MarkerLinePlacements  placements)
inline

Sets the placement of the symbols.

See also
placements()
Since
QGIS 3.24

Definition at line 652 of file qgslinesymbollayer.h.

◆ setPlaceOnEveryPart()

void QgsTemplatedLineSymbolLayerBase::setPlaceOnEveryPart ( bool  respect)
inline

Sets whether the placement applies for every part of multi-part feature geometries.

The default is true, which means that Qgis::MarkerLinePlacement::FirstVertex or Qgis::MarkerLinePlacement::LastVertex placements will result in a symbol on the first/last vertex of EVERY part of a multipart feature.

If false, then Qgis::MarkerLinePlacement::FirstVertex or Qgis::MarkerLinePlacement::LastVertex placements will result in a symbol on the first/last vertex of the overall multipart geometry only.

See also
placeOnEveryPart()
Since
QGIS 3.24

Definition at line 684 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 578 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.

◆ startFeatureRender()

void QgsTemplatedLineSymbolLayerBase::startFeatureRender ( const QgsFeature feature,
QgsRenderContext context 
)
overridevirtual

Called before the layer will be rendered for a particular feature.

This is always followed by a call to stopFeatureRender() after the feature has been completely rendered (i.e. all parts have been rendered).

The default implementation does nothing.

Note
In some circumstances, startFeatureRender() and stopFeatureRender() may not be called before a symbol layer is rendered. E.g., when a symbol layer is being rendered in isolation and not as a result of rendering a feature (for instance, when rendering a legend patch or other non-feature based shape).
See also
stopFeatureRender()
startRender()
Since
QGIS 3.12

Reimplemented from QgsSymbolLayer.

Definition at line 1529 of file qgslinesymbollayer.cpp.

◆ stopFeatureRender()

void QgsTemplatedLineSymbolLayerBase::stopFeatureRender ( const QgsFeature feature,
QgsRenderContext context 
)
overridevirtual

Called after the layer has been rendered for a particular feature.

This is always preceded by a call to startFeatureRender() just before the feature will be rendered.

The default implementation does nothing.

Note
In some circumstances, startFeatureRender() and stopFeatureRender() may not be called before a symbol layer is rendered. E.g., when a symbol layer is being rendered in isolation and not as a result of rendering a feature (for instance, when rendering a legend patch or other non-feature based shape).
See also
startFeatureRender()
stopRender()
Since
QGIS 3.12

Reimplemented from QgsSymbolLayer.

Definition at line 1535 of file qgslinesymbollayer.cpp.

◆ 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 906 of file qgslinesymbollayer.h.


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