QGIS API Documentation  2.4.0-Chugiak
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
QgsMarkerLineSymbolLayerV2 Class Reference

#include <qgslinesymbollayerv2.h>

Inheritance diagram for QgsMarkerLineSymbolLayerV2:
Inheritance graph
[legend]
Collaboration diagram for QgsMarkerLineSymbolLayerV2:
Collaboration graph
[legend]

Public Types

enum  Placement {
  Interval, Vertex, LastVertex, FirstVertex,
  CentralPoint
}
 

Public Member Functions

 QgsMarkerLineSymbolLayerV2 (bool rotateMarker=DEFAULT_MARKERLINE_ROTATE, double interval=DEFAULT_MARKERLINE_INTERVAL)
 
 ~QgsMarkerLineSymbolLayerV2 ()
 
QString layerType () const
 
void startRender (QgsSymbolV2RenderContext &context)
 
void stopRender (QgsSymbolV2RenderContext &context)
 
void renderPolyline (const QPolygonF &points, QgsSymbolV2RenderContext &context)
 
QgsStringMap properties () const
 
QgsSymbolLayerV2clone () const
 
void toSld (QDomDocument &doc, QDomElement &element, QgsStringMap props) const
 
void setColor (const QColor &color)
 
QgsSymbolV2subSymbol ()
 
bool setSubSymbol (QgsSymbolV2 *symbol)
 
virtual void setWidth (double width)
 
virtual double width () const
 
double estimateMaxBleed () const
 Returns the estimated maximum distance which the layer style will bleed outside the drawn shape. More...
 
bool rotateMarker () const
 
void setRotateMarker (bool rotate)
 
double interval () const
 
void setInterval (double interval)
 
double offset () const
 
void setOffset (double offset)
 
Placement placement () const
 
void setPlacement (Placement p)
 
double offsetAlongLine () const
 Returns the offset along the line for the marker placement. More...
 
void setOffsetAlongLine (double offsetAlongLine)
 Sets the the offset along the line for the marker placement. More...
 
QgsSymbolV2::OutputUnit offsetAlongLineUnit () const
 Returns the unit used for calculating the offset along line for markers. More...
 
void setOffsetAlongLineUnit (QgsSymbolV2::OutputUnit unit)
 Sets the unit used for calculating the offset along line for markers. More...
 
const QgsMapUnitScaleoffsetAlongLineMapUnitScale () const
 Returns the map unit scale used for calculating the offset in map units along line for markers. More...
 
void setOffsetAlongLineMapUnitScale (const QgsMapUnitScale &scale)
 Sets the map unit scale used for calculating the offset in map units along line for markers. More...
 
void setIntervalUnit (QgsSymbolV2::OutputUnit unit)
 
QgsSymbolV2::OutputUnit intervalUnit () const
 
void setIntervalMapUnitScale (const QgsMapUnitScale &scale)
 
const QgsMapUnitScaleintervalMapUnitScale () const
 
void setOffsetUnit (QgsSymbolV2::OutputUnit unit)
 
QgsSymbolV2::OutputUnit offsetUnit () const
 
void setOffsetMapUnitScale (const QgsMapUnitScale &scale)
 
const QgsMapUnitScaleoffsetMapUnitScale () const
 
void setOutputUnit (QgsSymbolV2::OutputUnit unit)
 
QgsSymbolV2::OutputUnit outputUnit () const
 
void setMapUnitScale (const QgsMapUnitScale &scale)
 
QgsMapUnitScale mapUnitScale () const
 
- Public Member Functions inherited from QgsLineSymbolLayerV2
virtual void renderPolygonOutline (const QPolygonF &points, QList< QPolygonF > *rings, QgsSymbolV2RenderContext &context)
 
void setWidthUnit (QgsSymbolV2::OutputUnit unit)
 
QgsSymbolV2::OutputUnit widthUnit () const
 
void setWidthMapUnitScale (const QgsMapUnitScale &scale)
 
const QgsMapUnitScalewidthMapUnitScale () const
 
void setOutputUnit (QgsSymbolV2::OutputUnit unit)
 
QgsSymbolV2::OutputUnit outputUnit () const
 
void setMapUnitScale (const QgsMapUnitScale &scale)
 
QgsMapUnitScale mapUnitScale () const
 
