- ←Prev
- AST
A Library for Handling
World Coordinate Systems
in Astronomy - Next→
- TOC ↑
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.
Applicability
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.
If the supplied
Mapping is a TranMap, then MAP1 and MAP2 will be returned holding pointers to the
forward and inverse Mappings represented by the TranMap (zero will be returned for
SERIES). Note, changing the Invert attribute of either of the component Mappings using
the returned pointers will have no effect on the supplied TranMap. This is because the
TranMap remembers and uses the original settings of the Invert attributes (that is, the values
of the Invert attributes when the TranMap 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.
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.
Copyright (C) 2021 East Asian Observatory
- ←Prev
- AST
A Library for Handling
World Coordinate
Systems
in Astronomy - Next→
- TOC ↑