applications.collages.collageAlgebra:
attributes r,g,b,f,r-dest,g-dest,b-dest;
{  
  ntColour = const(.8),
  ntColour2 = const(.6),
  S = { filledPolygon((0,0) left (0,10) right (10,0),(10,10) left (0,-10) right (-10,0))[#ntColour2],
           polygon((0,0) left (0,10) right (10,0),(10,10) left (0,-10) right (-10,0))},
  A = { filledPolygon((0,0) left (0,10) right (10,0),(10,10) left (0,-10) right (-10,0))[#ntColour],
           polygon((0,0) left (0,10) right (10,0),(10,10) left (0,-10) right (-10,0))},
  
  part = { filledPolygon((0,0) left (0,10) right (10,0),(10,10) left (0,-10) right (-10,0))<r,g,b; r-dest=1,g-dest=1,b-dest=1> },
  
  init = rotate(-45),
  init = <init>,

  f = rotate(-45) . scale(1,.95) . translate(0,.0) . rotate(45),
  F = <#part, f>,
  
  g1 = scale(1),
  g2 = scale(1/2),
  g3 = scale(1/2) . translate(5,5),
  G = <g1,g2,g3>,
  
  set = colourOperation(r|val(f):val(r-dest),g|val(f):val(g-dest),b|val(f):val(b-dest)),
  inc = colourOperation(f|0.045:1),
  r0 = colourOperation(r-dest|.5:0),
  r1 = colourOperation(r-dest|.5:1),
  g0 = colourOperation(g-dest|.5:0),
  g1 = colourOperation(g-dest|.5:1),
  b0 = colourOperation(b-dest|.5:0),
  b1 = colourOperation(b-dest|.5:1)
  
}
