Currently, the geometry machinery works with 'pixel units', following CrystFEL's format. This is hard to follow when pixels are not square, as for DSSC. This changes it to use metres internally.
All input and output still happens in the same units by default; this is only changing the internals. And it only changes the parts handling exact geometry: the 'snapped' geometry still works in pixels, because it's indexing into an array.
This is up for discussion. It's somewhat more code to work with, but I think it's marginally easier to think about it in metres.
Currently, the geometry machinery works with 'pixel units', following CrystFEL's format. This is hard to follow when pixels are not square, as for DSSC. This changes it to use metres internally.
All input and output still happens in the same units by default; this is only changing the internals. And it only changes the parts handling exact geometry: the 'snapped' geometry still works in pixels, because it's indexing into an array.
This is up for discussion. It's somewhat more code to work with, but I think it's marginally easier to think about it in metres.
Fixes #160.