## Forward and Inverse Transformations

We stated earlier that a MappingMapping may be used to transform coordinates either from input to output, or vice versa. These are termed its forward and inverse transformations.

This statement was not quite accurate, however, because in general Mappings are only potentially capable of working in both directions. In practice, coordinate transformation may only be feasible in one direction or the other because some functions are not easily inverted (they may be multi-valued, for instance). Allowance must be made for this, so each Mapping has two read-only boolean (integer) attributes, TranForwardTranForward and TranInverseTranInverse, which indicate whether each transformation is available.

A transformation is available if the corresponding attribute is non-zero, otherwise it is not. If you enquire about the value of these attributes, a value of 0 or 1 is returned. Attempting to use a Mapping to apply a transformation which is not available will result in an error.