match areVectorsValid p1xf p1yf p2xf p2yf -xDirData.[p1y, p1x, 0] -yDirData.[p1y, p1x, 0] -xDirData.[p2y, p2x, 0] -yDirData.[p2y, p2x, 0] with
| Some (m1, m2) ->
match ellipse p1xf p1yf m1 p2xf p2yf m2 p3xf p3yf with
match areVectorsValid p1xf p1yf p2xf p2yf -xDirData.[p1y, p1x, 0] -yDirData.[p1y, p1x, 0] -xDirData.[p2y, p2x, 0] -yDirData.[p2y, p2x, 0] with
| Some (m1, m2) ->
match ellipse p1xf p1yf m1 p2xf p2yf m2 p3xf p3yf with