void drawPreviewIcon (QgsSymbolV2RenderContext &context, QSize size)
 
virtual double dxfWidth (const QgsDxfExport &e, const QgsSymbolV2RenderContext &context) const
 
- Public Member Functions inherited from QgsSymbolLayerV2
virtual QColor color () const
 
virtual void setOutlineColor (const QColor &color)
 Set outline color. More...
 
virtual QColor outlineColor () const
 Get outline color. More...
 
virtual void setFillColor (const QColor &color)
 Set fill color. More...
 
virtual QColor fillColor () const
 Get fill color. More...
 
virtual ~QgsSymbolLayerV2 ()
 
virtual QString ogrFeatureStyle (double mmScaleFactor, double mapUnitScaleFactor) const
 
QgsSymbolV2::SymbolType type () const
 
void setLocked (bool locked)
 
bool isLocked () const
 
void setRenderingPass (int renderingPass)
 
int renderingPass () const
 
virtual QSet< QString > usedAttributes () const
 
virtual const QgsExpressiondataDefinedProperty (const QString &property) const
 
virtual QString dataDefinedPropertyString (const QString &property) const
 
virtual void setDataDefinedProperty (const QString &property, const QString &expressionString)
 
virtual void removeDataDefinedProperty (const QString &property)
 
virtual void removeDataDefinedProperties ()
 
bool hasDataDefinedProperties () const
 
virtual bool writeDxf (QgsDxfExport &e, double mmMapUnitScaleFactor, const QString &layerName, const QgsSymbolV2RenderContext *context, const QgsFeature *f, const QPointF &shift=QPointF(0.0, 0.0)) const
 
virtual QColor dxfColor (const QgsSymbolV2RenderContext &context) const
 
virtual QVector< qreal > dxfCustomDashPattern (QgsSymbolV2::OutputUnit &unit) const
 
virtual Qt::PenStyle dxfPenStyle () const
 

Static Public Member Functions

static QgsSymbolLayerV2create (const QgsStringMap &properties=QgsStringMap())
 
static QgsSymbolLayerV2createFromSld (QDomElement &element)
 

Protected Member Functions

void renderPolylineInterval (const QPolygonF &points, QgsSymbolV2RenderContext &context)
 
void renderPolylineVertex (const QPolygonF &points, QgsSymbolV2RenderContext &context, Placement placement=Vertex)
 
void renderPolylineCentral (const QPolygonF &points, QgsSymbolV2RenderContext &context)
 
double markerAngle (const QPolygonF &points, bool isRing, int vertex)
 
- Protected Member Functions inherited from QgsLineSymbolLayerV2
 QgsLineSymbolLayerV2 (bool locked=false)
 
- Protected Member Functions inherited from QgsSymbolLayerV2
 QgsSymbolLayerV2 (QgsSymbolV2::SymbolType type, bool locked=false)
 
virtual void prepareExpressions (const QgsFields *fields, double scale=-1.0)
 
virtual QgsExpressionexpression (const QString &property) const
 
void saveDataDefinedProperties (QgsStringMap &stringMap) const
 Saves data defined properties to string map. More...
 
void copyDataDefinedProperties (QgsSymbolLayerV2 *destLayer) const
 Copies data defined properties of this layer to another symbol layer. More...
 

Protected Attributes

bool mRotateMarker
 
double mInterval
 
QgsSymbolV2::OutputUnit mIntervalUnit
 
QgsMapUnitScale mIntervalMapUnitScale
 
QgsMarkerSymbolV2mMarker
 
double mOffset
 
QgsSymbolV2::OutputUnit mOffsetUnit
 
QgsMapUnitScale mOffsetMapUnitScale
 
Placement mPlacement
 
double mOffsetAlongLine
 
QgsSymbolV2::OutputUnit mOffsetAlongLineUnit
 
QgsMapUnitScale mOffsetAlongLineMapUnitScale
 
- Protected Attributes inherited from QgsLineSymbolLayerV2
double mWidth
 
QgsSymbolV2::OutputUnit mWidthUnit
 
QgsMapUnitScale mWidthMapUnitScale
 
- Protected Attributes inherited from QgsSymbolLayerV2
QgsSymbolV2::SymbolType mType
 
bool mLocked
 
QColor mColor
 
int mRenderingPass
 
QMap< QString, QgsExpression * > mDataDefinedProperties
 

