QGIS API Documentation 3.41.0-Master (45a0abf3bec)
Loading...
Searching...
No Matches
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 Member Functions

 QgsTemplatedLineSymbolLayerBase (bool rotateSymbol=true, double interval=3)
 Constructor for QgsTemplatedLineSymbolLayerBase.
 
 ~QgsTemplatedLineSymbolLayerBase () override
 
double averageAngleLength () const
 Returns the length of line over which the line's direction is averaged when calculating individual symbol angles.
 
const QgsMapUnitScaleaverageAngleMapUnitScale () const
 Returns the map unit scale for the length over which the line's direction is averaged when calculating individual symbol angles.
 
Qgis::RenderUnit averageAngleUnit () const
 Returns the unit for the length over which the line's direction is averaged when calculating individual symbol angles.
 
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.
 
double interval () const
 Returns the interval between individual symbols.
 
const QgsMapUnitScaleintervalMapUnitScale () const
 Returns the map unit scale for the interval between symbols.
 
Qgis::RenderUnit intervalUnit () const
 Returns the units for the interval between symbols.
 
QgsMapUnitScale mapUnitScale () const FINAL
 
double offsetAlongLine () const
 Returns the offset along the line for the symbol placement.
 
const QgsMapUnitScaleoffsetAlongLineMapUnitScale () const
 Returns the map unit scale used for calculating the offset in map units along line for symbols.
 
Qgis::RenderUnit offsetAlongLineUnit () const
 Returns the unit used for calculating the offset along line for symbols.
 
Qgis::RenderUnit outputUnit () const FINAL
 Returns the units to use for sizes and widths within the symbol layer.
 
Q_DECL_DEPRECATED Qgis::MarkerLinePlacement placement () const
 Returns the placement of the symbols.
 
Qgis::MarkerLinePlacements placements () const
 Returns the placement of the symbols.
 
bool placeOnEveryPart () const
 Returns true if the placement applies for every part of multi-part feature geometries.
 
QVariantMap properties () const override
 Should be reimplemented by subclasses to return a string map that contains the configuration information for the symbol layer.
 
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.
 
void renderPolyline (const QPolygonF &points, QgsSymbolRenderContext &context) override
 Renders the line symbol layer along the line joining points, using the given render context.
 
bool rotateSymbols () const
 Returns true if the repeating symbols be rotated to match their line segment orientation.
 
void setAverageAngleLength (double length)
 Sets the length of line over which the line's direction is averaged when calculating individual symbol angles.
 
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.
 
void setAverageAngleUnit (Qgis::RenderUnit unit)
 Sets the unit for the length over which the line's direction is averaged when calculating individual symbol angles.
 
void setInterval (double interval)
 Sets the interval between individual symbols.
 
void setIntervalMapUnitScale (const QgsMapUnitScale &scale)
 Sets the map unit scale for the interval between symbols.
 
void setIntervalUnit (Qgis::RenderUnit unit)
 Sets the units for the interval between symbols.
 
void setMapUnitScale (const QgsMapUnitScale &scale) FINAL
 
void setOffsetAlongLine (double offsetAlongLine)
 Sets the the offset along the line for the symbol placement.
 
void setOffsetAlongLineMapUnitScale (const QgsMapUnitScale &scale)
 Sets the map unit scale used for calculating the offset in map units along line for symbols.
 
void setOffsetAlongLineUnit (Qgis::RenderUnit unit)
 Sets the unit used for calculating the offset along line for symbols.
 
void setOutputUnit (Qgis::RenderUnit unit) override
 Sets the units to use for sizes and widths within the symbol layer.
 
Q_DECL_DEPRECATED void setPlacement (Qgis::MarkerLinePlacement placement)
 Sets the placement of the symbols.
 
void setPlacements (Qgis::MarkerLinePlacements placements)
 Sets the placement of the symbols.
 
void setPlaceOnEveryPart (bool respect)
 Sets whether the placement applies for every part of multi-part feature geometries.
 
