GalSim-developers/GalSim — pull request #28 by TallJimbo (2012-03-17 20:23:09+00:00)
Title: #12 - Image overhaul ready for merge

The Image class overhaul for NumPy has been completed on branch #12.

I still need to add unit tests, and that may uncover some issues in corner cases, but I've verified that the basic functionality works. I'd rather merge this now and add the tests later so it doesn't become a blocker for other people.

I'd ideally like to merge this early next week.

Some specific changes that I didn't already bring up on the list that might be worth looking at:

- The constness semantics might be a little surprising, but I think they're the right ones; see the Doxygen comments for the class.

- I've renamed the [XY](Min|Max) accessors to get[XY](Min|Max) to be consistent with the Bounds class (also matches LSST naming standards, to the extent we care about that).

- I've renamed "iter" to "Iter", and there is no "citer" due to the constness changes.

- Images have a single floating point "scale" that is used for both dx and dy in various places in the code.

- I removed "operator bool()" from the Bounds class - that produces an implicit converter, which can produce surprising behavior. We can just use "Bounds::isDefined()" instead - if we do really want "operator bool()", there's a safe way to implement it, but it's more work.