Private Member Functions

void renderOffsetVertexAlongLine (const QPolygonF &points, int vertex, double distance, QgsSymbolV2RenderContext &context)
 Renders a marker by offseting a vertex along the line by a specified distance. More...
 

Additional Inherited Members

- Static Protected Attributes inherited from QgsSymbolLayerV2
static const bool selectionIsOpaque = true
 
static const bool selectFillBorder = false
 
static const bool selectFillStyle = false
 

Detailed Description

Definition at line 147 of file qgslinesymbollayerv2.h.

Member Enumeration Documentation

Enumerator
Interval 
Vertex 
LastVertex 
FirstVertex 
CentralPoint 

Definition at line 155 of file qgslinesymbollayerv2.h.

Constructor & Destructor Documentation

QgsMarkerLineSymbolLayerV2::QgsMarkerLineSymbolLayerV2 ( bool  rotateMarker = DEFAULT_MARKERLINE_ROTATE,
double  interval = DEFAULT_MARKERLINE_INTERVAL 
)
QgsMarkerLineSymbolLayerV2::~QgsMarkerLineSymbolLayerV2 ( )

Definition at line 621 of file qgslinesymbollayerv2.cpp.

References mMarker.

Member Function Documentation

QgsSymbolLayerV2 * QgsMarkerLineSymbolLayerV2::clone ( ) const
virtual
QgsSymbolLayerV2 * QgsMarkerLineSymbolLayerV2::create ( const QgsStringMap properties = QgsStringMap())
static
QgsSymbolLayerV2 * QgsMarkerLineSymbolLayerV2::createFromSld ( QDomElement &  element)
static
double QgsMarkerLineSymbolLayerV2::estimateMaxBleed ( ) const
virtual

Returns the estimated maximum distance which the layer style will bleed outside the drawn shape.

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

Reimplemented from QgsSymbolLayerV2.

Definition at line 1407 of file qgslinesymbollayerv2.cpp.

References mMarker, mOffset, and QgsMarkerSymbolV2::size().

double QgsMarkerLineSymbolLayerV2::interval ( ) const
inline
const QgsMapUnitScale& QgsMarkerLineSymbolLayerV2::intervalMapUnitScale ( ) const
inline

Definition at line 262 of file qgslinesymbollayerv2.h.

Referenced by QgsLinePatternFillSymbolLayer::applyPattern().

QgsSymbolV2::OutputUnit QgsMarkerLineSymbolLayerV2::intervalUnit ( ) const
inline

Definition at line 259 of file qgslinesymbollayerv2.h.

Referenced by QgsLinePatternFillSymbolLayer::applyPattern().

QString QgsMarkerLineSymbolLayerV2::layerType ( ) const
virtual

Implements QgsSymbolLayerV2.

Definition at line 707 of file qgslinesymbollayerv2.cpp.

QgsMapUnitScale QgsMarkerLineSymbolLayerV2::mapUnitScale ( ) const
virtual
double QgsMarkerLineSymbolLayerV2::markerAngle ( const QPolygonF &  points,
bool  isRing,
int  vertex 
)
protected
double QgsMarkerLineSymbolLayerV2::offset ( ) const
inline

Definition at line 203 of file qgslinesymbollayerv2.h.

Referenced by createFromSld(), and renderPolyline().

double QgsMarkerLineSymbolLayerV2::offsetAlongLine ( ) const
inline

Returns the offset along the line for the marker placement.

For Interval placements, this is the distance between the start of the line and the first marker. For FirstVertex and LastVertex placements, this is the distance between the marker 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.
Note
added in 2.3
See also
setOffsetAlongLine
offsetAlongLineUnit
placement

Definition at line 219 of file qgslinesymbollayerv2.h.

Referenced by renderPolylineInterval(), and renderPolylineVertex().

const QgsMapUnitScale& QgsMarkerLineSymbolLayerV2::offsetAlongLineMapUnitScale ( ) const
inline

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

Returns
Offset along line map unit scale.

Definition at line 251 of file qgslinesymbollayerv2.h.

QgsSymbolV2::OutputUnit QgsMarkerLineSymbolLayerV2::offsetAlongLineUnit ( ) const
inline

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

Returns
Offset along line unit type.
See also
setOffsetAlongLineUnit
offsetAlongLine

