At construction, any axes in the data can be mapped to the X and Y
axes of the display device (see the
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.
Destructor
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));
install the default options for display
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.
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.
Return the DisplayData type; used by the WorldCanvasHolder to
determine the order of drawing.
class name
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
We need a comprehensive set of marker shapes defined by
an enum and implemented on the pixel canvas with native
DL functions.
Member Description
LatticeAsMarker(Array<T>* array, const uInt xAxis, const uInt yAxis, const uInt mAxis, const IPosition fixedPos)
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(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()