Every FrameSet has a
" Frame and a
" Frame (which are allowed to be the
same). Any of the Frames may be nominated to hold these positions, and the choice
is determined by the values of the FrameSet
’ s Base and Current attributes,
which hold the indices of the relevant Frames. By default, the first Frame
added to a FrameSet is its base Frame, and the last one added is its current
The base Frame describes the
" coordinate system of whatever the FrameSet is
used to calibrate (e.g. the pixel coordinates of an image) and the current Frame
" coordinate system in which it should be viewed (e.g.
displayed, etc.). Any further Frames represent a library of alternative coordinate
systems, which may be selected by making them current.
When a FrameSet is used in a context that requires a Frame, (e.g. obtaining its Title value, or number of axes), the current Frame is used. A FrameSet may therefore be used in place of its current Frame in most situations.
When a FrameSet is used in a context that requires a Mapping, the Mapping used is the
one between its base Frame and its current Frame. Thus, a FrameSet may be used to
" coordinates into
" ones, and vice versa. Like any
Mapping, a FrameSet may also be inverted (see astInvert), which has the effect of
interchanging its base and current Frames and hence of reversing the Mapping between
Regions may be added into a FrameSet (since a Region is a type of Frame), either explicitly or as components within CmpFrames. In this case the Mapping between a pair of Frames within a FrameSet will include the masking effects produced by any Regions included in the path between the Frames.
AllVariants: List of all variant mappings stored with current Frame
Base: FrameSet base Frame index
Current: FrameSet current Frame index
Nframe: Number of Frames in a FrameSet
Variant: Name of variant mapping in use by current Frame
Every FrameSet also inherits any further attributes that belong to its current Frame,
regardless of that Frame
’ s class. (For example, the Equinox attribute, defined by the
SkyFrame class, is inherited by any FrameSet which has a SkyFrame as its current
Frame.) The set of attributes belonging to a FrameSet may therefore change when a
new current Frame is selected.
astAddFrame: Add a Frame to a FrameSet to define a new coordinate system
astAddVariant: Add a variant Mapping to the current Frame
astGetFrame: Obtain a pointer to a specified Frame in a FrameSet
astGetMapping: Obtain a Mapping between two Frames in a FrameSet
astMirrorVariants: Make the current Frame mirror variant Mappings in another Frame
astRemapFrame: Modify a Frame
’ s relationship to the other Frames in a FrameSet
astRemoveFrame: Remove a Frame from a FrameSet