Definition at line 239 of file qgslinesymbollayerv2.h.

const QgsMapUnitScale& QgsMarkerLineSymbolLayerV2::offsetMapUnitScale ( ) const
inline

Definition at line 268 of file qgslinesymbollayerv2.h.

QgsSymbolV2::OutputUnit QgsMarkerLineSymbolLayerV2::offsetUnit ( ) const
inline

Definition at line 265 of file qgslinesymbollayerv2.h.

QgsSymbolV2::OutputUnit QgsMarkerLineSymbolLayerV2::outputUnit ( ) const
virtual
Placement QgsMarkerLineSymbolLayerV2::placement ( ) const
inline

Definition at line 206 of file qgslinesymbollayerv2.h.

Referenced by createFromSld(), and renderPolyline().

QgsStringMap QgsMarkerLineSymbolLayerV2::properties ( ) const
virtual
void QgsMarkerLineSymbolLayerV2::renderOffsetVertexAlongLine ( const QPolygonF &  points,
int  vertex,
double  distance,
QgsSymbolV2RenderContext context 
)
private

Renders a marker by offseting a vertex along the line by a specified distance.

Parameters
pointsvertices making up the line
vertexvertex number to begin offset at
distancedistance to offset from vertex. If distance is positive, offset is calculated moving forward along the line. If distance is negative, offset is calculated moving backward along the line's vertices.
contextrender context
See also
setoffsetAlongLine
setOffsetAlongLineUnit

Definition at line 1040 of file qgslinesymbollayerv2.cpp.

References MathUtils::angle(), QgsMarkerSymbolV2::angle(), MyLine::angle(), MyLine::diffForInterval(), QgsSymbolV2RenderContext::feature(), MyLine::length(), M_PI, markerAngle(), mMarker, mRotateMarker, QgsSymbolV2RenderContext::renderContext(), QgsMarkerSymbolV2::renderPoint(), QgsSymbolV2RenderContext::selected(), and QgsMarkerSymbolV2::setAngle().

Referenced by renderPolylineVertex().

void QgsMarkerLineSymbolLayerV2::renderPolyline ( const QPolygonF &  points,
QgsSymbolV2RenderContext context 
)
virtual
void QgsMarkerLineSymbolLayerV2::renderPolylineCentral ( const QPolygonF &  points,
QgsSymbolV2RenderContext context 
)
protected
void QgsMarkerLineSymbolLayerV2::renderPolylineInterval ( const QPolygonF &  points,
QgsSymbolV2RenderContext context 
)
protected
void QgsMarkerLineSymbolLayerV2::renderPolylineVertex ( const QPolygonF &  points,
QgsSymbolV2RenderContext context,
Placement  placement = Vertex 
)
protected
bool QgsMarkerLineSymbolLayerV2::rotateMarker ( ) const
inline

Definition at line 197 of file qgslinesymbollayerv2.h.

Referenced by createFromSld(), and QgsMarkerLineSymbolLayerV2().

void QgsMarkerLineSymbolLayerV2::setColor ( const QColor &  color)
virtual
void QgsMarkerLineSymbolLayerV2::setInterval ( double  interval)
inline
void QgsMarkerLineSymbolLayerV2::setIntervalMapUnitScale ( const QgsMapUnitScale scale)
inline

Definition at line 261 of file qgslinesymbollayerv2.h.

Referenced by clone(), and create().

void QgsMarkerLineSymbolLayerV2::setIntervalUnit ( QgsSymbolV2::OutputUnit  unit)
inline

Definition at line 258 of file qgslinesymbollayerv2.h.

Referenced by clone(), and create().

void QgsMarkerLineSymbolLayerV2::setMapUnitScale ( const QgsMapUnitScale scale)
virtual
void QgsMarkerLineSymbolLayerV2::setOffset ( double  offset)
inline

Definition at line 204 of file qgslinesymbollayerv2.h.

Referenced by clone(), create(), and createFromSld().

void QgsMarkerLineSymbolLayerV2::setOffsetAlongLine ( double  offsetAlongLine)
inline

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

For Interval placements, this is the distance between the start of the line and the first marker. For FirstVertex and LastVertex placements, this is the distance between the marker 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.
Note
added in 2.3
See also
offsetAlongLine
setOffsetAlongLineUnit
setPlacement

