atlFrameSetSplit

Extract axes from a supplied FrameSet to create a new FrameSet

Description:

This function searches the current Frame of the supplied FrameSet for axes that have a specified Domain. If any are found, and if they correspond to a distinct subset of axes in the base Frame of the supplied FrameSet (i.e. they are independent of the other axes), a new FrameSet is created and returned in which the current Frame contains the requested axes from the current Frame of the supplied FrameSet, and the base Frame contains the corresponding axes from the base Frame of the supplied FrameSet. If possible, any other Frames in the supplied FrameSet are also split and added to the returned FrameSet.

If the search is unsuccessful, or if the required current Frame axes are not independent of the other axes, then each of the other Frames in the FrameSet is searched in the same way (excluding the base Frame). If no suitable Frame can be found, a NULL pointer is returned but no error is reported.

Invocation

AstFrameSet atlFrameSetSplit( AstFrameSet fset, const char domain, int bax, int cax, int status )

Arguments

fset
The FrameSet to be split.
domain
The Domain value for the required current Frame axes. This can be a space-separated list of Domains, in which case each Domain will be used in turn until one is found which allows the supplied FrameSet to be split succesfully (any remaining Domain values will be ignored).
bax
If not NULL, this should be the address of a pointer in which to return a pointer to an array holding the one-based indices of the base frame axes that were included in the returned FrameSet. The array should be freed using astFree when no longer needed. The length of the array will equal the number of base Frame axes in the returned FrameSet. A NULL pointer will be returned if the FrameSet could not be split.
cax
If not NULL, this should be the address of a pointer in which to return a pointer to an array holding the one-based indices of the current frame axes that were included in the returned FrameSet. The array should be freed using astFree when no longer needed. The length of the array will equal the number of current Frame axes in the returned FrameSet. A NULL pointer will be returned if the FrameSet could not be split.
status
The global status.

Returned Value

A pointer to a new FrameSet, or NULL if no axes with the required
Domain could be found, or if the required axes do not correspond
to a distinct set of base Frame axes, or if an error occurs.