next up previous
Next: AST_DELETE - Delete an Object
Up: AST Routine Descriptions
Previous: AST_CURVE - Draw a geodesic curve

   
AST_DECOMPOSE - Decompose a Mapping into two component Mappings

Description:
This routine returns pointers to two Mappings which, when applied either in series or parallel, are equivalent to the supplied Mapping. Since the Frame class inherits from the Mapping class, Frames can be considered as special types of Mappings and so this method can be used to decompose either CmpMaps or CmpFrames.

Invocation:
CALL AST_DECOMPOSE( THIS, MAP1, MAP2, SERIES, INVERT1, INVERT2, STATUS )

Arguments:
THIS = INTEGER (Given)
Pointer to the Mapping.
MAP1 = INTEGER (Returned)
A pointer to first component Mapping.
MAP2 = INTEGER (Returned)
A pointer to second component Mapping.
SERIES = LOGICAL (Returned)
Indicates if the component Mappings are applied in series or parallel. A .TRUE. value means that the supplied Mapping is equivalent to applying MAP1 followed by MAP2 in series. A zero value means that the supplied Mapping is equivalent to applying MAP1 to the lower numbered axes and MAP2 to the higher numbered axes, in parallel.
INVERT1 = INTEGER (Returned)
The value of the Invert attribute to be used with MAP1.
INVERT2 = INTEGER (Returned)
The value of the Invert attribute to be used with MAP2.

Class Applicability:
CmpMap
If the supplied Mapping is a CmpMap, then MAP1 and MAP2 will be returned holding pointers to the component Mappings used to create the CmpMap, either in series or parallel. Note, changing the Invert attribute of either of the component Mappings using the returned pointers will have no effect on the supplied CmpMap. This is because the CmpMap remembers and uses the original settings of the Invert attributes (that is, the values of the Invert attributes when the CmpMap was first created). These are the Invert values which are returned in INVERT1 and INVERT2.
Mapping
For any class of Mapping other than a CmpMap, MAP1 will be returned holding a clone of the supplied Mapping pointer, and MAP2 will be returned holding AST__NULL. INVERT1 will be returned holding the current value of the Invert attribute for the supplied Mapping, and INVERT2 will be returned holding zero.
CmpFrame
If the supplied Mapping is a CmpFrame, then MAP1 and MAP2 will be returned holding pointers to the component Frames used to create the CmpFrame. The component Frames are considered to be in applied in parallel.
Frame
For any class of Frame other than a CmpFrame, MAP1 will be returned holding a clone of the supplied Frame pointer, and MAP2 will be returned holding AST__NULL.

Notes:
  • The returned Invert values should be used in preference to the current values of the Invert attribute in map1 and map2. This is because the attributes may have changed value since the Mappings were combined.
  • Any changes made to the component Mappings using the returned pointers will be reflected in the supplied Mapping.



next up previous
Next: AST_DELETE - Delete an Object
Up: AST Routine Descriptions
Previous: AST_CURVE - Draw a geodesic curve

AST A Library for Handling World Coordinate Systems in Astronomy
Starlink User Note 210
R.F. Warren-Smith & D.S. Berry
30th April 2003
E-mail:ussc@star.rl.ac.uk

Copyright (C) 2003 Central Laboratory of the Research Councils