casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Private Attributes
casa::AxesMapping Class Reference

Info about mapping array axes to another order. More...

#include <AxesMapping.h>

List of all members.

Public Member Functions

 AxesMapping ()
 The default constructor creates empty maps.
 AxesMapping (const IPosition &oldToNew)
 Construct it with the mapping from old to new axes order.
 AxesMapping (const AxesMapping &other)
 Copy constructor (copy semantics).
 ~AxesMapping ()
AxesMappingoperator= (const AxesMapping &other)
 Assignment (copy semantics).
Bool isRemoved () const
 Are axes removed?
Bool isReordered () const
 Is the axes order reordered?
const IPositiongetToNew () const
 Get the mapping of old->new.
const IPositiongetToOld () const
 Get the mapping of new->old.
IPosition posToNew (const IPosition &pos) const
 Map an old position to the new one.
IPosition posToOld (const IPosition &pos) const
 Map a new position or shape to the old one.
IPosition shapeToNew (const IPosition &shape) const
 Map an old shape to the new one.
IPosition shapeToOld (const IPosition &shape) const
 Map a new position or shape to the old one.
Slicer slicerToNew (const Slicer &slicer) const
 Map an old shape to the new one.
Slicer slicerToOld (const Slicer &slicer) const
 Map a new position or shape to the old one.

Private Attributes

IPosition itsToNew
IPosition itsToOld
Bool itsRemoved
Bool itsReordered

Detailed Description

Info about mapping array axes to another order.

Intended use:

Internal

Review Status

Date Reviewed:
yyyy/mm/dd
Test programs:
tAxesSpecifier

Prerequisite

Synopsis

AxesMapping holds the information about mapping axes to another order. It can be constructed by AxesSpecifier by applying a shape to the axes specification.
AxesMapping is thereafter used to map positions, shapes, and slices to the new axes or backwards.
Caution: Shapes and positions are both represented by class IPosition; However, they have to be treated differently in this class, because removed axes for a position have value 0, while for a shape they have value 1; Hence there are different functions for them and the user has to take care that the correct function is called;

Example

Motivation

The class encapsulates the mapping functionality. It is meant as a helper class for SubLattice .

Definition at line 87 of file AxesMapping.h.


Constructor & Destructor Documentation

The default constructor creates empty maps.

casa::AxesMapping::AxesMapping ( const IPosition oldToNew) [explicit]

Construct it with the mapping from old to new axes order.

A value of -1 means that the old axes is ignored in the new one. Another value gives the new axis number.
It determines if axes are removed and/or reordered.

Copy constructor (copy semantics).


Member Function Documentation

const IPosition& casa::AxesMapping::getToNew ( ) const [inline]

Get the mapping of old->new.

The length of the resulting IPosition is the dimensionality of the original lattice. A value of -1 indicates that the corresponding axis in the original lattice is removed. Another value is the axis number in the new lattice,

Definition at line 121 of file AxesMapping.h.

References itsToNew.

const IPosition& casa::AxesMapping::getToOld ( ) const [inline]

Get the mapping of new->old.

The length of the resulting IPosition is the dimensionality of the new lattice. Its values give the axes in the original lattice.

Definition at line 127 of file AxesMapping.h.

References itsToOld.

Bool casa::AxesMapping::isRemoved ( ) const [inline]

Are axes removed?

Definition at line 109 of file AxesMapping.h.

References itsRemoved.

Is the axes order reordered?

Definition at line 113 of file AxesMapping.h.

References itsReordered.

AxesMapping& casa::AxesMapping::operator= ( const AxesMapping other)

Assignment (copy semantics).

This and that do not have to have the same length.

Map an old position to the new one.

In debug-mode it checks if the removed axes have position 0 in the input position.

Map a new position or shape to the old one.

Map an old shape to the new one.

In debug-mode it checks if the removed axes have length 1 in the input shape.

Map a new position or shape to the old one.

Slicer casa::AxesMapping::slicerToNew ( const Slicer slicer) const

Map an old shape to the new one.

In debug-mode it checks if the removed axes have length 1 in the input slicer.

Slicer casa::AxesMapping::slicerToOld ( const Slicer slicer) const

Map a new position or shape to the old one.


Member Data Documentation

Definition at line 157 of file AxesMapping.h.

Referenced by isRemoved().

Definition at line 158 of file AxesMapping.h.

Referenced by isReordered().

Definition at line 155 of file AxesMapping.h.

Referenced by getToNew().

Definition at line 156 of file AxesMapping.h.

Referenced by getToOld().


The documentation for this class was generated from the following file: