## Changes Introduced in V5.1

The following describes the most significant changes which occurred in the AST library between versions V5.0 and V5.1:

1. The astUnlockastUnlock function now has an extra parameter that controls whether or not an error is reported if the ObjectObject is currently locked by another thread.

2. The PrismPrism class has been modified so that any class of RegionRegion can be used to define the extrusion axes. Previously, only a BoxBox or IntervalInterval could be used for this purpose.

3. The values of the AST__THREADSAFE macro (defined in ast.h) have been changed from “yes” and “no” to “1” and “0”.

4. Improvements have been made to the way that Prisms are simplified when astSimplifyastSimplify is called. The changes mean that more types of Prism will now simplify into a simpler class of Region.

5. The PointListPointList class has a new method, astPoints, that copies the axis values from the PointList into a supplied array.

6. The PointList class has a new (read-only) attribute, ListSizeListSize, that gives the number of points stored in the PointList.

7. The handling of warnings within different classes of ChannelChannel has been rationalised. The XmlStrict attribute and astXmlWarnings function have been removed. The same functionality is now available via the existing StrictStrict attribute (which has had its remit widened), a new attribute called ReportLevelReportLevel, and the new astWarningsastWarnings function. This new function can be used on any class of Channel. Teh FitsChanFitsChan class retains its long standing ability to store warnings as header cards within the FitsChan, but it also now stores warnings in the parent Channel structure, from where they can be retrieved using the astWarnings function.

8. A new function called astIntercept has been added to the FrameFrame class. This function finds the point of intersection beteeen two geodesic curves.

9. A bug in the type-checking of Objects passed as arguments to constructor functions has been fixed. This bug could lead to applications crashing or showing strange behaviour if an inappropriate class of Object was supplied as an argument to a constructor.

10. The astPickAxesastPickAxes function will now return a Region, if possible, when applied to a Region. If this is not possible, a Frame will be returned as before.

11. The choice of default tick-mark for time axes has been improved, to avoid previous issues which could result in no suitable gap being found, or inappropriate tick marks when using formatted dates.

12. A new function called astTestFitsastTestFits has been added to the FitsChan class. This function tests a FitsChan to see if it contains a defined value for specified FITS keyword.

13. The AST__UNDEF<X> parameters used to flag undefined FITS keyword values have been removed. Use the new astTestFits function instead.

14. The astIsUndef<X> functions used to test FITS keyword values have been removed. Use the new astTestFits function instead.