LatticeAsMarker.h

Classes

LatticeAsMarker -- Class to manage the drawing of vector maps of slices from AIPS++ Lattices (full description)

template <class T> class LatticeAsMarker : public LatticePADisplayData<T>

Interface

Public Members
LatticeAsMarker(Array<T>* array, const uInt xAxis, const uInt yAxis, const uInt mAxis, const IPosition fixedPos)
LatticeAsMarker(Array<T>* array, const uInt xAxis, const uInt yAxis)
LatticeAsMarker(ImageInterface<T>* image, const uInt xAxis, const uInt yAxis, const uInt mAxis, const T fixedPos)
LatticeAsMarker(ImageInterface<T>* image, const uInt xAxis, const uInt yAxis)
virtual ~LatticeAsMarker()
virtual void setupElements()
virtual void setDefaultOptions()
virtual Bool setOptions(Record& rec, Record& recOut)
virtual Record getOptions()
virtual Display::DisplayDataType classType()
virtual String className()

Description

Review Status

Date Reviewed:
yyyy/mm/dd

Prerequisite

Etymology

From Lattice and Marker (shape)

Synopsis

The purpose of this class is to draw pixels as markers such as squares where the size of the marker reflects the pixel value. Presently only squares are available. Positive values get solid squares, negative values open squares.

At construction, any axes in the data can be mapped to the X and Y axes of the display device (see the PrincipalAxesDD class). For data with more than two dimensions, a third axis in the dataset can be selected for generating a sequence of maps along: this is known as the "movie" axis. Animation (see the Animator class) will cause different slices of the data to be selected from along this axis. After construction, the axis settings of a LatticeAsMarker object can be modified at a later stage.

Example

A LatticeAsMarker object could be constructed and used as follows:
    PagedImage<Complex> *pimage = new PagedImage<Complex>(String("test.im"));
    DisplayData *dd;
    uInt ndim = pimage->ndim();
    if (ndim < 2) {
      throw(AipsError(String("Image has less than two dimensions")));
    } else if (ndim == 2) {
      dd = (DisplayData *)(new LatticeAsMarker<Complex>(pimage, 0, 1));
    } else {
      IPosition fixedPos(ndim);
      fixedPos = 0;
      dd = (DisplayData *)(new LatticeAsMarker<Complex>(pimage, 0, 1, 2,fixedPos));
    }
    // wcHolder is an existing WorldCanvasHolder *...
    wcHolder->addDisplayData(ddata);
    wcHolder->refresh();
    

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

LatticeAsMarker(Array<T>* array, const uInt xAxis, const uInt yAxis, const uInt mAxis, const IPosition fixedPos)
LatticeAsMarker(Array<T>* array, const uInt xAxis, const uInt yAxis)

Array-based constructors: >2d and 2d. xAxis and yAxis specify which axis in the array (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 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 indicate the fixed axis values for axes in the data that are not specified as xAxis, yAxis or mAxis.

LatticeAsMarker(ImageInterface<T>* image, const uInt xAxis, const uInt yAxis, const uInt mAxis, const T fixedPos)
LatticeAsMarker(ImageInterface<T>* image, const uInt xAxis, const uInt yAxis)

Image-based constructors: >2d and 2d. xAxis and yAxis specify which axis in the image (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 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 image, and indicate the fixed axis values for axes in the data that are not specified as xAxis, yAxis or mAxis.

virtual ~LatticeAsMarker()

Destructor

virtual void setupElements()

Create the various elements in the sequence of displayable maps. This is called upon construction as well as whenever the display and/or movie axes are changed via a call to PrincipalAxesDD::setAxes. virtual void setupElements(IPosition fixedPos = IPosition(2));

virtual void setDefaultOptions()

install the default options for display

virtual Bool setOptions(Record& rec, Record& recOut)

Apply the options stored in the provided Record to the LatticeAsMarker object. If the return value is True, then some options have changed, and a refresh is needed to update the display.

virtual Record getOptions()

Retrieve the currently set options, and their types, default values, and any help text associated with each parameter. This information can be used to generate form-type graphical user interfaces or command-line interfaces to set the options with prompts.

virtual Display::DisplayDataType classType()

Return the DisplayData type; used by the WorldCanvasHolder to determine the order of drawing.

virtual String className()

class name