15 #ifndef QGSSYMBOLLAYERV2_H
16 #define QGSSYMBOLLAYERV2_H
20 #define M_PI 3.14159265358979323846
23 #define DEG2RAD(x) ((x)*M_PI/180)
24 #define DEFAULT_SCALE_METHOD QgsSymbolV2::ScaleArea
30 #include <QDomDocument>
31 #include <QDomElement>
50 virtual QColor
color()
const {
return mColor; }
51 virtual void setColor(
const QColor& color ) { mColor = color; }
60 virtual void setFillColor(
const QColor& color ) { Q_UNUSED( color ); }
63 virtual QColor
fillColor()
const {
return QColor(); }
67 virtual QString layerType()
const = 0;
75 { Q_UNUSED( props ); element.appendChild( doc.createComment( QString(
"SymbolLayerV2 %1 not implemented yet" ).arg( layerType() ) ) ); }
77 virtual QString
ogrFeatureStyle(
double mmScaleFactor,
double mapUnitScaleFactor )
const { Q_UNUSED( mmScaleFactor ); Q_UNUSED( mapUnitScaleFactor );
return QString(); }
109 virtual QSet<QString> usedAttributes()
const;
111 virtual const QgsExpression* dataDefinedProperty(
const QString& property )
const;
112 virtual QString dataDefinedPropertyString(
const QString& property )
const;
113 virtual void setDataDefinedProperty(
const QString& property,
const QString& expressionString );
114 virtual void removeDataDefinedProperty(
const QString& property );
115 virtual void removeDataDefinedProperties();
118 virtual bool writeDxf( QgsDxfExport& e,
119 double mmMapUnitScaleFactor,
120 const QString& layerName,
123 const QPointF& shift = QPointF( 0.0, 0.0 ) )
const;
130 virtual Qt::PenStyle dxfPenStyle()
const;
134 : mType( type ), mLocked( locked ), mRenderingPass( 0 ) {}
144 static const bool selectionIsOpaque =
true;
145 static const bool selectFillBorder =
false;
146 static const bool selectFillStyle =
false;
148 virtual void prepareExpressions(
const QgsFields* fields,
double scale = -1.0 );
149 virtual QgsExpression* expression(
const QString& property )
const;
151 void saveDataDefinedProperties(
QgsStringMap& stringMap )
const;
183 double angle()
const {
return mAngle; }
186 double size()
const {
return mSize; }
194 virtual void toSld( QDomDocument &doc, QDomElement &element,
QgsStringMap props )
const;
197 { Q_UNUSED( props ); element.appendChild( doc.createComment( QString(
"QgsMarkerSymbolLayerV2 %1 not implemented yet" ).arg(
layerType() ) ) ); }
229 void markerOffset(
const QgsSymbolV2RenderContext& context,
double width,
double height,
double& offsetX,
double& offsetY )
const;
234 double& offsetX,
double& offsetY,
237 static QPointF _rotatedOffset(
const QPointF& offset,
double angle );
265 virtual void renderPolygonOutline(
const QPolygonF& points, QList<QPolygonF>* rings,
QgsSymbolV2RenderContext& context );
267 virtual void setWidth(
double width ) { mWidth = width; }
268 virtual double width()
const {
return mWidth; }
297 virtual void renderPolygon(
const QPolygonF& points, QList<QPolygonF>* rings,
QgsSymbolV2RenderContext& context ) = 0;
302 double angle()
const {
return mAngle; }
307 void _renderPolygon( QPainter* p,
const QPolygonF& points,
const QList<QPolygonF>* rings,
QgsSymbolV2RenderContext& context );
312 class QgsSymbolLayerV2Widget;
QgsSymbolV2::SymbolType mType
Class for parsing and evaluation of expressions (formerly called "search strings").
VerticalAnchorPoint verticalAnchorPoint() const
virtual void setMapUnitScale(const QgsMapUnitScale &scale)
virtual ~QgsSymbolLayerV2()
void setLocked(bool locked)
virtual QgsSymbolV2::OutputUnit outputUnit() const
QMap< QString, QgsExpression * > mDataDefinedProperties
virtual void setOutputUnit(QgsSymbolV2::OutputUnit unit)
QgsMapUnitScale mSizeMapUnitScale
virtual double dxfWidth(const QgsDxfExport &e, const QgsSymbolV2RenderContext &context) const
virtual double width() const
HorizontalAnchorPoint horizontalAnchorPoint() const
virtual void setOutlineColor(const QColor &color)
Set outline color.
QgsExpression * mVerticalAnchorExpression
void setScaleMethod(QgsSymbolV2::ScaleMethod scaleMethod)
void setOffset(QPointF offset)
void setHorizontalAnchorPoint(HorizontalAnchorPoint h)
Container of fields for a vector layer.
void setVerticalAnchorPoint(VerticalAnchorPoint v)
QgsSymbolV2::OutputUnit sizeUnit() const
QgsSymbolLayerV2(QgsSymbolV2::SymbolType type, bool locked=false)
QgsMapUnitScale mWidthMapUnitScale
The feature class encapsulates a single feature including its id, geometry and a list of field/values...
QgsExpression * mOffsetExpression
void setOffsetMapUnitScale(const QgsMapUnitScale &scale)
virtual QColor fillColor() const
Get fill color.
QMap< QString, QString > QgsStringMap
void setWidthUnit(QgsSymbolV2::OutputUnit unit)
void setOffsetUnit(QgsSymbolV2::OutputUnit unit)
virtual double estimateMaxBleed() const
Returns the estimated maximum distance which the layer style will bleed outside the drawn shape...
virtual void startRender(QgsSymbolV2RenderContext &context)=0
QgsSymbolV2::OutputUnit offsetUnit() const
virtual void writeSldMarker(QDomDocument &doc, QDomElement &element, QgsStringMap props) const
virtual void toSld(QDomDocument &doc, QDomElement &element, QgsStringMap props) const
QgsSymbolV2::OutputUnit mWidthUnit
void setRenderingPass(int renderingPass)
void setWidthMapUnitScale(const QgsMapUnitScale &scale)
virtual void setWidth(double width)
void setAngle(double angle)
QgsSymbolV2::ScaleMethod mScaleMethod
void setSizeUnit(QgsSymbolV2::OutputUnit unit)
const QgsMapUnitScale & sizeMapUnitScale() const
virtual QColor color() const
HorizontalAnchorPoint mHorizontalAnchorPoint
bool hasDataDefinedProperties() const
QgsSymbolV2::ScaleMethod scaleMethod() const
QgsSymbolV2::SymbolType type() const
virtual void setFillColor(const QColor &color)
Set fill color.
double ANALYSIS_EXPORT angle(Point3D *p1, Point3D *p2, Point3D *p3, Point3D *p4)
Calculates the angle between two segments (in 2 dimension, z-values are ignored)
int renderingPass() const
virtual QString layerType() const =0
virtual QgsSymbolV2 * subSymbol()
virtual QColor outlineColor() const
Get outline color.
Contains information about the context of a rendering operation.
const QgsMapUnitScale & offsetMapUnitScale() const
const QgsMapUnitScale & widthMapUnitScale() const
QgsExpression * mHorizontalAnchorExpression
virtual QgsMapUnitScale mapUnitScale() const
QgsSymbolV2::OutputUnit mOffsetUnit
virtual void setColor(const QColor &color)
VerticalAnchorPoint mVerticalAnchorPoint
QgsSymbolV2::OutputUnit mSizeUnit
QgsMapUnitScale mOffsetMapUnitScale
virtual void drawPreviewIcon(QgsSymbolV2RenderContext &context, QSize size)=0
void setSize(double size)
void setAngle(double angle)
virtual bool setSubSymbol(QgsSymbolV2 *symbol)
void setSizeMapUnitScale(const QgsMapUnitScale &scale)
virtual QString ogrFeatureStyle(double mmScaleFactor, double mapUnitScaleFactor) const
QgsSymbolV2::OutputUnit widthUnit() const