casacore
|
Base for Reference frame for physical measures. More...
#include <MRBase.h>
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 MeasFrame & | getFrame ()=0 |
Return the frame of the reference. More... | |
virtual const Measure * | offset () 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) |
Base for Reference frame for physical measures.
Internal
From Measure and Reference and Base
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:
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.
See Measure for an example
To gather all reference frame information in the one class.
|
virtual |
|
pure virtual |
Check if empty reference.
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 >.
|
pure virtual |
Return the frame of the reference.
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 >.
|
pure virtual |
Check the type of Measure the reference can be used for:
static const String &showMe() = 0;
.
Return the type of the reference
Caution: the following should really be (and should be interpreted as), but compiler does not accept it:
Ms::Types getType();
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 >.
|
pure virtual |
Return the first frame which has specified information.
Checking is done in argument order.
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 >.
|
pure virtual |
Print a Measure.
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 >.
|
pure virtual |
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 >.
|
pure virtual |
Set a new offset:
void set(const Measure &ep); Set a new frame.
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 >.
|
pure virtual |
Set the type.
Caution: the following should really be (and should be called as), but compiler does not accept it:
void set(Ms::Types tp);
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 >.
|
friend |