## Changes Introduced in V1.7

The following describes the most significant changes which have occurred in the AST library between versions V1.6 and V1.7:

1. The FrameFrame class has a new method called astAngleastAngle which returns the angle subtended by two points at a third point within a 2 or 3 dimensional Frame.

2. The Frame class has a new method called astOffset2astOffset2 which calculates a position which is offset away from a given starting point by a specified distance along a geodesic curve which passes through the starting point at a given position angle. It can only be used with 2-dimensional Frames.

3. The Frame class has a new method called astAxDistanceastAxDistance which returns the increment between two supplied axis values. For axes belonging to SkyFrames, the returned value is normalized into the range 312#312.

4. The Frame class has a new method called astAxOffsetastAxOffset which returns an axis value a given increment away from a specified axis value. For axes belonging to SkyFrames, the returned value is normalized into the range 312#312 (for latitude axes) or zero to 313#313 (for longitude axes).

5. The PlotPlot class has a new method called astGenCurveastGenCurve which allows generalised user-defined curves to be drawn. The curve is defined by a user-supplied MappingMapping which maps distance along the curve into the corresponding position in the current Frame of the Plot. The new method then maps these current Frame position into graphics coordinates, taking care of any non-linearities or discontinuities in the mapping.

6. The Plot class has a new method called astGrfSetastGrfSet which allows the underlying primitive graphics functions to be selected at run-time. Previously, the functions used by the Plot class to produce graphics could only be selected at link-time, using the options of the ast_linkast_link command. The new Plot method allows an application to over-ride the functions established at link-time, by specifying alternative primitive graphics routines. In addition, the two new Plot methods astGrfPushastGrfPush and astGrfPopastGrfPop allow the current graphics routines to be saved and restore on a first-in-last-out stack, allowing temporary changes to be made to the set of registered graphics routines.

7. The DrawAxes attribute of the Plot class can now be specified independantly for each axis, by appending the axis index to the end of the attribute name.

8. A bug has been fixed in the Plot class which could result in axis labels being drawn on inappropriate edges of the plotting box when using “interior” labelling.

9. A bug has been fixed in the IntraMapIntraMap class which could cause IntraMaps to be corrupted after transforming any points.

10. Bugs have been fixed in the FitsChanFitsChan class which could cause inappropriate ordering of headers within a FitsChan when writing or reading objects using NATIVE encodings.

11. A bug has been fixed in the FitsChan class which could cause the celestial longitude of a pixel to be estimated incorrectly by 180 degrees if the reference point is at either the north or the south pole.