impl polygon, quad, box