--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The type of cap to put on the line.
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "<tt>:butt</tt>:"
      body: The stroke is squared off at the endpoint of the path. There is no projection beyond the end of the path.
    - !ruby/struct:SM::Flow::LI 
      label: "<tt>:round</tt>:"
      body: A semicircular arc with a diameter equal to the line width is drawn around the endpoint and filled in.
    - !ruby/struct:SM::Flow::LI 
      label: "<tt>:square</tt>:"
      body: The stroke continues beyond the endpoint of the path for a distance equal to half the line width and is squared off.
    - !ruby/struct:SM::Flow::LI 
      label: "+nil+:"
      body: Keeps the current line cap.
    type: :NOTE
  name: cap
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: "Controls the pattern of dashes and gaps used to stroke paths. This value must either be <tt>nil</tt>, or a hash with the following values:"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "<tt>:pattern</tt>:"
      body: An array of numbers specifying the lengths (in PDF userspace units) of alternating dashes and gaps. The array is processed cyclically, so that a <tt>:pattern</tt> of [3] represents three units on, three units off, and a <tt>:pattern</tt> of
    - !ruby/object:SM::Flow::LIST 
      contents: 
      - !ruby/struct:SM::Flow::LI 
        label: 2, 1
        body: represents two units on, one unit off.
      type: :LABELED
    type: :NOTE
  - !ruby/struct:SM::Flow::VERB 
    body: "      # - represents on, _ represents off\n    ---<em>_</em>---<em>_</em>---   # pattern [3]\n    --_--_--_--_--_   # pattern [2, 1]\n"
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "<tt>:phase</tt>:"
      body: The offset in the <tt>:pattern</tt> where the drawing of the stroke begins. Using a <tt>:phase</tt> of 1, the <tt>:pattern</tt> [3] will start offset by one phase, for two units on, three units off, three units on.
    type: :NOTE
  - !ruby/struct:SM::Flow::VERB 
    body: "    --<em>_</em>---<em>_</em>---_   # pattern [3], phase 1\n    -_--_--_--_--_-   # pattern [2, 1], phase 1\n"
  - !ruby/struct:SM::Flow::P 
    body: The constant SOLID_LINE may be used to restore line drawing to a solid line; this corresponds to an empty pattern with zero phase ([] 0).
  - !ruby/struct:SM::Flow::P 
    body: Dashed lines wrap around curves and corners just as solid stroked lines do, with normal cap and join handling with no consideration of the dash pattern. A path with several subpaths treats each subpath independently; the complete dash pattern is restarted at the beginning of each subpath.
  name: dash
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: How two lines join together.
  - !ruby/object:SM::Flow::LIST 
    contents: 
    - !ruby/struct:SM::Flow::LI 
      label: "<tt>:miter</tt>:"
      body: "The outer edges of the strokes for the two segments are extended until they meet at an angle, as in a picture frame. If the segments meet at too sharp an angle (as defined by the #miter_limit), a bevel join is used instead."
    - !ruby/struct:SM::Flow::LI 
      label: "<tt>:round</tt>:"
      body: An arc of a circle with a diameter equal to the line width is drawn around the point where the two segments meet, connecting the outer edges of the strokes for the two segments. This pie-slice shaped figure is filled in, producing a rounded corner.
    - !ruby/struct:SM::Flow::LI 
      label: "<tt>:bevel</tt>:"
      body: The two segments are finished with butt caps and the the resulting notch beyond the ends of the segments is filled with a triangle, forming a flattened edge on the join.
    - !ruby/struct:SM::Flow::LI 
      label: "+nil+:"
      body: Keeps the current line join.
    type: :NOTE
  name: join
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: "When two line segments meet and <tt>:miter</tt> joins have been specified, the miter may extend far beyond the thickness of the line stroking the path. #miter_limit imposes a maximum ratio miter length to line width at which point the join will be converted from a miter to a bevel. Adobe points out that the ratio is directly related to the angle between the segments in user space. With [p] representing the angle at which the segments meet:"
  - !ruby/struct:SM::Flow::VERB 
    body: "    miter_length / line_width == 1 / (sin ([p] / 2))\n"
  - !ruby/struct:SM::Flow::P 
    body: A miter limit of 1.414 converts miters to bevels for [p] less than 90 degrees, a limit of 2.0 converts them for [p] less than 60 degrees, and a limit of 10.0 converts them for [p] less than approximately 11.5 degrees.
  name: miter_limit
  rw: RW
- !ruby/object:RI::Attribute 
  comment: 
  - !ruby/struct:SM::Flow::P 
    body: The thickness of the line in PDF units.
  name: width
  rw: RW
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
comment: 
- !ruby/struct:SM::Flow::P 
  body: A class that represents a style with which lines will be drawn.
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: LINE_CAPS
  value: "{ :butt => 0, :round => 1, :square => 2 }"
- !ruby/object:RI::Constant 
  comment: 
  name: LINE_JOINS
  value: "{ :miter => 0, :round => 1, :bevel => 2 }"
- !ruby/object:RI::Constant 
  comment: 
  name: SOLID_LINE
  value: "{ :pattern => [], :phase => 0 }"
- !ruby/object:RI::Constant 
  comment: 
  name: DEFAULT
  value: self.new(1, :cap => :butt, :join => :miter, :dash => SOLID_LINE)
full_name: PDF::Writer::StrokeStyle
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: render
name: StrokeStyle
superclass: Object
