LatticePADMContour.h
Classes
- LatticePADMContour -- Class to draw a single contour map of a slice from an AIPS++ Lattice. (full description)
Interface
- Public Members
- LatticePADMContour(const uInt xAxis, const uInt yAxis, const uInt mAxis, const IPosition fixedPos, LatticeAsContour<T> *arDat)
- LatticePADMContour(const uInt xAxis, const uInt yAxis, LatticeAsContour<T> *arDat)
- virtual ~LatticePADMContour()
- virtual uInt dataDrawSelf(WorldCanvas *wCanvas, const Vector<Double> &blc, const Vector<Double> &trc, const IPosition &start, const IPosition &shape, const IPosition &stride, const Bool usePixelEdges = False)
Review Status
- Date Reviewed:
- yyyy/mm/dd
Prerequisite
Etymology
The purpose of this class is to draw "contour" maps of data that
is "lattice"-based. The "PADM" refers to PrincipalAxesDisplayMethod,
meaning that one or more instances of this class are used to actually
draw slices of a Lattice along its main axes.
Synopsis
This is a helper class for the LatticeAsContour class. One or more
instances of this class are created by a single LatticeAsContour
object, each being responsible for drawing a different slice of the
data.
Example
This class should only be used by the LatticeAsContour class to
setup a number of views of an AIPS++ Image or Array. As such, this
example simply outlines how this class is used by LatticeAsContour,
in, for example, a support function for a constructor:
template <class T>
void LatticeAsContour<T>::setupElements(IPosition fixedPos) {
if (nPixelAxes > 2) {
nImages = dataLattice()->shape()(zAxisNum);
DDelement.resize(nImages);
for (uInt index = 0; index < nImages; index++) {
fixedPos(zAxisNum) = index;
DDelement[index] = (LatticePADisplayMethod<T> *)new
LatticePADMContour<T>(dataLattice(), xAxisNum, yAxisNum,
zAxisNum, fixedPos, this);
}
} else {
nImages = 1;
DDelement.resize(nImages);
DDelement[0] = (LatticePADisplayMethod<T> *)new
LatticePADMContour<T>(dataLattice(), xAxisNum, yAxisNum, this);
}
}
Motivation
Displaying 2-dimensional slices of a lattice-based data volume is
a standard display requirement for astronomical data visualization
and presentation.
Template Type Argument Requirements (T)
Thrown Exceptions
To Do
Member Description
Constructors: >2d and 2d. xAxis and yAxis specify which axis in
the Lattice (0-based) should be mapped to X and Y on the display
device: ie. 2-d slices of the data to be displayed have these as
axes. mAxis specifies the "movie" axis, which is the axis along
which different slices are taken. fixedPos is an IPosition
having the same length as the number of dimensions in the array,
and indicates the fixed axis values for axes in the data that are
not specified as xAxis or yAxis: indeed, fixedPos(mAxis)
indicates which pixel value along the movie axis that this
particular object looks after.
Destructor
virtual uInt dataDrawSelf(WorldCanvas *wCanvas, const Vector<Double> &blc, const Vector<Double> &trc, const IPosition &start, const IPosition &shape, const IPosition &stride, const Bool usePixelEdges = False)
Actually draw on the display device. The WorldCanvasHolder will
tell the LatticeAsRaster that it should now draw, which will in
turn determine which of its one or more LatticePADMRaster objects
should draw by matching the movie value on the WorldCanvas. The
contour is drawn from world coordinate blc to trc.