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 |