Patch title: Release 94 bulk changes
Abstract:
File: /pliant/graphic/layout/draw.pli
Key:
    Removed line
    Added line
module "/pliant/language/compiler.pli"
module "prototype.pli"
module "/pliant/math/curve.pli"
module "/pliant/math/transform.pli"
module "/pliant/graphic/draw/prototype.pli"
module "/pliant/graphic/draw/transform.pli"
module "helper/recurse.pli"


public
  type LayoutDraw
    field Link:LayoutPrototype next
    field Int parent_and_flags <- 0
    field Link:LayoutPrototype first_son
    field LayoutArea bbox
    field Float tx ty

  type LayoutDrawFill
    field Link:LayoutPrototype next
    field Int parent_and_flags <- 0
    field Array:Curve curves
    field Int mode
    field Transform2 t
    field LayoutColor color

LayoutPrototype maybe LayoutDraw
LayoutPrototype maybe LayoutDrawFill


method l bbox c -> b
  arg_rw LayoutDraw l ; arg_rw LayoutPC c ; arg LayoutArea b
  b := l bbox

method l translate tx ty
  oarg_rw LayoutDraw l ; arg Float tx ty
  l tx := tx ; l ty := ty

method l offset tx ty
  oarg_rw LayoutDraw l ; arg Float tx ty
  l tx += tx ; l ty += ty

method l first -> p
  oarg_rw LayoutDraw l ; arg_C Link:LayoutPrototype p
  p :>> l first_son

method l draw d c
  oarg_rw LayoutDraw l ; oarg_rw DrawPrototype d ; arg_rw LayoutDC c
  var Link:DrawTransform t :> new DrawTransform
  t bind d (transform l:tx l:ty 1 1 0 0)
  l draw_recurse t c


method f draw d c
  oarg_rw LayoutDrawFill f ; oarg_rw DrawPrototype d ; arg_rw LayoutDC c
  f:curves:0 bbox (var Float bx0) (var Float by0) (var Float bx1) (var Float by1)
  d fill f:curves f:mode f:t (c color f:color)