Definition at line 232 of file qgslinesymbollayerv2.h.

Referenced by clone(), and create().

void QgsMarkerLineSymbolLayerV2::setOffsetAlongLineMapUnitScale ( const QgsMapUnitScale scale)
inline

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

Parameters
scaleOffset along line map unit scale.

Definition at line 256 of file qgslinesymbollayerv2.h.

Referenced by clone(), and create().

void QgsMarkerLineSymbolLayerV2::setOffsetAlongLineUnit ( QgsSymbolV2::OutputUnit  unit)
inline

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

Parameters
unitOffset along line unit type.
See also
offsetAlongLineUnit
setOffsetAlongLine

Definition at line 246 of file qgslinesymbollayerv2.h.

Referenced by clone(), and create().

void QgsMarkerLineSymbolLayerV2::setOffsetMapUnitScale ( const QgsMapUnitScale scale)
inline

Definition at line 267 of file qgslinesymbollayerv2.h.

Referenced by clone(), and create().

void QgsMarkerLineSymbolLayerV2::setOffsetUnit ( QgsSymbolV2::OutputUnit  unit)
inline

Definition at line 264 of file qgslinesymbollayerv2.h.

Referenced by clone(), and create().

void QgsMarkerLineSymbolLayerV2::setOutputUnit ( QgsSymbolV2::OutputUnit  unit)
virtual
void QgsMarkerLineSymbolLayerV2::setPlacement ( Placement  p)
inline

Definition at line 207 of file qgslinesymbollayerv2.h.

Referenced by clone(), create(), and createFromSld().

void QgsMarkerLineSymbolLayerV2::setRotateMarker ( bool  rotate)
inline

Definition at line 198 of file qgslinesymbollayerv2.h.

bool QgsMarkerLineSymbolLayerV2::setSubSymbol ( QgsSymbolV2 symbol)
virtual
void QgsMarkerLineSymbolLayerV2::setWidth ( double  width)
virtual

Reimplemented from QgsLineSymbolLayerV2.

Definition at line 1360 of file qgslinesymbollayerv2.cpp.

References mMarker, and QgsMarkerSymbolV2::setSize().

void QgsMarkerLineSymbolLayerV2::startRender ( QgsSymbolV2RenderContext context)
virtual
void QgsMarkerLineSymbolLayerV2::stopRender ( QgsSymbolV2RenderContext context)
virtual
QgsSymbolV2 * QgsMarkerLineSymbolLayerV2::subSymbol ( )
virtual

Reimplemented from QgsSymbolLayerV2.

Definition at line 1176 of file qgslinesymbollayerv2.cpp.

References mMarker.

void QgsMarkerLineSymbolLayerV2::toSld ( QDomDocument &  doc,
QDomElement &  element,
QgsStringMap  props 
) const
virtual
double QgsMarkerLineSymbolLayerV2::width ( ) const
virtual

Reimplemented from QgsLineSymbolLayerV2.

Definition at line 1365 of file qgslinesymbollayerv2.cpp.

References mMarker, and QgsMarkerSymbolV2::size().

Member Data Documentation

double QgsMarkerLineSymbolLayerV2::mInterval
protected
QgsMapUnitScale QgsMarkerLineSymbolLayerV2::mIntervalMapUnitScale
protected
QgsSymbolV2::OutputUnit QgsMarkerLineSymbolLayerV2::mIntervalUnit
protected
QgsMarkerSymbolV2* QgsMarkerLineSymbolLayerV2::mMarker
protected
double QgsMarkerLineSymbolLayerV2::mOffset
protected
double QgsMarkerLineSymbolLayerV2::mOffsetAlongLine
protected
QgsMapUnitScale QgsMarkerLineSymbolLayerV2::mOffsetAlongLineMapUnitScale
protected
QgsSymbolV2::OutputUnit QgsMarkerLineSymbolLayerV2::mOffsetAlongLineUnit
protected
QgsMapUnitScale QgsMarkerLineSymbolLayerV2::mOffsetMapUnitScale
protected
QgsSymbolV2::OutputUnit QgsMarkerLineSymbolLayerV2::mOffsetUnit
protected
Placement QgsMarkerLineSymbolLayerV2::mPlacement
protected
bool QgsMarkerLineSymbolLayerV2::mRotateMarker
protected

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