org.geotools.styling
Interface Stroke

All Superinterfaces:
GTComponent
All Known Implementing Classes:
StrokeImpl

public interface Stroke
extends GTComponent

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:

Version:
$Id: Stroke.java 18021 2006-02-14 20:36:18Z jdeolive $
Author:
James Macgill

Field Summary
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
 void accept(StyleVisitor visitor)
           
 java.lang.Object clone()
          Creates a clone of the Stroke.
 Expression getColor()
          This parameter gives the solid color that will be used for a stroke.
 java.awt.Color getColor(Feature f)
          This parameter gives the solid color that will be used for a stroke.
 float[] getDashArray()
          This parameter encodes the dash pattern as a seqeuence of floats.
 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.
 Expression getOpacity()
          This specifies the level of translucency to use when rendering the stroke.
 Expression getWidth()
          This parameter gives the absolute width (thickness) of a stroke in pixels encoded as a float.
 void setColor(Expression color)
          This parameter gives the solid color that will be used for a stroke.
 void setDashArray(float[] dashArray)
          This parameter encodes the dash pattern as a seqeuence of floats.
 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.
 void setWidth(Expression width)
          This parameter gives the absolute width (thickness) of a stroke in pixels encoded as a float.
 
Methods inherited from interface org.geotools.event.GTComponent
changed, getNote, getParent, removed, setNote
 

Field Detail

DEFAULT

public 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

public 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

getColor

public Expression getColor()
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). The default color is defined to be black ("#000000"). Note: in CSS this parameter is just called Stroke and not Color.

Returns:
The color of the stroke encoded as a hexidecimal RGB value.

getColor

public java.awt.Color getColor(Feature f)
This parameter gives the solid color that will be used for a stroke.
The color value returned here as a Java Color object, this is a convinence method that goes above The default color is defined to be Color.BLACK Note: in CSS this parameter is just called Stroke and not Color.

Returns:
The color of the stroke as a Color object

setColor

public 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.


getWidth

public Expression getWidth()
This parameter gives the absolute width (thickness) of a stroke in pixels encoded as a float. The default is 1.0. Fractional numbers are allowed but negative numbers are not.

Returns:
The width of the stroke in pixels. This may be fractional but not negative.

setWidth

public 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.


getOpacity

public Expression getOpacity()
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. The default value is 1.0 (opaque).

Returns:
The opacity of the stroke, where 0.0 is completely transparent and 1.0 is completely opaque.

setOpacity

public 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

public Expression getLineJoin()
This parameter controls how line strings should be joined together.

Returns:
The join style. This will be one of "mitre", "round" and "bevel". There is no defined default.

setLineJoin

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


getLineCap

public Expression getLineCap()
This parameter controls how line strings should be capped.

Returns:
The cap style. This will be one of "butt", "round" and "square". There is no defined default.

setLineCap

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


getDashArray

public float[] getDashArray()
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. The default is to draw an unbroken line.
For example, "2 1 3 2" would produce:
-- ---  -- ---  -- ---   -- ---  -- ---  --

Returns:
The dash pattern as an array of float values in the form "dashlength gaplength ..."

setDashArray

public void setDashArray(float[] 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:
-- ---  -- ---  -- ---   -- ---  -- ---  --


getDashOffset

public Expression getDashOffset()
A dash array need not start from the beginning. This method allows for an offset into the dash array before starting it.

Returns:
The distance, in pixels, that any dash array should start from.

setDashOffset

public 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

public Graphic getGraphicFill()
This parameter indicates that a stipple-fill repeated graphic will be used and specifies the fill graphic to use.

Returns:
The graphic to use as a stipple fill. If null, then no Stipple fill should be used.

setGraphicFill

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


getGraphicStroke

public 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.

Returns:
The graphic to use as a linear graphic. If null, then no graphic stroke should be used.

setGraphicStroke

public 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.


accept

public void accept(StyleVisitor visitor)

clone

public java.lang.Object clone()
Creates a clone of the Stroke.

Returns:
A clone of the stroke object.


Copyright © GeoTools. All Rights Reserved.