applications.collages.collageAlgebra:
attributes r1,g1,b1,r2,g2,b2;
{
  delta = const(.8),
  
  ntColour1 = const(.8),
  ntColour2 = const(.6),
  sample-outline = { polyline((0,0),(10,0),(10,10),(0,10),(0,1.5)) },
  sample-filled1 = { filledPolygon((0,0),(10,0),(10,10),(0,10))[#ntColour1] }
                       + #sample-outline,
  sample-arrow1 = { filledPolygon((0,0),(.45,1.5),(-.45,1.5))[#ntColour1],
                                 polygon((0,0),(.45,1.5),(-.45,1.5))},
  sample-filled2 = { filledPolygon((0,0),(10,0),(10,10),(0,10))[#ntColour2] }
                       + #sample-outline,
  sample-arrow2 = { filledPolygon((0,0),(.45,1.5),(-.45,1.5))[#ntColour2],
                                 polygon((0,0),(.45,1.5),(-.45,1.5))},
  S1 = #sample-filled1 + #sample-outline + #sample-arrow1,
  S2 = #sample-filled2 + #sample-outline + #sample-arrow2,
  
  sq1 = { filledPolygon((0,0),(10,0),(10,10),(0,10))<r1,g1,b1> },
  sq2 = { filledPolygon((0,0),(10,0),(10,10),(0,10))<r2,g2,b2; g2=1> },
  seg = { polyline((0,0),(#delta,0))[1,0,0],
          polyline((10,0),(10,#delta))[1,0,0],
          polyline((10,10),(10 - #delta,10))[1,0,0],
          polyline((0,10),(0,10 - #delta))[1,0,0] },

  f1 = similarity((0,0) -> (#delta,0), (10,0) -> (10,#delta)),
  F1 = <#sq1, #seg, f1>,
  F2 = <#sq2, #seg, f1>,

  col = colourOperation(r1|.18:1, g1|.075:.7, b1|.075:.2, g2|.1:.1, b2|.2:1)
}