void setRotateSymbols (bool rotate)
 Sets whether the repeating symbols should be rotated to match their line segment orientation.
 
void startFeatureRender (const QgsFeature &feature, QgsRenderContext &context) override
 Called before the layer will be rendered for a particular feature.
 
void stopFeatureRender (const QgsFeature &feature, QgsRenderContext &context) override
 Called after the layer has been rendered for a particular feature.
 
- Public Member Functions inherited from QgsLineSymbolLayer
 QgsLineSymbolLayer (const QgsLineSymbolLayer &other)=delete
 
void drawPreviewIcon (QgsSymbolRenderContext &context, QSize size) override
 
double dxfWidth (const QgsDxfExport &e, QgsSymbolRenderContext &context) const override
 Gets line width.
 
double offset () const
 Returns the line's offset.
 
const QgsMapUnitScaleoffsetMapUnitScale () const
 Returns the map unit scale for the line's offset.
 
Qgis::RenderUnit offsetUnit () const
 Returns the units for the line's offset.
 
QgsLineSymbolLayeroperator= (const QgsLineSymbolLayer &other)=delete
 
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.
 
void setOffset (double offset)
 Sets the line's offset.
 
void setOffsetMapUnitScale (const QgsMapUnitScale &scale)
 Sets the map unit scale for the line's offset.
 
void setOffsetUnit (Qgis::RenderUnit unit)
 Sets the unit for the line's offset.
 
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.
 
virtual void setWidth (double width)
 Sets the width of the line symbol layer.
 
void setWidthMapUnitScale (const QgsMapUnitScale &scale)
 
void setWidthUnit (Qgis::RenderUnit unit)
 Sets the units for the line's width.
 
virtual double width () const
 Returns the estimated width for the line symbol layer.
 
virtual double width (const QgsRenderContext &context) const
 Returns the line symbol layer width, in painter units.
 
const QgsMapUnitScalewidthMapUnitScale () const
 
Qgis::RenderUnit widthUnit () const
 Returns the units for the line's width.
 
- Public Member Functions inherited from QgsSymbolLayer
virtual ~QgsSymbolLayer ()
 
virtual QgsSymbolLayerclone () const =0
 Shall be reimplemented by subclasses to create a deep copy of the instance.
 
virtual QColor color () const
 Returns the "representative" color of the symbol layer.
 
QgsPropertyCollectiondataDefinedProperties ()
 Returns a reference to the symbol layer's property collection, used for data defined overrides.
 
const QgsPropertyCollectiondataDefinedProperties () const
 Returns a reference to the symbol layer's property collection, used for data defined overrides.
 
virtual double dxfAngle (QgsSymbolRenderContext &context) const
 Gets angle.
 
virtual QColor dxfBrushColor (QgsSymbolRenderContext &context) const
 Gets brush/fill color.
 
virtual Qt::BrushStyle dxfBrushStyle () const
 Gets brush/fill style.
 
virtual QColor dxfColor (QgsSymbolRenderContext &context) const
 Gets color.
 
virtual QVector< qreal > dxfCustomDashPattern (Qgis::RenderUnit &unit) const
 Gets dash pattern.
 
virtual double dxfOffset (const QgsDxfExport &e, QgsSymbolRenderContext &context) const
 Gets offset.
 
virtual Qt::PenStyle dxfPenStyle () const
 Gets pen style.
 
virtual double dxfSize (const QgsDxfExport &e, QgsSymbolRenderContext &context) const
 Gets marker size.
 
bool enabled () const
 Returns true if symbol layer is enabled and will be drawn.
 
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.
 
virtual QColor fillColor () const
 Returns the fill color for the symbol layer.
 
virtual Qgis::SymbolLayerFlags flags () const
 Returns flags which control the symbol layer's behavior.
 
virtual bool hasDataDefinedProperties () const
 Returns true if the symbol layer (or any of its sub-symbols) contains data defined properties.
 
QString id () const
 Returns symbol layer identifier This id is unique in the whole project.
 
bool installMasks (QgsRenderContext &context, bool recursive, const QRectF &rect=QRectF())
 When rendering, install masks on context painter.
 
