class interface GEOMETRIC_PEN

creation
   make

feature(s) from BASIC_PEN
   --  Colour

   set_color (cl: COLOR)
      --  Set brush to solid brush with colour cl. 

      require
         valid_color: cl /= Void
      ensure
         keep_reference: color = cl

feature(s) from BASIC_PEN
   --  Line style

   set_line_solid
      --  Set line style: solid (default).


   set_line_solid_inside_frame
      --  Set line style: solid, kept inside rectangles.


   set_line_invisible
      --  Set line style: no line (invisible).


   set_line_dash
      --  Set line style: - - - -


   set_line_dot
      --  Set line style: .......


   set_line_dash_dot
      --  Set line style: -.-.-.-


   set_line_dash_dot_dot
      --  Set line style: -..-..-


feature(s) from GEOMETRIC_PEN
   --  Brush

   set_brush (br: BRUSH)
      --  Set brush associated with pen, overrides set_color.
      --  Default: solid brush.

      require
         valid_brush: br /= Void
      ensure
         keep_reference: br = brush

feature(s) from GEOMETRIC_PEN
   --  Width

   set_width (wi: INTEGER)
      --  Set pen width in logical device units.

      require
         valid_width: wi >= 0

feature(s) from GEOMETRIC_PEN
   --  End cap style

   set_end_round
      --  Set endcap style: round.


   set_end_square
      --  Set endcap style: square.


   set_end_flat
      --  Set endcap stylr: flat.


feature(s) from GEOMETRIC_PEN
   --  Join style

   set_join_round
      --  Line joins are round.


   set_join_bevel
      --  Line joins are beveled.


   set_join_miter
      --  Line joins are mitered.


invariant
   valid_color: color /= Void;
   valid_brush: brush /= Void;

end of GEOMETRIC_PEN