class QgsSimpleFillSymbolLayer : QgsFillSymbolLayer { %TypeHeaderCode #include %End public: QgsSimpleFillSymbolLayer( const QColor& color = DEFAULT_SIMPLEFILL_COLOR, Qt::BrushStyle style = DEFAULT_SIMPLEFILL_STYLE, const QColor& borderColor = DEFAULT_SIMPLEFILL_BORDERCOLOR, Qt::PenStyle borderStyle = DEFAULT_SIMPLEFILL_BORDERSTYLE, double borderWidth = DEFAULT_SIMPLEFILL_BORDERWIDTH, Qt::PenJoinStyle penJoinStyle = DEFAULT_SIMPLEFILL_JOINSTYLE ); // static stuff static QgsSymbolLayer* create( const QgsStringMap& properties = QgsStringMap() ) /Factory/; static QgsSymbolLayer* createFromSld( QDomElement &element ) /Factory/; // implemented from base classes QString layerType() const; void startRender( QgsSymbolRenderContext& context ); void stopRender( QgsSymbolRenderContext& context ); void renderPolygon( const QPolygonF& points, QList* rings, QgsSymbolRenderContext& context ); QgsStringMap properties() const; virtual QgsSimpleFillSymbolLayer* clone() const /Factory/; void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const; QString ogrFeatureStyle( double mmScaleFactor, double mapUnitScaleFactor ) const; Qt::BrushStyle brushStyle() const; void setBrushStyle( Qt::BrushStyle style ); QColor borderColor() const; void setBorderColor( const QColor& borderColor ); /** Get outline color. * @note added in 2.1 */ QColor outlineColor() const; /** Set outline color. * @note added in 2.1 */ void setOutlineColor( const QColor& color ); /** Get fill color. * @note added in 2.1 */ QColor fillColor() const; /** Set fill color. * @note added in 2.1 */ void setFillColor( const QColor& color ); Qt::PenStyle borderStyle() const; void setBorderStyle( Qt::PenStyle borderStyle ); double borderWidth() const; void setBorderWidth( double borderWidth ); Qt::PenJoinStyle penJoinStyle() const; void setPenJoinStyle( Qt::PenJoinStyle style ); void setOffset( QPointF offset ); QPointF offset(); /** Sets the units for the width of the fill's border. * @param unit width units * @see borderWidthUnit() */ void setBorderWidthUnit( QgsUnitTypes::RenderUnit unit ); /** Returns the units for the width of the fill's border. * @see setBorderWidthUnit() */ QgsUnitTypes::RenderUnit borderWidthUnit() const; void setBorderWidthMapUnitScale( const QgsMapUnitScale& scale); const QgsMapUnitScale& borderWidthMapUnitScale() const; /** Sets the units for the fill's offset. * @param unit offset units * @see offsetUnit() */ void setOffsetUnit( QgsUnitTypes::RenderUnit unit ); /** Returns the units for the fill's offset. * @see setOffsetUnit() */ QgsUnitTypes::RenderUnit offsetUnit() const; void setOffsetMapUnitScale( const QgsMapUnitScale& scale); const QgsMapUnitScale& offsetMapUnitScale() const; void setOutputUnit( QgsUnitTypes::RenderUnit unit ); QgsUnitTypes::RenderUnit outputUnit() const; void setMapUnitScale( const QgsMapUnitScale &scale ); QgsMapUnitScale mapUnitScale() const; double estimateMaxBleed( const QgsRenderContext& context ) const; double dxfWidth( const QgsDxfExport& e, QgsSymbolRenderContext& context ) const; QColor dxfColor( QgsSymbolRenderContext& context ) const; Qt::PenStyle dxfPenStyle() const; QColor dxfBrushColor( QgsSymbolRenderContext& context ) const; Qt::BrushStyle dxfBrushStyle() const; }; class QgsGradientFillSymbolLayer : QgsFillSymbolLayer { %TypeHeaderCode #include %End public: enum GradientColorType { SimpleTwoColor, ColorRamp }; enum GradientType { Linear, Radial, Conical }; enum GradientCoordinateMode { Feature, Viewport }; enum GradientSpread { Pad, Reflect, Repeat }; QgsGradientFillSymbolLayer( const QColor& color = DEFAULT_SIMPLEFILL_COLOR, const QColor& color2 = Qt::white, GradientColorType gradientColorType = SimpleTwoColor, GradientType gradientType = Linear, GradientCoordinateMode coordinateMode = Feature, GradientSpread gradientSpread = Pad ); virtual ~QgsGradientFillSymbolLayer(); // static stuff static QgsSymbolLayer* create( const QgsStringMap& properties = QgsStringMap() ) /Factory/; // implemented from base classes QString layerType() const; void startRender( QgsSymbolRenderContext& context ); void stopRender( QgsSymbolRenderContext& context ); void renderPolygon( const QPolygonF& points, QList* rings, QgsSymbolRenderContext& context ); QgsStringMap properties() const; virtual QgsGradientFillSymbolLayer* clone() const /Factory/; double estimateMaxBleed( const QgsRenderContext& context ) const; /** Type of gradient, e.g., linear or radial*/ GradientType gradientType() const; void setGradientType( GradientType gradientType ); /** Gradient color mode, controls how gradient color stops are created*/ GradientColorType gradientColorType() const; void setGradientColorType( GradientColorType gradientColorType ); /** Color ramp used for the gradient fill, only used if the gradient color type is set to ColorRamp*/ QgsColorRamp* colorRamp(); void setColorRamp( QgsColorRamp* ramp ); /** Color for endpoint of gradient, only used if the gradient color type is set to SimpleTwoColor*/ QColor color2() const; void setColor2( const QColor& color2 ); /** Coordinate mode for gradient. Controls how the gradient stops are positioned.*/ GradientCoordinateMode coordinateMode() const; void setCoordinateMode( GradientCoordinateMode coordinateMode ); /** Gradient spread mode. Controls how the gradient behaves outside of the predefined stops*/ GradientSpread gradientSpread() const; void setGradientSpread( GradientSpread gradientSpread ); /** Starting point of gradient fill, in the range [0,0] - [1,1]*/ void setReferencePoint1( QPointF referencePoint ); QPointF referencePoint1() const; /** Sets the starting point of the gradient to be the feature centroid*/ void setReferencePoint1IsCentroid( bool isCentroid ); bool referencePoint1IsCentroid() const; /** End point of gradient fill, in the range [0,0] - [1,1]*/ void setReferencePoint2( QPointF referencePoint ); QPointF referencePoint2() const; /** Sets the end point of the gradient to be the feature centroid*/ void setReferencePoint2IsCentroid( bool isCentroid ); bool referencePoint2IsCentroid() const; /** Offset for gradient fill*/ void setOffset( QPointF offset ); QPointF offset() const; /** Units for gradient fill offset*/ void setOffsetUnit( QgsUnitTypes::RenderUnit unit ); QgsUnitTypes::RenderUnit offsetUnit() const; void setOffsetMapUnitScale( const QgsMapUnitScale& scale); const QgsMapUnitScale& offsetMapUnitScale() const; void setOutputUnit( QgsUnitTypes::RenderUnit unit ); QgsUnitTypes::RenderUnit outputUnit() const; void setMapUnitScale( const QgsMapUnitScale &scale ); QgsMapUnitScale mapUnitScale() const; }; class QgsShapeburstFillSymbolLayer : QgsFillSymbolLayer { %TypeHeaderCode #include %End public: enum ShapeburstColorType { SimpleTwoColor, ColorRamp }; QgsShapeburstFillSymbolLayer( const QColor& color = DEFAULT_SIMPLEFILL_COLOR, const QColor& color2 = Qt::white, ShapeburstColorType colorType = SimpleTwoColor, int blurRadius = 0, bool useWholeShape = true, double maxDistance = 5 ); virtual ~QgsShapeburstFillSymbolLayer(); // static stuff static QgsSymbolLayer* create( const QgsStringMap& properties = QgsStringMap() ) /Factory/; // implemented from base classes QString layerType() const; void startRender( QgsSymbolRenderContext& context ); void stopRender( QgsSymbolRenderContext& context ); void renderPolygon( const QPolygonF& points, QList* rings, QgsSymbolRenderContext& context ); QgsStringMap properties() const; virtual QgsShapeburstFillSymbolLayer* clone() const /Factory/; double estimateMaxBleed( const QgsRenderContext& context ) const; /** Sets the blur radius, which controls the amount of blurring applied to the fill. * @param blurRadius Radius for fill blur. Values between 0 - 17 are valid, where higher values results in a stronger blur. Set to 0 to disable blur. * @note added in 2.3 * @see blurRadius */ void setBlurRadius( int blurRadius ); /** Returns the blur radius, which controls the amount of blurring applied to the fill. * @returns Integer representing the radius for fill blur. Higher values indicate a stronger blur. A 0 value indicates that blurring is disabled. * @note added in 2.3 * @see setBlurRadius */ int blurRadius() const; /** Sets whether the shapeburst fill should be drawn using the entire shape. * @param useWholeShape Set to true if shapeburst should cover entire shape. If false, setMaxDistance is used to calculate how far from the boundary of the shape should * be shaded * @note added in 2.3 * @see useWholeShape * @see setMaxDistance */ void setUseWholeShape( bool useWholeShape ); /** Returns whether the shapeburst fill is set to cover the entire shape. * @returns True if shapeburst fill will cover the entire shape. If false, shapeburst is drawn to a distance of maxDistance from the polygon's boundary. * @note added in 2.3 * @see setUseWholeShape * @see maxDistance */ bool useWholeShape() const; /** Sets the maximum distance to shape inside of the shape from the polygon's boundary. * @param maxDistance distance from boundary to shade. setUseWholeShape must be set to false for this parameter to take effect. Distance unit is controlled by setDistanceUnit. * @note added in 2.3 * @see maxDistance * @see setUseWholeShape * @see setDistanceUnit */ void setMaxDistance( double maxDistance ); /** Returns the maximum distance from the shape's boundary which is shaded. This parameter is only effective if useWholeShape is false. * @returns the maximum distance from the polygon's boundary which is shaded. Distance units are indicated by distanceUnit. * @note added in 2.3 * @see useWholeShape * @see setMaxDistance * @see distanceUnit */ double maxDistance() const; /** Sets the unit for the maximum distance to shade inside of the shape from the polygon's boundary. * @param unit distance unit for the maximum distance * @note added in 2.3 * @see setMaxDistance * @see distanceUnit */ void setDistanceUnit( QgsUnitTypes::RenderUnit unit ); /** Returns the unit for the maximum distance to shade inside of the shape from the polygon's boundary. * @returns distance unit for the maximum distance * @note added in 2.3 * @see maxDistance * @see setDistanceUnit */ QgsUnitTypes::RenderUnit distanceUnit() const; void setDistanceMapUnitScale( const QgsMapUnitScale& scale ); const QgsMapUnitScale& distanceMapUnitScale() const; /** Sets the color mode to use for the shapeburst fill. Shapeburst can either be drawn using a QgsColorRamp color ramp * or by simply specificing a start and end color. setColorType is used to specify which mode to use for the fill. * @param colorType color type to use for shapeburst fill * @note added in 2.3 * @see colorType * @see setColor * @see setColor2 * @see setColorRamp */ void setColorType( ShapeburstColorType colorType ); /** Returns the color mode used for the shapeburst fill. Shapeburst can either be drawn using a QgsColorRamp color ramp * or by simply specificing a start and end color. * @returns current color mode used for the shapeburst fill * @note added in 2.3 * @see setColorType * @see color * @see color2 * @see colorRamp */ ShapeburstColorType colorType() const; /** Sets the color ramp used to draw the shapeburst fill. Color ramps are only used if setColorType is set ShapeburstColorType::ColorRamp. * @param ramp color ramp to use for shapeburst fill * @note added in 2.3 * @see setColorType * @see colorRamp */ void setColorRamp( QgsColorRamp* ramp ); /** Returns the color ramp used for the shapeburst fill. The color ramp is only used if the colorType is set to ShapeburstColorType::ColorRamp * @returns a QgsColorRamp color ramp * @note added in 2.3 * @see setColorRamp * @see colorType */ QgsColorRamp* colorRamp(); /** Sets the color for the endpoint of the shapeburst fill. This color is only used if setColorType is set ShapeburstColorType::SimpleTwoColor. * @param color2 QColor to use for endpoint of gradient * @note added in 2.3 * @see setColorType * @see color2 */ void setColor2( const QColor& color2 ); /** Returns the color used for the endpoint of the shapeburst fill. This color is only used if the colorType is set to ShapeburstColorType::SimpleTwoColor * @returns a QColor indicating the color of the endpoint of the gradient * @note added in 2.3 * @see setColor2 * @see colorType */ QColor color2() const; /** Sets whether the shapeburst fill should ignore polygon rings when calculating * the buffered shading. * @param ignoreRings Set to true if buffers should ignore interior rings for polygons. * @note added in 2.3 * @see ignoreRings */ void setIgnoreRings( bool ignoreRings ); /** Returns whether the shapeburst fill is set to ignore polygon interior rings. * @returns True if the shapeburst fill will ignore interior rings when calculating buffered shading. * @note added in 2.3 * @see setIgnoreRings */ bool ignoreRings() const; /** Sets the offset for the shapeburst fill. * @param offset QPointF indicating the horizontal/vertical offset amount * @note added in 2.3 * @see offset * @see setOffsetUnit */ void setOffset( QPointF offset ); /** Returns the offset for the shapeburst fill. * @returns a QPointF indicating the horizontal/vertical offset amount * @note added in 2.3 * @see setOffset * @see offsetUnit */ QPointF offset() const; /** Sets the units used for the offset for the shapeburst fill. * @param unit units for fill offset * @note added in 2.3 * @see setOffset * @see offsetUnit */ void setOffsetUnit( QgsUnitTypes::RenderUnit unit ); /** Returns the units used for the offset of the shapeburst fill. * @returns units used for the fill offset * @note added in 2.3 * @see offset * @see setOffsetUnit */ QgsUnitTypes::RenderUnit offsetUnit() const; void setOffsetMapUnitScale( const QgsMapUnitScale& scale); const QgsMapUnitScale& offsetMapUnitScale() const; void setOutputUnit( QgsUnitTypes::RenderUnit unit ); QgsUnitTypes::RenderUnit outputUnit() const; void setMapUnitScale( const QgsMapUnitScale &scale ); QgsMapUnitScale mapUnitScale() const; }; /** Base class for polygon renderers generating texture images*/ class QgsImageFillSymbolLayer: QgsFillSymbolLayer { %TypeHeaderCode #include %End public: QgsImageFillSymbolLayer(); virtual ~QgsImageFillSymbolLayer(); void renderPolygon( const QPolygonF& points, QList* rings, QgsSymbolRenderContext& context ); virtual QgsSymbol* subSymbol(); virtual bool setSubSymbol( QgsSymbol* symbol /Transfer/ ); /** Sets the units for the symbol's outline width. * @param unit symbol units * @see outlineWidthUnit() */ void setOutlineWidthUnit( QgsUnitTypes::RenderUnit unit ); /** Returns the units for the symbol's outline width. * @see setOutlineWidthUnit() */ QgsUnitTypes::RenderUnit outlineWidthUnit() const; void setOutlineWidthMapUnitScale( const QgsMapUnitScale& scale); const QgsMapUnitScale& outlineWidthMapUnitScale() const; void setOutputUnit( QgsUnitTypes::RenderUnit unit ); QgsUnitTypes::RenderUnit outputUnit() const; void setMapUnitScale( const QgsMapUnitScale& scale ); QgsMapUnitScale mapUnitScale() const; virtual double estimateMaxBleed( const QgsRenderContext& context ) const; virtual double dxfWidth( const QgsDxfExport& e, QgsSymbolRenderContext& context ) const; virtual QColor dxfColor( QgsSymbolRenderContext& context ) const; virtual Qt::PenStyle dxfPenStyle() const; QSet usedAttributes( const QgsRenderContext& context ) const; protected: virtual void applyDataDefinedSettings( QgsSymbolRenderContext& context ); private: QgsImageFillSymbolLayer( const QgsImageFillSymbolLayer& other ); }; /** \ingroup core * \class QgsRasterFillSymbolLayer * \brief A class for filling symbols with a repeated raster image. * \note Added in version 2.7 */ class QgsRasterFillSymbolLayer: QgsImageFillSymbolLayer { %TypeHeaderCode #include %End public: enum FillCoordinateMode { Feature, Viewport }; QgsRasterFillSymbolLayer( const QString& imageFilePath = QString() ); ~QgsRasterFillSymbolLayer(); static QgsSymbolLayer* create( const QgsStringMap& properties = QgsStringMap() ); // implemented from base classes QString layerType() const; void renderPolygon( const QPolygonF& points, QList* rings, QgsSymbolRenderContext& context ); void startRender( QgsSymbolRenderContext& context ); void stopRender( QgsSymbolRenderContext& context ); QgsStringMap properties() const; virtual QgsRasterFillSymbolLayer* clone() const; virtual double estimateMaxBleed( const QgsRenderContext& context ) const; //override QgsImageFillSymbolLayer's support for sub symbols virtual QgsSymbol* subSymbol(); virtual bool setSubSymbol( QgsSymbol* symbol /Transfer/ ); /** Sets the path to the raster image used for the fill. * @param imagePath path to image file * @see imageFilePath */ void setImageFilePath( const QString& imagePath ); /** The path to the raster image used for the fill. * @returns path to image file * @see setImageFilePath */ QString imageFilePath() const; /** Set the coordinate mode for fill. Controls how the top left corner of the image * fill is positioned relative to the feature. * @param mode coordinate mode * @see coordinateMode */ void setCoordinateMode( const FillCoordinateMode mode ); /** Coordinate mode for fill. Controls how the top left corner of the image * fill is positioned relative to the feature. * @returns coordinate mode * @see setCoordinateMode */ FillCoordinateMode coordinateMode() const; /** Sets the opacity for the raster image used in the fill. * @param alpha opacity value between 0 (fully transparent) and 1 (fully opaque) * @see alpha */ void setAlpha( const double alpha ); /** The opacity for the raster image used in the fill. * @returns opacity value between 0 (fully transparent) and 1 (fully opaque) * @see setAlpha */ double alpha() const; /** Sets the offset for the fill. * @param offset offset for fill * @see offset * @see setOffsetUnit * @see setOffsetMapUnitScale */ void setOffset( QPointF offset ); /** Returns the offset for the fill. * @returns offset for fill * @see setOffset * @see offsetUnit * @see offsetMapUnitScale */ QPointF offset() const; /** Sets the units for the fill's offset. * @param unit units for offset * @see offsetUnit * @see setOffset * @see setOffsetMapUnitScale */ void setOffsetUnit( const QgsUnitTypes::RenderUnit unit ); /** Returns the units for the fill's offset. * @returns units for offset * @see setOffsetUnit * @see offset * @see offsetMapUnitScale */ QgsUnitTypes::RenderUnit offsetUnit() const; /** Sets the map unit scale for the fill's offset. * @param scale map unit scale for offset * @see offsetMapUnitScale * @see setOffset * @see setOffsetUnit */ void setOffsetMapUnitScale( const QgsMapUnitScale& scale ); /** Returns the map unit scale for the fill's offset. * @returns map unit scale for offset * @see setOffsetMapUnitScale * @see offset * @see offsetUnit */ const QgsMapUnitScale& offsetMapUnitScale() const; /** Sets the width for scaling the image used in the fill. The image's height will also be * scaled to maintain the image's aspect ratio. * @param width width for scaling the image * @see width * @see setWidthUnit * @see setWidthMapUnitScale */ void setWidth( const double width ); /** Returns the width used for scaling the image used in the fill. The image's height is * scaled to maintain the image's aspect ratio. * @returns width used for scaling the image * @see setWidth * @see widthUnit * @see widthMapUnitScale */ double width() const; /** Sets the units for the image's width. * @param unit units for width * @see widthUnit * @see setWidth * @see setWidthMapUnitScale */ void setWidthUnit( const QgsUnitTypes::RenderUnit unit ); /** Returns the units for the image's width. * @returns units for width * @see setWidthUnit * @see width * @see widthMapUnitScale */ QgsUnitTypes::RenderUnit widthUnit() const; /** Sets the map unit scale for the image's width. * @param scale map unit scale for width * @see widthMapUnitScale * @see setWidth * @see setWidthUnit */ void setWidthMapUnitScale( const QgsMapUnitScale& scale ); /** Returns the map unit scale for the image's width. * @returns map unit scale for width * @see setWidthMapUnitScale * @see width * @see widthUnit */ const QgsMapUnitScale& widthMapUnitScale() const; protected: void applyDataDefinedSettings( QgsSymbolRenderContext& context ); }; /** A class for svg fill patterns. The class automatically scales the pattern to the appropriate pixel dimensions of the output device*/ class QgsSVGFillSymbolLayer: QgsImageFillSymbolLayer { %TypeHeaderCode #include %End public: QgsSVGFillSymbolLayer( const QString& svgFilePath = "", double width = 20, double rotation = 0.0 ); QgsSVGFillSymbolLayer( const QByteArray& svgData, double width = 20, double rotation = 0.0 ); ~QgsSVGFillSymbolLayer(); static QgsSymbolLayer* create( const QgsStringMap& properties = QgsStringMap() ) /Factory/; static QgsSymbolLayer* createFromSld( QDomElement &element ) /Factory/; // implemented from base classes QString layerType() const; void startRender( QgsSymbolRenderContext& context ); void stopRender( QgsSymbolRenderContext& context ); QgsStringMap properties() const; virtual QgsSVGFillSymbolLayer* clone() const /Factory/; void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const; //getters and setters void setSvgFilePath( const QString& svgPath ); QString svgFilePath() const; void setPatternWidth( double width ); double patternWidth() const; void setSvgFillColor( const QColor& c ); QColor svgFillColor() const; void setSvgOutlineColor( const QColor& c ); QColor svgOutlineColor() const; void setSvgOutlineWidth( double w ); double svgOutlineWidth() const; /** Sets the units for the width of the SVG images in the pattern. * @param unit width units * @see patternWidthUnit() */ void setPatternWidthUnit( QgsUnitTypes::RenderUnit unit ); /** Returns the units for the width of the SVG images in the pattern. * @see setPatternWidthUnit() */ QgsUnitTypes::RenderUnit patternWidthUnit() const; void setPatternWidthMapUnitScale( const QgsMapUnitScale& scale); const QgsMapUnitScale& patternWidthMapUnitScale() const; /** Sets the units for the outline width. * @param unit width units * @see svgOutlineWidthUnit() */ void setSvgOutlineWidthUnit( QgsUnitTypes::RenderUnit unit ); /** Returns the units for the outline width. * @see setSvgOutlineWidthUnit() */ QgsUnitTypes::RenderUnit svgOutlineWidthUnit() const; void setSvgOutlineWidthMapUnitScale( const QgsMapUnitScale& scale); const QgsMapUnitScale& svgOutlineWidthMapUnitScale() const; void setOutputUnit( QgsUnitTypes::RenderUnit unit ); QgsUnitTypes::RenderUnit outputUnit() const; void setMapUnitScale( const QgsMapUnitScale &scale ); QgsMapUnitScale mapUnitScale() const; protected: void applyDataDefinedSettings( QgsSymbolRenderContext& context ); }; class QgsLinePatternFillSymbolLayer: QgsImageFillSymbolLayer { %TypeHeaderCode #include %End public: QgsLinePatternFillSymbolLayer(); ~QgsLinePatternFillSymbolLayer(); static QgsSymbolLayer* create( const QgsStringMap& properties = QgsStringMap() ) /Factory/; static QgsSymbolLayer* createFromSld( QDomElement &element ) /Factory/; QString layerType() const; void startRender( QgsSymbolRenderContext& context ); void stopRender( QgsSymbolRenderContext& context ); QgsStringMap properties() const; virtual QgsLinePatternFillSymbolLayer* clone() const /Factory/; void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const; double estimateMaxBleed( const QgsRenderContext& context ) const; QString ogrFeatureStyleWidth( double widthScaleFactor ) const; //getters and setters void setLineAngle( double a ); double lineAngle() const; /** Sets the distance between lines in the fill pattern. * @param d distance. Units are specified by setDistanceUnit() * @see distance() * @see setDistanceUnit() */ void setDistance( double d ); /** Returns the distance between lines in the fill pattern. Units are retrieved by distanceUnit(). * @see setDistance() * @see distanceUnit() */ double distance() const; void setLineWidth( double w ); double lineWidth() const; void setColor( const QColor& c ); QColor color() const; void setOffset( double offset ); double offset() const; /** Sets the units for the distance between lines in the fill pattern. * @param unit distance units * @see distanceUnit() * @see setDistance() */ void setDistanceUnit( QgsUnitTypes::RenderUnit unit ); /** Returns the units for the distance between lines in the fill pattern. * @see setDistanceUnit() * @see distance() */ QgsUnitTypes::RenderUnit distanceUnit() const; void setDistanceMapUnitScale( const QgsMapUnitScale& scale); const QgsMapUnitScale& distanceMapUnitScale() const; /** Sets the units for the line's width. * @param unit width units * @see lineWidthUnit() */ void setLineWidthUnit( QgsUnitTypes::RenderUnit unit ); /** Returns the units for the line's width. * @see setLineWidthUnit() */ QgsUnitTypes::RenderUnit lineWidthUnit() const; void setLineWidthMapUnitScale( const QgsMapUnitScale& scale); const QgsMapUnitScale& lineWidthMapUnitScale() const; /** Sets the units for the line pattern's offset. * @param unit offset units * @see offsetUnit() */ void setOffsetUnit( QgsUnitTypes::RenderUnit unit ); /** Returns the units for the line pattern's offset. * @see setOffsetUnit() */ QgsUnitTypes::RenderUnit offsetUnit() const; void setOffsetMapUnitScale( const QgsMapUnitScale& scale); const QgsMapUnitScale& offsetMapUnitScale() const; void setOutputUnit( QgsUnitTypes::RenderUnit unit ); QgsUnitTypes::RenderUnit outputUnit() const; void setMapUnitScale( const QgsMapUnitScale& scale ); QgsMapUnitScale mapUnitScale() const; bool setSubSymbol( QgsSymbol* symbol /Transfer/ ); QgsSymbol* subSymbol(); QSet usedAttributes( const QgsRenderContext& context ) const; private: QgsLinePatternFillSymbolLayer( const QgsLinePatternFillSymbolLayer& other ); }; class QgsPointPatternFillSymbolLayer : QgsImageFillSymbolLayer { %TypeHeaderCode #include %End public: QgsPointPatternFillSymbolLayer(); ~QgsPointPatternFillSymbolLayer(); static QgsSymbolLayer* create( const QgsStringMap& properties = QgsStringMap() ) /Factory/; static QgsSymbolLayer* createFromSld( QDomElement &element ) /Factory/; QString layerType() const; void startRender( QgsSymbolRenderContext& context ); void stopRender( QgsSymbolRenderContext& context ); QgsStringMap properties() const; virtual QgsPointPatternFillSymbolLayer* clone() const /Factory/; void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const; double estimateMaxBleed( const QgsRenderContext& context ) const; //getters and setters double distanceX() const; void setDistanceX( double d ); double distanceY() const; void setDistanceY( double d ); double displacementX() const; void setDisplacementX( double d ); double displacementY() const; void setDisplacementY( double d ); bool setSubSymbol( QgsSymbol* symbol /Transfer/ ); virtual QgsSymbol* subSymbol(); /** Sets the units for the horizontal distance between points in the pattern. * @param unit distance units * @see distanceXUnit() * @see setDistanceYUnit() */ void setDistanceXUnit( QgsUnitTypes::RenderUnit unit ); /** Returns the units for the horizontal distance between points in the pattern. * @see setDistanceXUnit() * @see distanceYUnit() */ QgsUnitTypes::RenderUnit distanceXUnit() const; void setDistanceXMapUnitScale( const QgsMapUnitScale& scale); const QgsMapUnitScale& distanceXMapUnitScale() const; /** Sets the units for the vertical distance between points in the pattern. * @param unit distance units * @see distanceYUnit() * @see setDistanceXUnit() */ void setDistanceYUnit( QgsUnitTypes::RenderUnit unit ); /** Returns the units for the vertical distance between points in the pattern. * @see setDistanceYUnit() * @see distanceXUnit() */ QgsUnitTypes::RenderUnit distanceYUnit() const; void setDistanceYMapUnitScale( const QgsMapUnitScale& scale); const QgsMapUnitScale& distanceYMapUnitScale() const; void setDisplacementXUnit( QgsUnitTypes::RenderUnit unit ); QgsUnitTypes::RenderUnit displacementXUnit() const; void setDisplacementXMapUnitScale( const QgsMapUnitScale& scale); const QgsMapUnitScale& displacementXMapUnitScale() const; void setDisplacementYUnit( QgsUnitTypes::RenderUnit unit ); QgsUnitTypes::RenderUnit displacementYUnit() const; void setDisplacementYMapUnitScale( const QgsMapUnitScale& scale); const QgsMapUnitScale& displacementYMapUnitScale() const; void setOutputUnit( QgsUnitTypes::RenderUnit unit ); QgsUnitTypes::RenderUnit outputUnit() const; void setMapUnitScale( const QgsMapUnitScale &scale ); QgsMapUnitScale mapUnitScale() const; virtual QSet usedAttributes( const QgsRenderContext& context ) const; void setColor( const QColor& c ); virtual QColor color() const; protected: void applyDataDefinedSettings( QgsSymbolRenderContext& context ); private: QgsPointPatternFillSymbolLayer( const QgsPointPatternFillSymbolLayer& other ); }; class QgsCentroidFillSymbolLayer : QgsFillSymbolLayer { %TypeHeaderCode #include %End public: QgsCentroidFillSymbolLayer(); ~QgsCentroidFillSymbolLayer(); // static stuff static QgsSymbolLayer* create( const QgsStringMap& properties = QgsStringMap() ) /Factory/; static QgsSymbolLayer* createFromSld( QDomElement &element ) /Factory/; // implemented from base classes QString layerType() const; void startRender( QgsSymbolRenderContext& context ); void stopRender( QgsSymbolRenderContext& context ); void renderPolygon( const QPolygonF& points, QList* rings, QgsSymbolRenderContext& context ); QgsStringMap properties() const; virtual QgsCentroidFillSymbolLayer* clone() const /Factory/; void toSld( QDomDocument &doc, QDomElement &element, const QgsStringMap& props ) const; void setColor( const QColor& color ); QColor color() const; QgsSymbol* subSymbol(); bool setSubSymbol( QgsSymbol* symbol /Transfer/ ); void setOutputUnit( QgsUnitTypes::RenderUnit unit ); QgsUnitTypes::RenderUnit outputUnit() const; void setMapUnitScale(const QgsMapUnitScale &scale); QgsMapUnitScale mapUnitScale() const; virtual QSet usedAttributes( const QgsRenderContext& context ) const; void setPointOnSurface( bool pointOnSurface ); bool pointOnSurface() const; /** Sets whether a point is drawn for all parts or only on the biggest part of multi-part features. * @note added in 2.16 */ void setPointOnAllParts( bool pointOnAllParts ); /** Returns whether a point is drawn for all parts or only on the biggest part of multi-part features. * @note added in 2.16 */ bool pointOnAllParts() const; private: QgsCentroidFillSymbolLayer( const QgsCentroidFillSymbolLayer& other ); };