virtual bool isCompatibleWithSymbol (QgsSymbol *symbol) const
 Returns if the layer can be used below the specified symbol.
 
bool isLocked () const
 Returns true if the symbol layer colors are locked and the layer will ignore any symbol-level color changes.
 
virtual QString layerType () const =0
 Returns a string that represents this layer type.
 
virtual QList< QgsSymbolLayerReferencemasks () const
 Returns masks defined by this symbol layer.
 
virtual QString ogrFeatureStyle (double mmScaleFactor, double mapUnitScaleFactor) const
 
QgsSymbolLayeroperator= (const QgsSymbolLayer &other)=delete
 
QgsPaintEffectpaintEffect () const
 Returns the current paint effect for the layer.
 
virtual void prepareExpressions (const QgsSymbolRenderContext &context)
 Prepares all data defined property expressions for evaluation.
 
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.
 
int renderingPass () const
 Specifies the rendering pass in which this symbol layer should be rendered.
 
virtual void setColor (const QColor &color)
 Sets the "representative" color for the symbol layer.
 
void setDataDefinedProperties (const QgsPropertyCollection &collection)
 Sets the symbol layer's property collection, used for data defined overrides.
 
virtual void setDataDefinedProperty (Property key, const QgsProperty &property)
 Sets a data defined property for the layer.
 
void setEnabled (bool enabled)
 Sets whether symbol layer is enabled and should be drawn.
 
virtual void setFillColor (const QColor &color)
 Sets the fill color for the symbol layer.
 
void setId (const QString &id)
 Set symbol layer identifier This id has to be unique in the whole project.
 
void setLocked (bool locked)
 Sets whether the layer's colors are locked.
 
void setPaintEffect (QgsPaintEffect *effect)
 Sets the current paint effect for the layer.
 
void setRenderingPass (int renderingPass)
 Specifies the rendering pass in which this symbol layer should be rendered.
 
virtual void setStrokeColor (const QColor &color)
 Sets the stroke color for the symbol layer.
 
virtual bool setSubSymbol (QgsSymbol *symbol)
 Sets layer's subsymbol. takes ownership of the passed symbol.
 
void setUserFlags (Qgis::SymbolLayerUserFlags flags)
 Sets user-controlled flags which control the symbol layer's behavior.
 
virtual void startRender (QgsSymbolRenderContext &context)=0
 Called before a set of rendering operations commences on the supplied render context.
 
virtual void stopRender (QgsSymbolRenderContext &context)=0
 Called after a set of rendering operations has finished on the supplied render context.
 
virtual QColor strokeColor () const
 Returns the stroke color for the symbol layer.
 
virtual QgsSymbolsubSymbol ()
 Returns the symbol's sub symbol, if present.
 
virtual void toSld (QDomDocument &doc, QDomElement &element, const QVariantMap &props) const
 Saves the symbol layer as SLD.
 
Qgis::SymbolType type () const
 
virtual QSet< QString > usedAttributes (const QgsRenderContext &context) const
 Returns the set of attributes referenced by the layer.
 
Qgis::SymbolLayerUserFlags userFlags () const
 Returns user-controlled flags which control the symbol layer's behavior.
 
virtual bool usesMapUnits () const
 Returns true if the symbol layer has any components which use map unit based sizes.
 
virtual bool writeDxf (QgsDxfExport &e, double mmMapUnitScaleFactor, const QString &layerName, QgsSymbolRenderContext &context, QPointF shift=QPointF(0.0, 0.0)) const
 write as DXF
 

Protected Member Functions

void copyTemplateSymbolProperties (QgsTemplatedLineSymbolLayerBase *destLayer) const
 Copies all common properties of this layer to another templated symbol layer.
 
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.
 
virtual void setSymbolAngle (double angle)=0
 Sets the symbol's angle, in degrees clockwise.
 
virtual void setSymbolLineAngle (double angle)=0
 Sets the line angle modification for the symbol's angle.
 
