Interface Stroke

  • All Superinterfaces:
    Stroke
    All Known Implementing Classes:
    StrokeImpl

    public interface Stroke
    extends Stroke
    The Stroke object encapsulates the graphical-symbolization parameters for linear geometries.

    There are three basic types of stroke: solid color, graphic fill (stipple), and repeated linear graphic stroke. A repeated linear graphic is plotted linearly and has its graphic symbol bent around the curves of the line string. A GraphicFill has the pixels of the line rendered with a repeating area-fill pattern.

    If neither a graphic fill nor graphic stroke element are given, then the line symbolizer should render a solid color.

    The details of this object are taken from the OGC Styled-Layer Descriptor Report (OGC 02-070) version 1.0.0.:

    
     <xsd:element name="Stroke">
       <xsd:annotation>
         <xsd:documentation>
           A "Stroke" specifies the appearance of a linear geometry.  It is
           defined in parallel with SVG strokes.  The following CssParameters
           may be used: "stroke" (color), "stroke-opacity", "stroke-width",
           "stroke-linejoin", "stroke-linecap", "stroke-dasharray", and
           "stroke-dashoffset".
         </xsd:documentation>
       </xsd:annotation>
       <xsd:complexType>
         <xsd:sequence>
           <xsd:choice minOccurs="0">
             <xsd:element ref="sld:GraphicFill"/>
             <xsd:element ref="sld:GraphicStroke"/>
           </xsd:choice>
           <xsd:element ref="sld:CssParameter" minOccurs="0"
                        maxOccurs="unbounded"/>
         </xsd:sequence>
       </xsd:complexType>
     </xsd:element>
     

    Renderers can use this information when displaying styled features, though it must be remembered that not all renderers will be able to fully represent strokes as set out by this interface. For example, opacity may not be supported.

    Notes:

    • The graphical parameters and their values are derived from SVG/CSS2 standards with names and semantics which are as close as possible.
    Author:
    James Macgill
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static Stroke DEFAULT
      Default Stroke capturing the defaults indicated by the standard.
      static Stroke NULL
      Null Stroke capturing the defaults indicated by the standard.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void accept​(StyleVisitor visitor)  
      List<Expression> dashArray()
      This parameter encodes the dash pattern as a seqeuence of floats.
      The first number gives the length in pixels of the dash to draw, the second gives the amount of space to leave, and this pattern repeats.
      If an odd number of values is given, then the pattern is expanded by repeating it twice to give an even number of values.
      Expression getDashOffset()
      A dash array need not start from the beginning.
      Graphic getGraphicFill()
      This parameter indicates that a stipple-fill repeated graphic will be used and specifies the fill graphic to use.
      Graphic getGraphicStroke()
      This parameter indicates that a repeated-linear-graphic graphic stroke type will be used and specifies the graphic to use.
      Expression getLineCap()
      This parameter controls how line strings should be capped.
      Expression getLineJoin()
      This parameter controls how line strings should be joined together.
      void setColor​(Expression color)
      This parameter gives the solid color that will be used for a stroke.
      The color value is RGB-encoded using two hexidecimal digits per primary-color component in the order Red, Green, Blue, prefixed wih the hash (#) sign.
      void setDashArray​(float[] dashArray)
      Shortcut to define dash array using literal numbers.
      void setDashArray​(List<Expression> dashArray)
      This parameter encodes the dash pattern as a list of expressions.
      The first expression gives the length in pixels of the dash to draw, the second gives the amount of space to leave, and this pattern repeats.
      If an odd number of values is given, then the pattern is expanded by repeating it twice to give an even number of values.
      void setDashOffset​(Expression dashOffset)
      A dash array need not start from the beginning.
      void setGraphicFill​(Graphic graphicFill)
      This parameter indicates that a stipple-fill repeated graphic will be used and specifies the fill graphic to use.
      void setGraphicStroke​(Graphic graphicStroke)
      This parameter indicates that a repeated-linear-graphic graphic stroke type will be used and specifies the graphic to use.
      void setLineCap​(Expression lineCap)
      This parameter controls how line strings should be capped.
      void setLineJoin​(Expression lineJoin)
      This parameter controls how line strings should be joined together.
      void setOpacity​(Expression opacity)
      This specifies the level of translucency to use when rendering the stroke.
      The value is encoded as a floating-point value between 0.0 and 1.0 with 0.0 representing totally transparent and 1.0 representing totally opaque.
      void setWidth​(Expression width)
      This parameter gives the absolute width (thickness) of a stroke in pixels encoded as a float.
    • Field Detail

      • DEFAULT

        static final Stroke DEFAULT
        Default Stroke capturing the defaults indicated by the standard.

        For some attributes the standard does not define a default, so a reasonable value is supplied.

      • NULL

        static final Stroke NULL
        Null Stroke capturing the defaults indicated by the standard.

        This is a NullObject, it purpose is to prevent client code from having to do null checking.

    • Method Detail

      • setColor

        void setColor​(Expression color)
        This parameter gives the solid color that will be used for a stroke.
        The color value is RGB-encoded using two hexidecimal digits per primary-color component in the order Red, Green, Blue, prefixed wih the hash (#) sign. The hexidecimal digits between A and F may be in either upper or lower case. For example, full red is encoded as "#ff0000" (with no quotation marks).

        Note: in CSS this parameter is just called Stroke and not Color.

      • setWidth

        void setWidth​(Expression width)
        This parameter gives the absolute width (thickness) of a stroke in pixels encoded as a float. Fractional numbers are allowed but negative numbers are not.
      • setOpacity

        void setOpacity​(Expression opacity)
        This specifies the level of translucency to use when rendering the stroke.
        The value is encoded as a floating-point value between 0.0 and 1.0 with 0.0 representing totally transparent and 1.0 representing totally opaque. A linear scale of translucency is used for intermediate values.
        For example, "0.65" would represent 65% opacity.
      • getLineJoin

        Expression getLineJoin()
        This parameter controls how line strings should be joined together.
        Specified by:
        getLineJoin in interface Stroke
        Returns:
        expression
      • setLineJoin

        void setLineJoin​(Expression lineJoin)
        This parameter controls how line strings should be joined together.
      • getLineCap

        Expression getLineCap()
        This parameter controls how line strings should be capped.
        Specified by:
        getLineCap in interface Stroke
        Returns:
        expression
      • setLineCap

        void setLineCap​(Expression lineCap)
        This parameter controls how line strings should be capped.
      • setDashArray

        void setDashArray​(float[] dashArray)
        Shortcut to define dash array using literal numbers.
      • dashArray

        List<Expression> dashArray()
        This parameter encodes the dash pattern as a seqeuence of floats.
        The first number gives the length in pixels of the dash to draw, the second gives the amount of space to leave, and this pattern repeats.
        If an odd number of values is given, then the pattern is expanded by repeating it twice to give an even number of values.

        For example, "2 1 3 2" would produce:
        -- ---  -- ---  -- ---   -- ---  -- ---  --

      • setDashArray

        void setDashArray​(List<Expression> dashArray)
        This parameter encodes the dash pattern as a list of expressions.
        The first expression gives the length in pixels of the dash to draw, the second gives the amount of space to leave, and this pattern repeats.
        If an odd number of values is given, then the pattern is expanded by repeating it twice to give an even number of values.

        For example, "2 1 3 2" would produce:
        -- ---  -- ---  -- ---   -- ---  -- ---  --

      • getDashOffset

        Expression getDashOffset()
        A dash array need not start from the beginning. This method allows for an offset into the dash array before starting it.
        Specified by:
        getDashOffset in interface Stroke
        Returns:
        expression
      • setDashOffset

        void setDashOffset​(Expression dashOffset)
        A dash array need not start from the beginning. This method allows for an offset into the dash array before starting it.
      • getGraphicFill

        Graphic getGraphicFill()
        This parameter indicates that a stipple-fill repeated graphic will be used and specifies the fill graphic to use.
        Specified by:
        getGraphicFill in interface Stroke
        Returns:
        The graphic to use as a stipple fill. If null, then no Stipple fill should be used.
      • setGraphicFill

        void setGraphicFill​(Graphic graphicFill)
        This parameter indicates that a stipple-fill repeated graphic will be used and specifies the fill graphic to use.
      • getGraphicStroke

        Graphic getGraphicStroke()
        This parameter indicates that a repeated-linear-graphic graphic stroke type will be used and specifies the graphic to use.

        Proper stroking with a linear graphic requires two "hot-spot" points within the space of the graphic to indicate where the rendering line starts and stops. In the case of raster images with no special mark-up, this line will be assumed to be the middle pixel row of the image, starting from the first pixel column and ending at the last pixel column.

        Specified by:
        getGraphicStroke in interface Stroke
        Returns:
        The graphic to use as a linear graphic. If null, then no graphic stroke should be used.
      • setGraphicStroke

        void setGraphicStroke​(Graphic graphicStroke)
        This parameter indicates that a repeated-linear-graphic graphic stroke type will be used and specifies the graphic to use.

        Proper stroking with a linear graphic requires two "hot-spot" points within the space of the graphic to indicate where the rendering line starts and stops. In the case of raster images with no special mark-up, this line will be assumed to be the middle pixel row of the image, starting from the first pixel column and ending at the last pixel column.