#!/usr/bin/env python3

import argparse
from pyx import path, canvas

parser = argparse.ArgumentParser(description='Create calibration pattern')
parser.add_argument('--width',
                    help='number of rectangles in the horizontal axis',
                    type=int,
                    default=16)
parser.add_argument('--height',
                    help='number of rectangles in the vertical axis',
                    type=int,
                    default=9)
parser.add_argument('--rect-size',
                    help='size of the rectangles in centimeters (cm)',
                    type=float,
                    default=1.0)
parser.add_argument('--output',
                    help='output file. Must be pdf, eps or svg',
                    default='calibration_pattern.pdf')
args = parser.parse_args()

size = args.rect_size
width = args.width
height = args.height

c = canvas.canvas()

for i in range(height):
    for j in range(width):
        if (i + j) % 2:
            x = j * size
            y = i * size
            c.fill(path.rect(x, y, size, size))

extension = args.output[-3:]
if extension == 'pdf':
    c.writePDFfile(args.output)
elif extension == 'eps':
    c.writeEPSfile(args.output)
elif extension == 'svg':
    c.writeSVGfile(args.output)
else:
    print "Unsuported output type. Must be pdf, eps or svg"
