### Frame

Coordinate system description

#### Description:

This class is used to represent coordinate systems. It does this in rather the same way that a frame around a graph describes the coordinate space in which data are plotted. Consequently, a Frame has a Title (string) attribute, which describes the coordinate space, and contains axes which in turn hold information such as Label and Units strings which are used for labelling (e.g.) graphical output. In general, however, the number of axes is not restricted to two.

Functions are available for converting Frame coordinate values into a form suitable for display, and also for calculating distances and offsets between positions within the Frame.

Frames may also contain knowledge of how to transform to and from related coordinate systems.

#### Notes:

• When used as a Mapping, a Frame implements a unit (null) transformation in both the forward and inverse directions (equivalent to a UnitMap). The Nin and Nout attribute values are both equal to the number of Frame axes.

#### Inheritance

The Frame class inherits from the Mapping class.

#### Attributes

In addition to those attributes common to all Mappings, every Frame also has the following attributes (if the Frame has only one axis, the axis specifier can be omited from the following attribute names):

#### Functions

In addition to those functions applicable to all Mappings, the following functions may also be applied to all Frames:
• astAngle: Calculate the angle subtended by two points at a third point

• astAxAngle: Find the angle from an axis, to a line through two points

• astAxDistance: Calculate the distance between two axis values

• astAxNorm: Normalises an array of axis values

• astAxOffset: Calculate an offset along an axis

• astConvert: Determine how to convert between two coordinate systems

• astDistance: Calculate the distance between two points in a Frame

• astFindFrame: Find a coordinate system with specified characteristics

• astFormat: Format a coordinate value for a Frame axis

• astGetActiveUnit: Determines how the Unit attribute will be used

• astIntersect: Find the intersection between two geodesic curves

• astMatchAxes: Find any corresponding axes in two Frames

• astNorm: Normalise a set of Frame coordinates

• astOffset: Calculate an offset along a geodesic curve

• astOffset2: Calculate an offset along a geodesic curve in a 2D Frame

• astPermAxes: Permute the order of a Frame’ s axes

• astPickAxes: Create a new Frame by picking axes from an existing one

• astResolve: Resolve a vector into two orthogonal components

• astSetActiveUnit: Specify how the Unit attribute should be used

• astUnformat: Read a formatted coordinate value for a Frame axis