Point = {}
Point.x = nil; point.y = nil;
-- (num, num)
function Point.__call(x, y)
  local i = {}
  setmetatable(i,Point)
  i.x = x; i.y = y
  return i
end


Canvas = {}
Canvas.p1 = nil; Canvas.p2 = nil
Canvas.elements = {}
-- (Point, Point)
function Canvas.__call(p1, p2)
  local i = {}
  setmetatable(i,Canvas)
  i.p1 = p1; i.p2 = p2
  return i
end

-- Element needs to have a draw(table) function.
function Canvas:add(element)
  elements:insert(element)
end

function Canvas:draw()
  buffer = {}
end
