casacore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Friends | List of all members
casacore::MRBase Class Referenceabstract

Base for Reference frame for physical measures. More...

#include <MRBase.h>

Inheritance diagram for casacore::MRBase:
casacore::MeasRef< Ms > casacore::MeasRef< casacore::MDirection > casacore::MeasRef< casacore::MDoppler > casacore::MeasRef< casacore::MEpoch > casacore::MeasRef< casacore::MFrequency > casacore::MeasRef< casacore::MPosition > casacore::MeasRef< casacore::MRadialVelocity > casacore::MeasRef< casacore::Muvw > casacore::MeasRef< M > casacore::MeasRef< MBaseline > casacore::MeasRef< MDirection > casacore::MeasRef< MDoppler > casacore::MeasRef< MEarthMagnetic > casacore::MeasRef< MEpoch > casacore::MeasRef< MFrequency > casacore::MeasRef< MPosition > casacore::MeasRef< MRadialVelocity > casacore::MeasRef< Muvw >

Public Member Functions

virtual ~MRBase ()
 
virtual Bool empty () const =0
 Check if empty reference. More...
 
virtual uInt getType () const =0
 Check the type of Measure the reference can be used for:
static const String &showMe() = 0; . More...
 
virtual MeasFramegetFrame ()=0
 Return the frame of the reference. More...
 
virtual const Measureoffset () const =0
 Return the first frame which has specified information. More...
 
virtual void setType (uInt tp)=0
 Set the type. More...
 
virtual void set (uInt tp)=0
 
virtual void set (const MeasFrame &mf)=0
 Set a new offset:
void set(const Measure &ep); Set a new frame. More...
 
virtual void print (ostream &os) const =0
 Print a Measure. More...
 

Friends

ostream & operator<< (ostream &os, const MRBase &meas)
 

Detailed Description

Base for Reference frame for physical measures.

Intended use:

Internal

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25
Test programs:
tMeasure

Prerequisite

Etymology

From Measure and Reference and Base

Synopsis

MRBase is the abstract base class for reference frames. Reference frames are specified (see Measure) as Measure::Ref (e.g. MEpoch::Ref).

A Measure::Ref is a container for type indicators, (e.g. MDirection::J2000), an optional offset (e.g. beginning of year), and, if necessary, a MeasFrame.
A MeasFrame consists of one or more Measures specifying the reference frame (e.g. an MPosition for a sidereal time definition). A time (MEpoch) could e.g. have a type MEpoch::TAI, and an MEpoch as offset:

MEpoch off(Quantity(40745,"d"), MEpoch::Ref(MEpoch::UTC));

It is obvious that a circular reference between Measure and Measure::Ref is possible. Therefore, each Measure has a default reference (necessary anyway to be able to start a Measure chain). For MEpoch the default is e.g. an MJD in UTC; and the default Measure for an MEpoch reference is 0.
References are copied by reference; i.e. a reference can be used in many places without overhead.
Some Measure::Ref could need additional conversion information (example: type of Nutation calculations). They are provided by Aipsrc keywords.
All constructors are related to a specific Measure, to be able to check relations at compile time.

Example

See Measure for an example

Motivation

To gather all reference frame information in the one class.

Definition at line 103 of file MRBase.h.

Constructor & Destructor Documentation

virtual casacore::MRBase::~MRBase ( )
virtual

Member Function Documentation

virtual Bool casacore::MRBase::empty ( ) const
pure virtual
virtual MeasFrame& casacore::MRBase::getFrame ( )
pure virtual
virtual uInt casacore::MRBase::getType ( ) const
pure virtual
virtual const Measure* casacore::MRBase::offset ( ) const
pure virtual

Return the first frame which has specified information.

Checking is done in argument order.

Thrown Exceptions

  • AipsError if neither reference has a frame or the proper type
static const MeasFrame &framePosition(const MRBase &ref1,
const MRBase &ref2) = 0;
static const MeasFrame &frameEpoch(const MRBase &ref1,
const MRBase &ref2) = 0;
static const MeasFrame &frameDirection(const MRBase &ref1,
const MRBase &ref2) = 0;
static const MeasFrame &frameRadialVelocity(const MRBase &ref1,
const MRBase &ref2) = 0;

Return the offset (or 0)

Implemented in casacore::MeasRef< Ms >, casacore::MeasRef< casacore::MPosition >, casacore::MeasRef< casacore::MEpoch >, casacore::MeasRef< MRadialVelocity >, casacore::MeasRef< MBaseline >, casacore::MeasRef< MDirection >, casacore::MeasRef< MPosition >, casacore::MeasRef< MFrequency >, casacore::MeasRef< casacore::MDirection >, casacore::MeasRef< casacore::MFrequency >, casacore::MeasRef< Muvw >, casacore::MeasRef< MEarthMagnetic >, casacore::MeasRef< MDoppler >, casacore::MeasRef< casacore::MRadialVelocity >, casacore::MeasRef< MEpoch >, casacore::MeasRef< casacore::Muvw >, casacore::MeasRef< M >, and casacore::MeasRef< casacore::MDoppler >.

virtual void casacore::MRBase::print ( ostream &  os) const
pure virtual
virtual void casacore::MRBase::set ( uInt  tp)
pure virtual
virtual void casacore::MRBase::set ( const MeasFrame mf)
pure virtual
virtual void casacore::MRBase::setType ( uInt  tp)
pure virtual

Friends And Related Function Documentation

ostream& operator<< ( ostream &  os,
const MRBase meas 
)
friend

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