CHANGES
=======

2.1.0 (2017-07-12)
------------------
- Addition of new ``eccentricity`` and ``rotation_angle`` properties (#28).

2.0.0.post1 (2016-05-20)
------------------------
- This is the final 2.0.0 release. The post-release version segment is used
  because we accidentally uploaded a 2.0.0 to PyPI before the beta releases
  below.

2.0b2 (2016-05-16)
------------------
- Bug fix: restore ``Affine __rmul__`` even though it permits dubious 
  vector * matrix expressions (#27).

2.0b1 (2016-05-16)
------------------
- Breaking change: precision used in properties like ``is_conformal`` is no
  longer a global module attribute, but an Affine class or instance attribute
  (#19, #20).
- Breaking change: ``is_degenerate`` property is now exact and not subject to
  a level of precision (#23).
- Breaking change: we have reversed our sense of rotation, a positive angle
  now rotates a point counter-clockwise about the pivot point (#25).
- Bug fix: a bug in matrix-vector multiplication had been reversing the
  direction of rotation and is now fixed (#25).

1.3.0 (2016-04-08)
------------------
- is_degenerate predicate is precise, not approximate (#22).

1.2.0 (2015-06-01)
------------------
- Enable pickling of Affine objects (#14).
- Sort out the mixed up shearing parameters (#12).

1.1.0 (2014-11-13)
------------------
- Add loadsw/dumpsw world file utilities (#6).
- Travis-CI and Coveralls config and web hooks added (#10).

1.0.1 (2014-10-20)
------------------
- set_epsilon() now actually sets module EPSILON (#4).
- add AUTHORS.txt.

1.0 (2014-05-27)
----------------
- Code ported from Casey Duncan's Planar package.
- from_gdal() class method added.
