================
New Features
------------
- Added the DS9 'boxcircle' point symbol. [387]
- Added the ability to add and subtract ``PixCoord`` objects. [396]
- Added an ``origin`` keyword to ``PolygonPixelRegion`` to allow
specifying the vertices relative to an origin pixel. [397]
- Added a ``RegularPolygonPixelRegion`` class. [398]
- Added the ability to compare ``Region`` objects for equality. [421]
- Added a ``copy`` method to ``RegionMeta`` and ``RegionVisual``. [424]
- Added the ability to handle DS9 elliptical and rectangular annuli and
multi-annuli regions. [436]
- Added the ability to handle DS9 composite regions. [436]
- Added the ability to serialize sky regions in the DS9 file format using
the coordinate frame of the ``SkyCoord`` object. [436]
- Added the ability to serialize multiple regions in the DS9 file format
that have different coordinate frames. [436]
- Added the ability to parse FITS region ``rectangle`` and
``rotrectangle`` shapes. [444]
Bug Fixes
---------
- Fixed the DS9 default point symbol to use 'boxcircle'. [387]
- Point symbol markers are no longer filled for consistency with DS9.
[387]
- Fixed an issue where plotting elliptical regions were incorrectly
filled by default. [389]
- Fixed an issue where compound region colors were being set correctly.
[389]
- Fixed an issue where sky/pixel conversions did not preserve ``meta``
and ``visual`` data for some regions. [420, 424]
- Fixed an issue with elliptical and rectangular annulus regions where
the outer width/height could be smaller than the inner width/height.
[425]
- Fixed an issue converting elliptical and rectangular annulus regions
between pixel and sky regions. [425]
- Fixed the string representations of ``TextPixelRegion`` and
``TextSkyRegion`` to include quotes around the text parameter value.
[429]
- Fixed many issues with the DS9 parser and serializer in not
consistently handling or preserving the region coordinate frame
or region parameter units. [436]
- Fixed handling of FITS shapes that are preceded by an exclamation
mark. [444]
- Fixed a bug where written FITS region files could not be read back in.
[444]
API Changes
-----------
- Removed the following deprecated I/O classes and functions:
``crtf_objects_to_string``, ``ds9_objects_to_string``,
``fits_region_object_to_table``, ``read_crtf``, ``read_ds9``,
``read_fits``, ``read_fits_region``, ``write_crtf``, ``write_ds9``,
``write_fits``, ``write_fits_region`` ``CRTFParser``, ``DS9Parser``,
``FITSRegionParser``, ``ShapeList``, and ``Shape``. The ``Regions``
and ``Region`` objects now support this functionality via a unified
I/O interface. [386]
- Removed the deprecated ``BoundingBox`` ``slices`` attribute. [386]
- The default matplotlib keywords that are used when plotting now depend
on the value of ``self.visual['default_style']``. This keyword is
currently set (to a value of 'ds9') only when reading DS9 region
files. If set to 'ds9', DS9 plotting defaults are used. If not set or
set to 'mpl' or None, then the matplotlib defaults will be used, with
the exception that fill is turned off for Patch and Line2D artists.
- Renamed the ``BoundingBox`` class to ``RegionBoundingBox``. The old
name is deprecated. [427]
- A ``ValueError`` is raised if the radius, width, or height region
parameters are not strictly positive (> 0). [430]
- Added a ``precision`` keyword to the DS9 serializer and writer to
specify the number of decimal places in output numbers. [436]
- The ``errors`` keyword was removed from the DS9 parser and reader and
the ``coordsys``, ``radunit``, and ``fmt`` keywords were removed from
the DS9 serializer and writer. The new ``precision`` keyword can be
used when serializing and writing DS9 regions. [436]
- The ``PixelRegion.plot()`` method now returns a
``matplotlib.artist.Artist`` object, which can be used in plot legends.
[441]
- FITS region files are now always parsed and serialized as
``PixelRegion`` objects. They can be converted to ``SkyRegion``
objects using a WCS object. [444]