virtual double symbolAngle () const =0
 Returns the symbol's current angle, in degrees clockwise.
 
- Protected Member Functions inherited from QgsLineSymbolLayer
 QgsLineSymbolLayer (bool locked=false)
 
- Protected Member Functions inherited from QgsSymbolLayer
 QgsSymbolLayer (const QgsSymbolLayer &other)
 
 QgsSymbolLayer (Qgis::SymbolType type, bool locked=false)
 Constructor for QgsSymbolLayer.
 
void copyDataDefinedProperties (QgsSymbolLayer *destLayer) const
 Copies all data defined properties of this layer to another symbol layer.
 
void copyPaintEffect (QgsSymbolLayer *destLayer) const
 Copies paint effect of this layer to another symbol layer.
 
void removeMasks (QgsRenderContext &context, bool recursive)
 When rendering, remove previously installed masks from context painter if recursive is true masks are removed recursively for all children symbol layers.
 
void restoreOldDataDefinedProperties (const QVariantMap &stringMap)
 Restores older data defined properties from string map.
 
bool shouldRenderUsingSelectionColor (const QgsSymbolRenderContext &context) const
 Returns true if the symbol layer should be rendered using the selection color from the render context.
 

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.
 

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 class  Property : int {
  Size = 0 , Angle , Name , FillColor ,
  StrokeColor , StrokeWidth , StrokeStyle , Offset ,
  Character , Width , Height , PreserveAspectRatio ,
  FillStyle , JoinStyle , SecondaryColor , LineAngle ,
  LineDistance , GradientType , CoordinateMode , GradientSpread ,
  GradientReference1X , GradientReference1Y , GradientReference2X , GradientReference2Y ,
  GradientReference1IsCentroid , GradientReference2IsCentroid , BlurRadius , ShapeburstUseWholeShape ,
  ShapeburstMaxDistance , ShapeburstIgnoreRings , File , DistanceX ,
  DistanceY , DisplacementX , DisplacementY , Opacity ,
  CustomDash , CapStyle , Placement , Interval ,
  OffsetAlongLine , AverageAngleLength , HorizontalAnchor , VerticalAnchor ,
  LayerEnabled , ArrowWidth , ArrowStartWidth , ArrowHeadLength ,
  ArrowHeadThickness , ArrowHeadType , ArrowType , OffsetX ,
  OffsetY , PointCount , RandomSeed , ClipPoints ,
  DensityArea , FontFamily , FontStyle , DashPatternOffset ,
  TrimStart , TrimEnd , LineStartWidthValue , LineEndWidthValue ,
  LineStartColorValue , LineEndColorValue , MarkerClipping , RandomOffsetX ,
  RandomOffsetY , LineClipping , SkipMultiples , ShowMarker
}
 Data definable properties. More...
 
- Static Public Member Functions inherited from QgsSymbolLayer
static const QgsPropertiesDefinitionpropertyDefinitions ()
 Returns the symbol layer property definitions.
 
- Protected Attributes inherited from QgsLineSymbolLayer
double mOffset = 0
 
QgsMapUnitScale mOffsetMapUnitScale
 
Qgis::RenderUnit mOffsetUnit = Qgis::RenderUnit::Millimeters
 
RenderRingFilter mRingFilter = AllRings
 
double mWidth = 0
 
QgsMapUnitScale mWidthMapUnitScale
 
Qgis::RenderUnit mWidthUnit = Qgis::RenderUnit::Millimeters
 
- Protected Attributes inherited from QgsSymbolLayer
QPainterPath mClipPath
 
QColor mColor
 
QgsPropertyCollection mDataDefinedProperties
 
bool mEnabled = true
 True if layer is enabled and should be drawn.
 
QgsFields mFields
 
QString mId
 
bool mLocked = false
 
std::unique_ptr< QgsPaintEffectmPaintEffect
 
int mRenderingPass = 0
 
Qgis::SymbolType mType
 
Qgis::SymbolLayerUserFlags mUserFlags
 User controlled flags.
 
