casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Attributes | List of all members
casacore::AxesMapping Class Reference

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

#include <AxesMapping.h>

Public Member Functions

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

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

casacore::AxesMapping::AxesMapping ( )

The default constructor creates empty maps.

casacore::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.

casacore::AxesMapping::AxesMapping ( const AxesMapping other)

Copy constructor (copy semantics).

casacore::AxesMapping::~AxesMapping ( )

Member Function Documentation

const IPosition& casacore::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& casacore::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 casacore::AxesMapping::isRemoved ( ) const
inline

Are axes removed?

Definition at line 109 of file AxesMapping.h.

References itsRemoved.

Referenced by casacore::SubLattice< casacore::Float >::positionInParent().

Bool casacore::AxesMapping::isReordered ( ) const
inline

Is the axes order reordered?

Definition at line 113 of file AxesMapping.h.

References itsReordered.

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

Assignment (copy semantics).

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

IPosition casacore::AxesMapping::posToNew ( const IPosition pos) const

Map an old position to the new one.

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

IPosition casacore::AxesMapping::posToOld ( const IPosition pos) const

Map a new position or shape to the old one.

Referenced by casacore::SubLattice< casacore::Float >::positionInParent().

IPosition casacore::AxesMapping::shapeToNew ( const IPosition shape) const

Map an old shape to the new one.

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

IPosition casacore::AxesMapping::shapeToOld ( const IPosition shape) const

Map a new position or shape to the old one.

Slicer casacore::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 casacore::AxesMapping::slicerToOld ( const Slicer slicer) const

Map a new position or shape to the old one.

Member Data Documentation

Bool casacore::AxesMapping::itsRemoved
private

Definition at line 157 of file AxesMapping.h.

Referenced by isRemoved().

Bool casacore::AxesMapping::itsReordered
private

Definition at line 158 of file AxesMapping.h.

Referenced by isReordered().

IPosition casacore::AxesMapping::itsToNew
private

Definition at line 155 of file AxesMapping.h.

Referenced by getToNew().

IPosition casacore::AxesMapping::itsToOld
private

Definition at line 156 of file AxesMapping.h.

Referenced by getToOld().


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