DisplayDatas


Detailed Description

A module providing classes to draw AIPS++ data in specific ways.

See below for an overview of the classes in this module.

Intended use:

Part of API

Review Status

Reviewed By:
None yet
Date Reviewed:
yyyy/mm/dd

Prerequisite

Etymology

The module provides various classes that are responsible for "displaying" "data"

Synopsis

Motivation

The basic drawing devices in the Display Library are the PixelCanvas and the WorldCanvas . These devices know nothing about what data look like, what kind of object will draw on the devices, and in what circumstances these devices will be used. The only thing they define is the interface of how to draw on them and the way that they communicate with other objects, for example the event handlers.

The DisplayDatas

Thus classes are needed to transform data into objects that are understood by the canvases. These are the DisplayDatas, which generate drawing commands based on data and some algorithm which translates that data into a visual representation: eg. a contouring algorithm. Exactly how the data is represented is entirely defined by the DisplayDatas, and as long as it can be done using the primitives of the WorldCanvas, there are no restrictions. To display data in a new way, all that must be written is a new DisplayData which generates appropriate drawing instructions, and can be asked to carry out those instructions. The DisplayDatas should be thought of as the "workhorses" of the AIPS++ Display Library.

The WorldCanvasHolder

The administration of a number of DisplayDatas on one WorldCanvas is handled by the WorldCanvasHolder class. The WorldCanvasHolder provides methods to register and unregister DisplayDatas. The WorldCanvasHolder installs handlers on the WorldCanvas for each event generated by the WorldCanvas. Since its main task is to allow more than one DisplayData object to draw on a WorldCanvas at any one time, the WorldCanvasHolder must pass WorldCanvas events on to the registered DisplayDatas, either directly or indirectly. For example, motion events (which occur when the pointer is moved across the WorldCanvas) will be immediately passed on to all DisplayDatas for processing, while refresh events (which occur when the WorldCanvas needs to redraw itself, eg. following a resize) are managed by the WorldCanvasHolder itself, which may ask only a subset of the registered DisplayDatas to redraw themselves, and also ensures that raster-type DisplayDatas draw before vector-type DisplayDatas.

Some DisplayDatas will consist of a sequence of "drawings," for example, a set of channel maps in a data cube. The DisplayDatas are built with such sequences in mind, and the appropriate "frame" to draw is negotiated between the WorldCanvasHolder and the one or more DisplayDatas actually registered with the WorldCanvasHolder. A sequence of images is not restricted to separate planes through a data volume: it could comprise blinking between two or more images, or rendering views of data along different lines-of-sight.

To control what is displayed on a WorldCanvas, the programmer can put restrictions on a WorldCanvasHolder and on DisplayDatas. Only the DisplayDatas whose internal restrictions actually match those of the WorldCanvasHolder will be allowed to draw on the WorldCanvas. Indeed, an important part of the support for DisplayDatas comprising sequences of images is implemented by placing restrictions on the WorldCanvas that are appropriate to the desired image plane.


Namespaces

namespace  casa
 FTMachine::rotateUVW(Matrix<Double>& uvw, Vector<Double>& dphase, const VisBuffer& vb).

Modules

 DisplayDatas_internal_classes
 Internal DisplayDatas classes and functions.

Classes

class  casa::ActiveCaching2dDD
 Class providing active behaviour for 2d CachingDisplayDatas. More...
class  casa::AxesDisplayData
 Interface and simple implementation of axis labelling. More...
class  casa::AxesDisplayMethod
 Class to draw a single set of axis labels for AxesDisplayData. More...
class  casa::CachingDisplayData
 Base class for auto-caching DisplayData objects. More...
class  casa::CachingDisplayMethod
 Assistance class for auto-caching of DisplayData objects. More...
class  casa::DDDEllipse
 Implementation of an ellipse/rectangle object for DrawingDisplayData class. More...
class  casa::DDDHandle
 A class to draw and detect handles on a DDDObject. More...
class  casa::DDDObject
 Base class describing interface for objects supported by DrawingDisplayData. More...
class  casa::DDDPolygon
 Implementation of aan ellipse object for DrawingDisplayData class. More...
class  casa::DDDRectangle
 Implementation of a rectangular object for DrawingDisplayData class. More...
class  casa::DisplayData
 Base class for display objects. More...
class  casa::DisplayMethod
 Base class for drawing a particular element (view) of a DisplayData. More...
class  casa::DrawingDisplayData
 DisplayData which provides interactive drawing capabilities. More...
class  casa::DrawingDisplayMethod
 DisplayMethod which provides actual drawing for DrawingDisplayData class. More...
class  casa::Galaxy
 Simple class to represent a Galaxy as a collection of Stars. More...
class  casa::Star
 Simple class which represents a star as a point mass. More...
class  casa::Histogram2dDD
 A DisplayData to draw histograms. More...
class  casa::Histogram2dDM
 A DisplayMethod to draw histograms. More...
class  casa::LatticeAsContour< T >
 Class to manage the drawing of contour maps of slices from AIPS++ Lattices. More...
class  casa::LatticeAsMarker< T >
 Class to manage the drawing of vector maps of slices from AIPS++ Lattices. More...
class  casa::LatticeAsRaster< T >
 Class to manage the drawing of raster images of slices from AIPS++ Lattices. More...
class  casa::LatticeAsVector< T >
 Class to manage the drawing of vector maps of slices from AIPS++ Lattices. More...
class  casa::LatticePADisplayData< T >
 Partial implementation of PrincipalAxesDD for Lattice-based data. More...
class  casa::LatticePADisplayMethod< T >
 Partial implementation of PrincipalAxesDM for Lattice-based data. More...
class  casa::MSAsRaster
 Class for displaying data within an MS as a raster (gridded) image. More...
class  casa::MSAsRasterDM
 (Minimal) DisplayMethod for MSAsRaster. More...
class  casa::NBody
 Simple class which provides brute force n-body simulation and display. More...
class  casa::PassiveCachingDD
 Class providing passive behaviour for CachingDisplayDatas. More...
class  casa::PassiveTableDD
 Class adding Table-specific support functions to PassiveCachingDD. More...
class  casa::PrincipalAxesDD
 Interface for DisplayDatas which have data arranged in axes. More...
class  casa::PrincipalAxesDM
 Interface for DisplayMethods which have data arranged in "axes.". More...
class  casa::Profile2dDD
 A DisplayData to draw Profiles. More...
class  casa::Profile2dDM
 A DisplayMethod to draw Profiles. More...
class  casa::ScrollingRasterDM
 Base class for scrolling DisplayData objects. More...
class  casa::SkyCatOverlayDD
 Simple implementation of a cached DisplayData for sky catalogue overlays. More...
class  casa::SkyCatOverlayDM
 Class to draw catalogue overlays for SkyCatOverlayDD. More...
class  casa::WedgeDD
 A DisplayData to draw color wedges. More...
class  casa::WedgeDM
 The DisplayMethod to draw Wedges. More...
class  casa::WorldAxesDD
 A DisplayData to setup a World coordinate plot. More...
class  casa::WorldAxesDM
 Class to draw a single set of axis labels for AxesDisplayData. More...


Generated on Thu Aug 27 21:21:37 2009 for NRAOCASA by  doxygen 1.5.1