- Static Protected Attributes inherited from QgsSymbolLayer
static const bool SELECT_FILL_BORDER = false
 Whether fill styles for selected features also highlight symbol stroke.
 
static const bool SELECT_FILL_STYLE = false
 Whether fill styles for selected features uses symbol layer style.
 
static const bool SELECTION_IS_OPAQUE = true
 Whether styles for selected features ignore symbol alpha.
 

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 554 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 1244 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 751 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 803 of file qgslinesymbollayer.h.

◆ averageAngleUnit()

Qgis::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 783 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 1535 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 1571 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 587 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 626 of file qgslinesymbollayer.h.

◆ intervalUnit()

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

Returns the units for the interval between symbols.

See also
setIntervalUnit()
interval()

Definition at line 610 of file qgslinesymbollayer.h.

◆ mapUnitScale()

QgsMapUnitScale QgsTemplatedLineSymbolLayerBase::mapUnitScale ( ) const
virtual

Reimplemented from QgsLineSymbolLayer.

Definition at line 1500 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 698 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 733 of file qgslinesymbollayer.h.

◆ offsetAlongLineUnit()

Qgis::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 719 of file qgslinesymbollayer.h.

◆ outputUnit()

Qgis::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 QgsLineSymbolLayer.

Definition at line 1474 of file qgslinesymbollayer.cpp.

◆ placement()

Qgis::MarkerLinePlacement QgsTemplatedLineSymbolLayerBase::placement ( ) const

Returns the placement of the symbols.

See also
setPlacement()
Deprecated:
QGIS 3.40. Use placements() instead.

Definition at line 1251 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 647 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 670 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.

Definition at line 1511 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 1414 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.

Definition at line 1282 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 QgsMarkerLineSymbolLayer, and QgsHashedLineSymbolLayer.

◆ 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 574 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 763 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 793 of file qgslinesymbollayer.h.

◆ setAverageAngleUnit()

void QgsTemplatedLineSymbolLayerBase::setAverageAngleUnit ( Qgis::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 773 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 1592 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 595 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 618 of file qgslinesymbollayer.h.

◆ setIntervalUnit()

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

Sets the units for the interval between symbols.

Parameters
unitinterval units
See also
intervalUnit()
setInterval()

Definition at line 603 of file qgslinesymbollayer.h.

◆ setMapUnitScale()

void QgsTemplatedLineSymbolLayerBase::setMapUnitScale ( const QgsMapUnitScale scale)
virtual

Reimplemented from QgsLineSymbolLayer.

Definition at line 1492 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 711 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 739 of file qgslinesymbollayer.h.

◆ setOffsetAlongLineUnit()

void QgsTemplatedLineSymbolLayerBase::setOffsetAlongLineUnit ( Qgis::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 727 of file qgslinesymbollayer.h.

◆ setOutputUnit()

void QgsTemplatedLineSymbolLayerBase::setOutputUnit ( Qgis::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 QgsLineSymbolLayer.

Definition at line 1484 of file qgslinesymbollayer.cpp.

◆ setPlacement()

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

Sets the placement of the symbols.

See also
placement()
Deprecated:
QGIS 3.40. Use setPlacements() instead.

Definition at line 1275 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 654 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 686 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 580 of file qgslinesymbollayer.h.

◆ setSymbolAngle()

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

Sets the symbol's angle, in degrees clockwise.

Implemented in QgsMarkerLineSymbolLayer, and QgsHashedLineSymbolLayer.

◆ 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 QgsMarkerLineSymbolLayer, and QgsHashedLineSymbolLayer.

◆ 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 1543 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 1551 of file qgslinesymbollayer.cpp.

◆ symbolAngle()

virtual double QgsTemplatedLineSymbolLayerBase::symbolAngle ( ) const
protectedpure virtual

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

Implemented in QgsMarkerLineSymbolLayer, and QgsHashedLineSymbolLayer.

Friends And Related Symbol Documentation

◆ TestQgsMarkerLineSymbol

friend class TestQgsMarkerLineSymbol
friend

Definition at line 908 of file qgslinesymbollayer.h.


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